Differences in software engineering + LEGO
June 08, 2025
Our cat poses with Notre Dame
My husband and I put together a 4383 piece LEGO (Notre Dame) within five days part-time. The number of pieces looked daunting; it’s so high that the box was rated 18+.
While putting together the pieces I noticed how software engineering fundamentally differs from playing LEGO.
1. Software changes, LEGO doesn't
Working software changes due to business requirements or technical direction; it's more dynamic than LEGO.
2. Change means re-design
Software design is about tradeoffs:
- to buy or build?
- to use a library or write custom functions?
- use a scrappy solution now, or invest in a more robust solution?
If you ask 10 engineers to design a system you'll get 10 different answers, whereas the LEGO set comes with one instruction manual that's guaranteed to work.
3. LEGO will work as intended; software might not
In software many things can go wrong:
- the design can be flawed
- there may be bugs
- the underlying services may be down/flaky
Whereas LEGO's prescribed steps leave little room for mistakes.
4. Maintenance costs $$$ in software
Unlike LEGO customers, customers of software often demand changes. Yet the majority of cost in software life cycle is not in the development of new features, but in maintenance.
Maintenance accounts for almost 70% of software development cost. Image from openxcell
In software the biggest cost is labor, and engineers are often needed to update packages, as old packages might no longer be maintained, or need be updated to remove security vulnerabilities.
Despite these differences, I also noticed similarities between software engineering and LEGO. You can read it here.