Go Back

YAGNI

You aren't gonna need it!

If you constantly find yourself justifying bits of code for "If"s and "When"s that aren't on the user story you're currently coding for and there's no test case really defined for it, then most likely you don't need it!

I might add you should probably also add "This increment" to the end of that...

"You aren't gonna need it this increment!"

So each iteration when coding, don't go writing some crazy abstraction to facilitate some functionality that you may or may not know is on the product backlog (unassigned user stories in xp terms).

WHY?

well think about these things:

The product owner may take that functionality off the product list completely before the next iteration.

The product owner prioritized the work the way it is and you chose the tasks you had based on the ability to do only those tasks and no more. So if you do other work you take away from the velocity of the currently assigned tasks. Not to mention your own personal velocity.

You aren't the product owner or the customer, you're a developer. If you want to be product owner and decide what gets created, then apply for that job and when you get it then you can decide!

Anyhow, Agile is about team heroics not individual heroics... so please just write what you're expected to on the tasks and move on.

K.I.S.S. (Keep it simple stupid) also applies for most of these things.

Facebook DZone It! Digg It! StumbleUpon Technorati Del.icio.us NewsVine Reddit Blinklist Furl it!

Post a comment!
  1. Formatting options