Methodical software development - what must be considered when a small project suddenly becomes large
Not all software development projects are necessarily large, at least not at the beginning. But what happens when a small project, built by 1-2 developers and a designer at a moderate pace, suddenly gets a large budget, and the scope of work increases significantly? Is it enough to multiply the number of team members by 3 or 5?
Over time, we have learned many lessons, and although everything worked out well in the end, the parties' time and energy waste were higher than they could have been. This post talks about potential stumbling blocks based on our experience.
How does a project usually start, and what is an MVP?
The customer turns to us to create an MVP (minimum viable product) with the terms of reference. MVP or the minimum working solution (product, service) is the first version of the system that is ready to be used.
With the help of MVP, we can assess whether the idea is solid and whether the end users like the solution. To create an MVP, we put together a small agile team consisting of two developers and usually one designer, plus quite often a tester. The last two roles might not be full-time.
The customer manages the pilot project and describes the functionalities (user requirements). An application is put together in this process that focuses on end-user functionality.
Typically, in the name of reduced short-term workload, less time is devoted to the convenient operation of all administrative functions and the sustainability and scalability of architectural solutions.
The goal is speed and efficiency, and the first version is usually ready within months with a limited budget. Such a pilot project will also help build trust and is a foundation to further good cooperation with the customer.
What happens to an MVP, and how does a small project grow into a big one?
There are two directions beyond the MVP:
- the solution will gradually be improved with the same or even smaller team. Typically, this happens for niche services where and more significant investments are not economically viable or in cases where the service needs to be further developed to assess its potential success and/or find funding. All this can take years to complete, and there usually will not arise any significant problems in established cooperation with the customer.
- the product or service is part of a larger (world conquest) plan. MVP proved to be successful, and the customer has the funding (it does not matter much where the money comes from: own funds, investors, or a grant) to quickly start implementing a system based on MVP, but with significantly expanded functionality. Both the client and us are looking forward to the new phase of the project - the hope is to build a prominent, exciting, economically prosperous, and/or high-impact solution. Unfortunately, this is where the most considerable risk of problems arises in cooperation.
To prevent problems, it is necessary to
- analyze the suitability of the technical platform of the existing solution and, if necessary, make changes, and
- assemble a qualified team or teams that will methodologically develop the new system and have all the necessary roles.
Let us look at them in turn.