# Umer Mansoor - YAGNI, Cargo Cult and Overengineering (Highlights)

## Metadata
**Review**:: [readwise.io](https://readwise.io/bookreview/27514170)
**Source**:: #from/readwise #from/reader
**Zettel**:: #zettel/fleeting
**Status**:: #x
**Authors**:: [[Umer Mansoor]]
**Full Title**:: YAGNI, Cargo Cult and Overengineering
**Category**:: #articles #readwise/articles
**Category Icon**:: 📰
**URL**:: [codeahoy.com](https://codeahoy.com/2017/08/19/yagni-cargo-cult-and-overengineering-the-planes-wont-land-just-because-you-built-a-runway-in-your-backyard/)
**Host**:: [[codeahoy.com]]
**Highlighted**:: [[2023-05-10]]
**Created**:: [[2023-05-13]]
## Highlights
- The microservices approach is all about handling a complex system, but in order to do so the approach introduces its own set of complexities ([View Highlight](https://read.readwise.io/read/01h027nsk0b2k7h7vwg0n4evxa)) ^526295337
- Yagni … stands for “You Aren’t Gonna Need It”. It is a mantra from Extreme Programming … It’s a statement that some capability we **presume our software needs in the future should not be built now because “you aren’t gonna need it”**. ([View Highlight](https://read.readwise.io/read/01h027snhgjzmy8a8c71a5f99k)) ^526295495
- **cargo cult software development**. Teams who slavishly and blindly follow techniques of large companies they idolize like Google, Apple or Amazon, in the hopes that they’ll achieve similar success by emulating their idols. ([View Highlight](https://read.readwise.io/read/01h027wfdar3366hvhay41fb9e)) ^526295807
- Focus on the problem first, not the solution. Don’t pick any tool until you have fully understood what you are trying to achieve or solve. Don’t give up solving the actual problem and make it all about learning and using the shiny new tech. ([View Highlight](https://read.readwise.io/read/01h0284p0pyen5xzwbq6xgczq1)) ^526296602
- Keep it simple. It’s an over-used term, but software developers *still* just don’t get it. Keep. It. Simple. ([View Highlight](https://read.readwise.io/read/01h0284y406jzyexypwbrn2hp5)) ^526296612
- Think about people who’d have to live with your mess. Think about your **legacy**. Do people remember you as the guy who built rock-solid systems or someone who left a crazy mess behind? ([View Highlight](https://read.readwise.io/read/01h0287hhxsk720d9f1awb5ep3)) ^526297599
- Share your ideas with experts and veterans and let them **criticize**. Identify people in other teams who you respect and who’d disagree freely. ([View Highlight](https://read.readwise.io/read/01h0286xetx2yyygmf783pn53v)) ^526297027
- Don’t jump to conclusions on the results of quick experiments. *HelloWorld* prototypes of anything is easy. Real-life is very different from *HelloWorld*. ([View Highlight](https://read.readwise.io/read/01h02877nwn8mz1901fyrsf4x6)) ^526297190
- YAGNI is coding what you need, as you need, refactoring your way through. ([View Highlight](https://read.readwise.io/read/01h0288686730f1f549p51c3at)) ^526299288
- As my professor said: “*Pick the right tool for the job*.” I’ll also add: **don’t build Formula One cars when you need a Corolla**. ([View Highlight](https://read.readwise.io/read/01h028a3jtzexa2yee933trqhk)) ^526302087