Having a bespoke piece of software developed is becoming increasingly common for businesses of all sizes. Most companies want to improve their businesses efficiency in a variety of different ways and having a new piece of software to help them do this can transform the way a company works.
Hiring a good firm to produce the software isn't always easy. There are a lot of companies out there competing for your business, so what should you expect from a software development project? Here is a run through of the process you should expect to go through.
You should be able to sit down with the company you have chosen and talk through exactly what it is you want your software to do and how you want it to improve your business. The company should be very interested in what it is you want so they can prepare a proposal outlining the costs.
This is a document outlining how the software company are going to work with you including what the costs are and how long it will take from start to completion.
If you are happy with the proposal the developers should then set out a clear plan for your software. This is a blue print for what the software will look like, what it will include, and how it will work. This is something you need to look at very carefully to make sure the finished project is set to include everything you want it to do.
This plan is the document that the developers will refer to, so if you want anything else included that you don't see here, now is the time to say so. This plan is also important to have because it holds the developers accountable for what is delivered when the project is completed.
At this stage the software company should be working closely with you to design something that you feel will transform the way your business works in the area it is targeting. They need to completely understand how this new piece of software is going to help you so they can design it in the best possible way. They need to get to know that specific part of your business extremely well.
Evaluation of the plan
This stage is where the plan is reviewed by both the software development company and yourself to check if both sides are happy to go ahead and the coding to begin. Everyone should be completely clear about what the finished product will look like and do.
The actual development process
The developers should now get on with the actual development of the software application that you have commissioned. By this stage you should be clear on the timescales, as should the developers. Ideally a company that has in-house developers will work best in terms of communication, rather than the possibility of some of your requirements getting lost in the transfer to outsourcers.
Make sure that the company you use have a strong quality assurance process. Testing should take place throughout the build process and a thorough final test should be completed once the application has been developed.
A good testing system ensures that you are handed over an application that works without any issues, saving you time having to keep going back to the developers to fix it.
Training and support
Don't let the development company hand over the software without training you and other members of your company who need to use it. You should also be offered full support so if you have any difficulties using the software you can call the developers any time for help.
Good article. But I think the description is too general. The steps described are related to any project delivery process and nothing particular to software development. As a software development company owner I can say that there are few points that are critical for potential customers.
Lot of customers come to us after having problems with other developers. These problems comes from wrong choise the developers made on this or that step.
What is missing is the stage of choices approval. The developers should be able to describe and prove the correct choice of technology or approach they made. If they tell you that they use PHP/.NET/Java for your enterprise application you should ask why? If they say that this is what they have experience in then this is a lead to problems on further stages. Any engineering process is rational thus any choice should be rational and not related to human feellings or habits, if it is rational it can be proven with rational arguments like “we use … because there are following productivity tools abailable… also there are frameworks to implement IoC and DI to have lose coupling, another benefit is … to reduce developers mistakes risk and … that will reduce development costs”.
Another thing, partially related to correct choice, is how the application will be designed? How flexible will it be for further changes. If developers say that it is flexible because they can rewrite the code any time then search for other team. Correct answer will be something like “modular architecture”, “lose coupling”, “plugins” and everything that will mean that they will not have to touch any existing code for adding new functionality. Sorry for long comment 🙂