As a custom software development business, we are approached by a broad range of customers looking to develop bespoke solutions. Some of these customers have established systems and processes; and are looking to put them into custom software. While others simply have a concept and are looking to start with something that can help them scale and grow efficiently. This begs the question: when is the best time to develop custom software?
When we are developing software; we develop the software around a set of processes/outcomes. The system is designed to "do something" or "facilitate" a process. So when we are referring to the "time" to develop the software, we are referring to the length of time that your systems/procedures have been implemented/in-use before considering developing software.
For some customers, they have developed a workflow over many years. And over that time, have optimised what works and what doesn't work in their operations. These customers know what they want and have refined the requirements for development through experience and road-testing their solution on-site. They now can develop software that streamlines their operations and allows them to simplify the process.
From our perspective - this is an ideal process; as the customer has completed the research and can provide alot of insight into the requirements. At the same time, they have tried and tested numerous approaches and chances are that their solution is a good starting point that can provide clear deliverables to the software development team. One thing to be cautious of in this approach is that sometimes these "solutions" that serve as the starting point are often developed with constraints of the resources/tools available and may not always be the most efficient workflows. As such, its just as important to conduct a review and planning session with the team to ensure the best outcome is chosen.
On the other end of the spectrum, some customers are looking to develop brand new software for a brand new business concept. In these instances, the new offering from the customer can be complimentary to an existing product/service or a brand new product/service - and as such there is often alot of new ground to cover in the exploratory phases of the project.
In these instances, there is often alot of assumptions in the process. As such, the development of software can be a moving target - which can be a blessing or a curse. We've found that the most successful projects for greenfield software developments is when all stakeholders and users of the system are involved in the planning; and when the scope of the development is limited to the core features.
By involving all stakeholders; we can ensure that everyone on the team has input and buy-in into the project. This can ensure that we don't miss any requirements/user-flows that will provide most of the benefit. At the same time, by keeping the first implementation "simple" it allows us to get the core features online quickly; and then pivot just as quickly as the business learns more about the requirements/workflows. In this way, we can learn quickly and adapt the software quickly as the business requirements change - which invariably happens as new businesses grow.
So in closing, there's no silver bullet as to the timing of your software development. However, your strategy may differ depending on the level of testing/review you have devoted to your concept before proceeding with developing the software. Our recommendation when developing custom software is to focus on the core aspects of the project - the parts you are rock solid on - and then build out the project as you start to learn from its operation.
Dcode Group have had success in developing custom software both for established business and new concepts. The best projects are the ones that have all stakeholders moving forward, together with clear communication; and with a focus on regular delivery; updates; and improvements from the users of the software over time.