On upfront design and avoiding not invented here syndrome
To learn or to execute? To plan or to ‘fail fast’?
Both Upfront and Emergent design methodologies offer unique advantages and can significantly impact the success of a project, depending on its nature and requirements. While I’m a huge fan of organizations remaining Agile, which seems to align most with emergent design, the truth is that many take this too far.
A blueprint
In upfront design, a team follows a detailed blueprint when embarking on a project. This approach is best suited for projects with a clear path to success - ones that have been undertaken many times before, where the pitfalls and challenges are well-documented, and the solutions are well-known.
The process of building a house serves as a prime example of upfront design. The standards for construction, the materials needed, and the sequence of tasks are all established well in advance. By leveraging the collective knowledge and experience of past builders who have built similar homes, a new home can be constructed efficiently and effectively.
An open canvas
Conversely, emergent design is the methodology of choice for projects that venture into uncharted territory. These are the initiatives that require innovation, where the final outcome is not entirely predictable, and the path to success must be discovered along the journey.
The rapid pivot to mass remote education during a global pandemic was a result of emergent design. Educators and administrators had to adapt on the fly, learning and improvising solutions to unforeseen challenges as they arose. This approach values flexibility and responsiveness, embracing change as a fundamental component of the process.
Creating Adding value
Aspects of building a new house are emergent (unique requests, new regulations, etc). And likewise, aspects of educating children remotely were upfront (internet, computing, video conferencing, etc).
So time for reflection — How much of what your team is doing can be categorized as creating value from scratch? It’s rare, so think carefully about your answer.
For example, it is my belief that most tech organizations should be doing a whole lot of upfront design sprinkled with just a touch of emergent design on top. Even though tech orgs work on many novel products, it’s rare that they work on novel projects. Most of the underlying components are open source or commercially licensed, after all. In this way, most of the implementation can be planned upfront, whereas it’s the gluing together of those dependencies that dictates more emergent behaviors in the process.
It’s never the same path forward
There isn’t one methodology to rule them all. The methodologies you utilize to manage your projects should be as varied as and reflective of the projects themselves.