Here at Ballard Chalmers we have been successfully developing custom software since 2005, though our heritage is much longer and closer to three decades. We thought it would be useful to share some ‘top tips’ on how to go about the process.
1. Make sure you actually need custom software development
Bespoke software is a much more exact fit for business needs than off the shelf solutions, but it may not always be necessary. It may sound obvious, but often organisations embark on the development of a fully bespoke system without checking if there is standard packaged software that will do the job or can be configured to do the job. Custom software will do exactly what is required but takes longer and costs more than something that has already been created and is being sold as a package.
2. Define as many detailed requirements as possible before starting custom software development
All systems start with some requirements, but often they are too high level and open to a lot of interpretation. The closer the requirements are to what is really needed the more chance there is of success. For example, requirements such as “Needs to be user friendly” do not really add anything, as who would start out to develop a user unfriendly system? Requirements such as “System needs to manage official records according to sector regulations” could mean anything – what developers need to know are what form the records take (are they documents or online forms?), what data is recorded in the records, and what rules need to be applied to the records e.g. auto-archive after 5 years or can only be deleted after 7 years. Producing initial wireframes of the main screens also helps define overall scope and expectations. I am not suggesting a full technical specification of the system is needed upfront, but a high level scope that details what the system should do is needed.
3. Every custom software development project needs a product owner
Every successful development project has a product owner – someone who knows in detail what the system needs to do and has the authority to make decisions on functionality. Projects that do not have a dedicated product owner often lack direction and are subject to significant delays as developers wait for clarifications or answers to questions.
4. Review, review and then review again
However good the initial requirements, wireframes and specifications are, systems evolve during development. When the users actually see the system for real they can easily evaluate what is not going to work and what is missing. So the development process should be designed to expose as much functionality as possible and as early as possible, so that the shape of system can be seen as it evolves, and not at the end of development. A good way to deal with this is to have weekly or bi-weekly review sessions during development.
5. Select the technical stack carefully
When embarking on a new development it is important to give careful consideration to the technical stack. Things are moving fast technically and it would be a mistake to base a system on older technology as this will be outdated in 5 years’ time. Equally, it is more risky to use a technology that is completely new as this is most likely to have teething troubles that can cost a lot of development effort. Technology selection applies to all aspects of the technology stack including: UI (User Interface), API (Application Programming Interfaces), Database and Hosting. Getting this selection right will ensure an efficient modern application that will last longer than just a couple of years.
Our experts can help you at any point in the software development cycle and have vast experience of doing so for clients across a breadth of industries. If you would like to discuss your custom software development project we would be happy to have a conversation with you.
By Geoff Ballard, Chief Technical Officer at Ballard Chalmers
About the author
Geoff Ballard is Co-Founder of Ballard Chalmers and the company’s CTO, directing technical strategy, overseeing technical consultants, managing larger development projects and ensuring technical delivery quality standards. Geoff has been a SQL Server consultant since the very first beta release by Microsoft and is a trainer and author in Microsoft technology, including courses delivered throughout the world.