So you have an idea for an awesome piece of software that you would like to make a reality but have no idea what to expect when approaching a custom software company? In this article I will outline what is typically involved in creating a custom piece of software, the processes we use to transform your idea into a piece of functional software, what typical problems may arise, and pitfalls to avoid.
The Initial Meeting
The first thing you should expect is the initial meeting, which will typically be between you and one of our custom software project managers. The purpose of this meeting is for you to tell us all about your idea, to give us an idea of how you see the software being used and by whom, and finally the scope of the budget. What we like to get from these meetings is what we call the requirements of the project. This is a vital first step for any software project, as the requirements outlined in this meeting will be used throughout the entire project lifecycle to ensure the software is on track with what you envision it to be.
Where custom software projects generally get in trouble is if they try to deviate too far from these initial requirements during the development process. These deviations generally result in the budget being increased and end release date being delayed or in the most extreme of cases, the project being cancelled entirely.
After an initial meeting, a custom software company will take the information gathered from you and begin writing a project specification. This is a very important document that outlines all functional and non-functional requirements of the software that is to be developed. It outlines how they intend to go about the development of the software, and generally has mock ups of user interfaces and use cases to show you how they think it may work.
It is at this point that communication is the most important, as identifying aspects of the project specification that are missing or not quite in line with what you envisioned should be bought to the project manager’s attention. It is far cheaper to change a project specification than it is to find out that something isn’t right later on during development or once the software has been completed.
Proposal / Quote
Once the project specification has been completed, an indication of time and cost or quote is also provided. If you are unhappy with the price / time quoted, you can work with the project manager to add / remove certain aspects of the software which will in turn result in the quote being adjusted accordingly.
Once you have the quote, you can decide if you wish to continue with the project or not. At this point, you are generally only invoiced for the time required to generate the project specification, and are under no obligation to continue with the project if you are not happy for any reason.
If you do decide to go ahead with the project, then the next step is development. This is where the project manager begins to instruct the team of developers on how to start implementation and assigns jobs out to each person with the goal of achieving all that has been outlined in the project specification.
The development phase is the point where most custom projects fall into problems. These can generally come about due to a developer discovering an unforeseen complication that wasn’t accounted for in the project specification. Sometimes problems are a result of important information being left out of the project specification. Other times they are a result of certain coding procedures that were agreed upon during the specification turning out to be unfeasible in practice. In any case, these problems need to be addressed as soon as possible as they may have the potential to impact the budget or end release date of the project.
It is advisable to instruct the project manager to give you frequent and regular updates on the project's progress throughout the development phase. If you request an update on a weekly or fortnightly basis for example then you will get a good idea on how the development is progressing and it gives the project manager an opportunity to evaluate and justify its progress to you and inform you of any delays that may have occurred. As a client, you should insist on being informed quickly if a problem like those discussed above has occurred, what the project manager suggests needs to be done to resolve it, and what (if any) impact this will have on your budget or end release date.
Once development has been completed, the next process to occur is testing, where a copy of the software in its current state is provided to you, the client, for review and evaluation. It is important that at this phase you test all aspects of the software and confirm that it meets the requirements detailed in the project specification. You should have no reservations about pointing out anything the system is not doing correctly, and always refer back to the project specification for justification of your concerns.
Distribution / Deployment
When the testing process has been completed, the final step is distribution. This may be as simple as you getting a copy of the software to distribute how you see fit, the software company providing you with a means of installing the software onto other computers, or having the website that the software is embedded in go live.