top of page

YAGNI: The engineering principle that tells you "Don't do it! Save time for the future"

Updated: Dec 6, 2023

Don't spend time on unnecessary things. Meet Yagni, a principle that helps you to keep your time and resources productive. Read the blog here!

YAGNI: You Ain’t Gonna Need It
YAGNI: You Ain’t Gonna Need It


YAGNI stands for "You Aren't Gonna Need It". It is one of the Extreme Programming principles, which specifies that if you are a developer you should NOT add extra features until they are not needed.


The principle helps us to be based on facts and not assumptions, good requirements management, and also avoid delaying the initial scope of the task. If you still do not know this concept, here we tell you what things you should not be confused about and why it is so important to be clear about the end of the YAGNI principle…


YAGNI principle for improve your productivity dev
YAGNI principle for improve your productivity dev

YAGNI Principle

TALK OF THE WEEK



There are known cases of projects where a super work is generated that overflows the MVP and its basic requirements, so much so that it can become undeliverable, that is, there are so many things pending to finish that are never finished.

This is the result of wasting time on unnecessary things.
Example of YAGNI opposite
Example of YAGNI opposite

The progressive featurism leads to code bloat; the software will get bigger and much more complicated (and refactoring will be a headache).


You should also keep in mind that not everything can be measured with Yagni. Yes, it's true that if you don't need it you shouldn't waste time with it (it also applies in life), but at the same time the principle invites you to foresee what you will need in the future, it is mostly about making the right decision without discarding being able to consider the larger context.


No matter what task you perform, the goal is to make the system easier to understand and use, also more maintainable, cleaner, and more robust. If that means writing more lines of code, then we'll use the YAGNI practice.

Granularity and balance bases of YAGNI
Granularity and balance bases of YAGNI


Granularity of YAGNI

Lack of simplicity sometimes leads us to let our tasks spread with our inspiration and we end up using a proverbial bazooka 🔫 to destroy a fly 🪰. YAGNI can help us avoid this, but it's only relevant when talking about things that can take a lot of time, money, or work: extensive features, direction changes, technology changes...



Balance in YAGNI

It is one thing to be able to anticipate what the project requires shortly, and it must be now because for the time being the team has the experience that will not be available later.


And another thing is when we talk about finer-grained features (i.e. capabilities) that should always take priority, maintainability, testability, usability, readability, etc...

Example of YAGNI opposite
Example of YAGNI opposite

Less Costs with YAGNI

Whatever the outcome, you will incur a series of costs that can be either avoided or deferred.

  • Cost of the Building: All the effort spent on analyzing, programming, and testing a feature.

  • Cost of Delay: The lost opportunity to build and release another feature now.

  • Cost of Carrying: The complexity added, makes the app harder to modify and debug.

  • Cost of Repair: The effort spent on modifying a feature, is not what you need now.


We leave you an explanatory video with some more details about YAGNI:


If there is an error with the player, you can watch the video at the following LINK.


_________________________________________________________________________________________


¡Thanks for reading!

meltstudio.co
meltstudio.co

📍 Connect with us on instagram👇


Join our newsletter to receive information about latest technologies trends and job offers

Thanks for subscribing!

bottom of page