Starting in 1883, and continuing until his death in 1926, Gaudi devoted much of his life to this project which manifested his vision of architecture. To this day, work continues on the Sagrada, funded from a multitude of sources. The current projected completion date is 2032.
In modern times, you would be hard-pressed to find a better example of a single person's passion and vision that carries a project though to completion long after the original driving force has left. I'm just spit-balling here, but if everyone's favourite innovator, Elon Musk, were to pass away today, I find it extremely unlikely that Tesla would still be around 10 years from now. At best, it would be a division of Toyota :)
But besides passion and vision, what makes the Sagrada amazing (in my opinion) is that it is more than just a grand design to be admired from a distance. If you zoom in, it is immediately clear that there has been an immense attention to detail.
Now, while I don't propose that we should embrace 150-year-long IT projects any time soon, I believe the lesson we can all learn from the Sagrada is this:
Dream Big; and then do the small things well.
Often I see projects in our industry, especially the ones claiming to fall in the category of "Digital Transformation" to be heavyweight on the vision side, but lightweight on doing the small things well. This is a topic I have some strong opinions on, because without quality execution, even the most amazing ideas will not see the light of day (or will not stand the test of time).
Below is an, admittedly incomplete, list of disciplines that would (if we took them seriously) really go a long way to ensuring more successful projects, more fulfilling engagements and consistent innovation. I really hope to explore these topics individually at some stage in the future:
- Framework-driven solution architecture
- Carefully crafted exception handling
- Comprehensive (and sensible) logging at business and technical levels
- Defect logging and tracking
- Writing and grooming user stories
- Documenting architecture and design decisions
- Static code analysis
- Automated testing
- Load and performance testing