Friday, February 13, 2009

Another look at the rules of simplicity

Been thinking about the XP rules of simplicity and re-phrasing it to reflect my current view of things:

Rule 1: It has to work.  "Work" means that it does what is needed to achieve whatever goal that led to us building this thing in the first place.  This includes works functionally, performance, usability, etc.

Rule 2: No duplication that anyone on the team can figure out how to remove.  This does not include incidental duplicaton.

Rule 3: Nothing is written that the best person on the team finds non-obvious or difficult to understand.  Everyone else on the team must also understand it.  Therefore everyone on the team must be developed.  Making things is about making people.

Rule 4: If something is here today that is not needed until tomorrow, it must be removed.  Also, designs that require less code are preferred over designs that require more.

2 comments:

Kim Gräsman said...

When you say "This does not include incidental duplication", what do you mean?

What makes duplication incidental?

Thanks,
- Kim

Jason Yip said...

Hi Kim,

Sometimes code will be very similar but serve different purposes. The similarity is incidental so you don't want to create coupling by removing the duplication.