Tuesday, May 13, 2014

Agile in a Flash 41

Build Superior Systems with Simple Design The Code
Agile in a Flash by Jeff Langr and Tim Ottinger (card #41)

> All tests must pass
> No code is duplicated
> Code is self-explanatory
> No superfluous parts exist

--

As far as a prescriptive set of design principles go, these four rules(11) of simple design, listed in order of importance, are the simplest thing that might possibly work.

> Code must work and be demonstrated by passing tests. A great paper model of a design is useless if the software doesn’t work. Use TDD so that you know the code is working at all times.
> Removing duplication is the next most important design activity, because it directly lowers the cost of system maintenance and drives you toward an appropriate level of abstraction.
> Contrary to popular belief, it’s almost always possible to create code that others can understand and maintain—particularly if your TDD-created tests clearly document intended behavior. Maintenance costs rise dramatically with unclear code.
> Finally, YAGNI (You Aren’t Going To Need It) tells us to remove all superfluous features and complexity—anything not needed at this precise moment.

11. Extreme Programming Explained, First Edition

"A simple design always takes less time to finish than a complex one."
- extremeprogramming.org

"A man should look for what is, and not for what he thinks should be."
Albert Einstein

No comments:

Post a Comment