eXtreme Programming: You ain't gonna need it (YAGNI)

Although iOszkar 1.0 has already been released and the update 1.1 is also on the way the app is far from being complete. The reason why I'm satisfied, though, is that the basic functionalities are already implemented. The backlog is quite large, but I didn't know (and still don't know) how many users will download and use it and therefore I wanted to limit the initial effort.
I came up with the idea that I'll let the upcoming iterations be controlled by the users so that they can vote on and thus prioritize the backlog.
I want to achieve the following with this approach:

  • Only implement features delivering value to the users
  • Avoid implementing unnecessary features confusing the users, putting constraints on and letting grow the code base
  • Save time for improving the existing code base and increasing the amount of tests
  • Minimize the risk of putting enormous effort into an app which eventually won't be used.
As you can see these are simple rational considerations and therefore I'm glad that they not only can be applied to several similar projects, but they have similarly been expressed in eXtreme Programming and also combined as a principle and acronym: YAGNI - you ain't gonna need it.
The basic idea is comparable to what's present in Test-Driven Development, too:
TDD: Create a failing test, but only implement code which is absolutely necessary to make it pass
YAGNI: Create acceptance tests, but only implement features which make them pass.
Both are applications of the KISS (my favorite interpretation is Keep It Simple and Straightforward) principle, so follow them!

1 comment:

  1. I have read your blog its very attractive and impressive. I like it your blog.

    Digital Marketing Company in Chennai Digital Marketing Agency