2. About me
• Gjero Krsteski
• Software Developer
• QuestBack GmbH, Germany
• Contributor: ZF1, Zurmo, phlexible
• father + trainer + musician
Gjero Krsteski The YAGNI principle 2
3. What are your expectations?
• Reasons to practise it
• How and when to use YAGNI
• How does it work in reality
Gjero Krsteski The YAGNI principle 3
4. Abbreviation for…
• You Ain’t Gonna Need It
• Keep it simple, stupid! = KISS
• Always implement things when
you actually need them, never when you
just foresee that you need them.
Gjero Krsteski The YAGNI principle 4
5. The Ideas Behind YAGNI
Granularity Balance YAGNI
Gjero Krsteski The YAGNI principle 5
6. Granularity
Don’t use bazooka
to clobber a fly!
Gjero Krsteski The YAGNI principle 6
7. Balance
• can anticipate which way the project is likely
to go in the near future?
• might make sense to build particular things
now to cater for this?
• may have capacity now but will not
necessarily have it later?
Gjero Krsteski The YAGNI principle 7
8. Reasons to practise it
• You save time
• Your code is more testable and maintainable
• Your code is cleaner and more robust
Gjero Krsteski The YAGNI principle 8
9. Keep this principle in mind
No!
• Implement a pattern? Why?
• Use a utility library? What for!?
• Let us build more automation around our
deployment process?
Bah!!!
Gjero Krsteski The YAGNI principle 9
10. What should I do?
• think first before you move (Bruce Lee)
• What's the cost of the investment?
• What is your time horizon?
• Opportunity cost?
Gjero Krsteski The YAGNI principle 10
11. Ignorance is bliss
Who is
Who stupid?
do
that?
Who
Who
designed
manages
that box?
the
space?
Gjero Krsteski The YAGNI principle 11
12. Secret twenty percent
20% of the effort is the
20% 80% of the results!
=> do the „right“ 20%
80%
Gjero Krsteski The YAGNI principle 12