adamtaylor.me

Subscribe
Archives
August 29, 2024

YAGNI (You ain't gonna need it)

The acronym YAGNI stands for “You ain’t gonna need it” and is perhaps one of the most commonly repeated phrases in software development, and with good reason. As you become familiar with things, your brain naturally travels ahead, sorting through various potential futures, trying to prevent mistakes.

In bounded problem domains, this is a good thing.

In unbounded domains, fields with infinite possibilities, this leads to bloat and unnecessary complications.

The YAGNI principle is the core of building good software. Build your solution a little bit at a time, checking along the way to verify that it does its job. If you run into bugs or issues, fix them. Do not fix bugs or future scenarios that have not happened.

Building a house is a bounded discipline. There are very well-known and well-treaded paths that result in a good house. Houses have a known set of failure criteria that are addressed by architects and engineers. In contrast, software and business are fairly unbounded domains where you can’t possibly know all the failure criteria in advance. If you attempt to address every possible failure criterion upfront, you will waste your time on unimportant matters.

🔑 Key Takeaways

  • Despite what you think, you aren’t going to need it.

  • Build iteratively, starting with the smallest possible working version of your solution.

  • You can lose a lot of time and momentum chasing unimportant problems within unbounded disciplines (like software and business.)

Don't miss what's next. Subscribe to adamtaylor.me:
Powered by Buttondown, the easiest way to start and grow your newsletter.