Through our experience as software consultants and as a custom software development team, we’ve identified ten characteristics common to successful custom software projects where the resulting systems remain in service for several years.
1. Clear objectives
Without clear objectives, it is difficult to know what “success” looks like!
A custom software solution is not a decision lightly made and easily changed; it requires a commitment to the path and a willingness to see it through. The rewards are well worth it, but only for those that persevere with clarity.
3. Measurable ROI
If you cannot estimate, much less measure, the return on investment (ROI) of a custom software project, it probably doesn’t have any, and should not be done.
4. Stakeholder Involvement
People resist change that is done to them, but embrace change that they are a part of. Make sure all of the stakeholders are involved in the project, and that their goals are in alignment with the project goals.
5. Project Champion
A Project Champion is a senior executive with financial authority who believes strongly in the purpose and path of the project, and will fight to get it funded and completed. Projects without Champions are difficult to start, and rarely finish.
6. Adequate Budget
Custom software development costs money. Sometimes, it costs a great deal of money. It is also often the cornerstone of a strategic advantage and the lifeblood of operations. Skimping on the budget is tantamount to building a house on sand. Remember to budget for supporting software, required and replacement hardware, training, and ongoing maintenance.
7. The Right Team
The right system cannot be developed by the wrong team. Make sure the development team has the appropriate domain knowledge and skill levels to be successful.
8. Realistic Expectations
Rome wasn’t built in a day; your custom software system won’t be either. Software development is part science, part craft, part art, and hard work. None of these should be rushed; to do so sacrifices quality and risks failure. Be patient, and work with the development team to ensure that both sides have a mutual, realistic understanding of the process, timelines, and goals.
9. Training and Maintenance Plans
Once the software is completed, who will use it? How will they know how to use it? Who will maintain it? How will they know how to maintain it? Include plans for these issues early in the project.
10. Lifetime Support
Custom software systems can remain in service for decades. Make sure your plans include provisions for periodic maintenance, incidental and emergency support, and someone to care for and enhance the system over its entire lifespan.