You aren't gonna need it..


"You aren't gonna need it"(acronym: YAGNI)
is a principle of extreme programming (XP) that states a programmer should not add functionality until deemed necessary. A lot of people use one rule for their daily task accomplishment - KISS. Keep it simple stupid. The KISS principle states that most systems work best if they are kept simple rather than made complicated; therefore simplicity should be a key goal in design and unnecessary complexity should be avoided. This rule have found its way to public by being simple yet powerful.We can see usage of it in design,programming and even cooking recipes! But that's not the only rule in extreme programming worth using.
Yagni is a principle that helped me a lot during my first first projects and even during building this site! It's definition of minimalism even more than KISS because it going far more , by adding make it less to also make it simple.I started writing this post at beginning development of this website with idea of Yagni in mind.I know I could use something like Wordpress but I made decision that I want to learn Django by doing without any course but only using Django documentation. And that's how my approach to task looked like.
At first we need a plan!

  • 1.Choose technology.
  • 2.Choose what are my main goals!
  • 3.Project very simple database to help building models.
  • 4.Build models based on my predictions.
  • 5.Build views and have in mind to make it as little as possible!
  • 6.Choose base to build templates.
  • 7.Choose main colors.
  • 8.Project simple template.
  • 9.Build template matching my needs.
  • 10.Repeat steps from 3 to 9 until all apps work at minimal level.

Thanks to my plan,bootstrap, and django simplicity i manage to build this site in under 14 hours in about 3 days.There is a lot of little errors in templates, page administration is lack of functions but it's working.And when I will need anything more I can always improve not only my site but mostly my knowledge! But for now I can say this site is an MVP*!

Minimum viable product*