5 tips for successful custom software development
Ballard Chalmers Co-Founder and CTO, Geoff Ballard is one of the UK’s leading authorities in custom software development. Having encountered just about every scenario in his 25 years of working in the industry, here he offers his top 5 tips on approaching custom software development successfully.
Credit: Shutterstock/Hazal Uzuner
1. Make sure you actually need bespoke software
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’s 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 always 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 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, requirement such as “Needs to be user friendly” don’t 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” then this could mean anything and what the developers need to know, is 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, such as: auto archive after 5 years, 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 development project needs a product owner
Every successful development project has a product owner. A product owner is someone that 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, as early as possible, so that the shape of system can be seen as it evolves, and not at the end of development. The best 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 definitely be out of date in 5 years’ time. Equally, it is dangerous 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. For example: current technologies for client side UI development include AngularJS and ReactJS, REST / JSON for APIs and providers such as Microsoft Azure and Amazon AWS for cloud hosting. Getting this selection right will ensure an efficient modern application that will last longer than just a couple of years.
To find out how our experienced team of professionals can help ensure successful software deployment for your project, contact us today.
By Geoff Ballard, Chief Technical Officer
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 which are delivered throughout the world.
Twitter: | LinkedIn: geoffballard