The grug brained developer is the counterpoint of the big brained developer.
They espouse the following principles and opinions:
- Complexity demon is the enemy
- Prototyping prevents big brained developers from complecting
- Say ‘no’ to things that cause more complexity, but also say ‘ok’ and compromise
- Don’t factor your code too soon, wait for cut points to emerge
- Integration tests are the right balance between usefulness and safety
- Agile is a scapegoat for when things go wrong (you didn’t do agile right!)
- Keep refactors small, introducing too much abstraction summons the complexity demon
- Understand a system before improving (Chesterton’s fence)
- Microservices take all the hard problems, then adds network calls to it
- Master your tools and keep improving them
- Type systems make putting pieces together easier but big brain type systems focused on correctness are a great way to summon the complexity demon
- Minimizing lines of code with ternary operators is harder to debug
- Closures are like salt, there can be too much salt, callback hell is too much salt
- Good logging gives you more clubs to whack bugs with
- Fear concurrency, rely on simply concurrency models that are ideally stateless
- Good API design doesn’t make you think too much, big brain API designers think too abstractly and should focus on implementation or the domain
- Web development is splitting frontend and backend ending up with two complexity demon lairs
- Fear Of Looking Dumb (FOLD) is a major power source for the complexity demon, saying it’s too confusing reduces this power
- Nobody is an imposter if everybody is an imposter
Read The Grug Brained Developer.
Links to this note
-
When I First Started Programming
When I first started programming, I thought everyone else was better than me at coding. I read about something new and thought I should do that too because they must know better.