Developing custom software is expensive and often the total cost can be difficult to predict. The unpredictable nature of software development costs is due in part to the research and development aspect of a custom software solution. There are many ways to reduce the cost of your software project including these three simple guidelines:
Be Prepared
- Can you tell the application’s stories?
Be prepared to explain the significant features of your application in everyday or business language. The goal is to capture what the user does or needs as part of his or her job function. Each feature story should follow this simple template: “As a <role>, I want <goal/desire> so that <benefit>” - Clearly define a “nice-to-have” vs. a functional requirement.
New ideas and features naturally evolve during the development of a project. Those ideas need be triaged and clearly communicated, so that time and money is not wasted on non-essential features. - Consider performance, management, monitoring, and maintenance early and often.
Total cost of software ownership should be considered from the very beginning of the project. An inexperienced development team will have laser focus on the key features and lose sight of what is required to keep the software up and running.
Embrace change
“The quicker you let go of old cheese, the sooner you find new cheese.”
Spencer Johnson, Who Moved My Cheese
Successful businesses are masters of embracing change and using it to their advantage. Successful software needs to do the same. However, change can be expensive unless your project has been setup to expect it.
The traditional waterfall approach of long development cycles (analysis, design, implementation, and testing) doesn’t respond well to change, because the time between analysis and testing is too long. Using the agile approach shortens the development cycle into many smaller iterations providing opportunity to analyze and prioritize changing business needs.
Get involved
Communication is the key to ensuring that your development team builds the software that you have envisioned. Staying involved throughout the process and fixing problems early is significantly cheaper than fixing defects in software that have already been put into the user’s hands. Two critical communication points to consider during each development iteration are:
- Prioritize and refine requirements.
Prior to a development iteration the requirements needs to be prioritized and refined based on what was learned during the prior development cycle. This will ensure the most important features were completed within the budget and “nice-to-haves” are held until the end. - Test early and often.
Following each development iteration you need to get your hands dirty and test the software. This is your opportunity to correct the development team’s vision. Defects fixed early are the least expensive defects.
At Synoptek we have embraced the agile approach to software development. We have an experienced team including analysts to help prepare your project for development, tools to communicate project details and requirements, and a staging/testing environment to gather your feedback early and often.