IT projects… From the creation of a showcase site to the development of complex software, managing them is rarely easy!
A common analogy, which has influenced the adoption of sequential methods (V-cycle, Waterfall) in IT project management, is that of the construction of a building. Generally, when you start an IT project, the team will want to put in place a good foundation, something solid:
- « It is absolutely necessary to implement this new ORM otherwise our stack will quickly be obsolete »
- « We need to set up Kubernetes, in case 100,000 users sign up in the first week »
- « We must systematically set up unit tests otherwise the application will be unstable! »
Certainly. Let’s question these statements:
- « Do we have enough perspective on this technology and what value does it bring? »
- « The product is in the launch phase, our goal is to reach 1000 users within 3 months” »
- « Tests are relevant for critical algorithms but do you know the concept of technical debt? »
The general idea “everything must be perfect” pushes teams to spend a lot of time on elements that do not allow to discover the value of what they develop for users. Worse still, a team can spend months building services, APIs and technical elements without having any concrete feedback. Protected by an essentially technical argument, it postpones the start of the development of key functionalities on the grounds of building superb foundations, even if it means missing out on the needs of users.
IT/Construction, what if it was a bad analogy?
Growing an app, how to
In software development, the notion of growth seems to me more appropriate than that of construction. An application is a complex organism interacting with its environment, it is a living organism. Even at a preliminary stage, a living organism like a plant is complete at all times, from the first leaf to the first root. With this analogy, the team will therefore not build foundations and then floors, it will promote the growth of a complete organism at all times. It gradually delivers new features. It grows the software from the inside by keeping it operational. Gradually, the foliage thickens, the branches multiply, the trunk thickens and the roots sink deeper. The little thumb (understand MVP) may become a majestic tree that will have been shaped by its environment. If there is the right soil, enough water and sunshine, it will thrive in its environment and give you fruit.
I digress a bit, back to software development!
In an agile approach, value creation must start on day one. Of course, a number of technical tasks are mandatory at the start of the project. The creation of a development environment, the implementation of an automatic deployment… but these tasks must above all facilitate the provision of the application to the project stakeholders. They should not aim for the implementation of the “perfect” stack because this idea is crippling.
At the end of the first sprint, the team must deliver the first elements that allow obtaining feedback from stakeholders and users. A first thing that works, even a very small form or a first page will be more useful for collecting user needs than setting up a new high-performance (and uncontrolled) DBMS for 1000 lines of data in your database.
The analogy with botany allows us to keep this idea: your project, your software, must remain alive! An alpha or beta version must be complete within the given functional scope. By adopting this approach, you will encourage the collection of feedback so essential to the creation of useful and used applications!