AGILE IN ACTION

Tuesday, 13 December 2005

Rules for simplicity

Posted by Simon Baker

David Crow writes about rules for simplicity. I like number 10:

Simplicity is about subtracting the obvious, while adding the meaningful.

It reminds me of removing obvious comments from code and refactoring code to make it meaningful and self-documenting. Here are Kent Beck’s criteria for evaluating the simplicity:

  1. Appropriate for the intended audience: No matter how elegant a solution is, if the people who need to work with it don’t understand it, it isn’t simple for them. Do the simplest thing that works for the audience.

  2. Communicative: Every idea that needs to be communicated should be represented in the solution. The code should express the programmer’s intentions and should communicate to the readers.

  3. Factored: Do something once and only once. There should be no duplication. Duplication of logic or structure makes code hard to understand and modify.

  4. Minimal: Working within the above 3 constraints, the solution should have the fewest elements possible. If you ain’t gonna need it [YAGNI], don’t do it. Fewer elements means less to test, document, and communicate.

Creative Commons Licence

Recent Posts

  1. Pursuing features increases total cost of ownership
  2. Organization complexity is a waste farm
  3. Managing costs provides a false sense of security
  4. State of Agile survey for 2011 tells a familiar story
  5. (I can't get no) satisfaction, let alone customer delight
  6. Positive emotions and purpose
  7. People don't buy what you do, they buy why you do it
  8. Too busy chopping wood to sharpen the axe
  9. So you want a fresh apple
  10. Systems are seductive

Archives

  1. 2012 (6)
  2. 2011 (24)
  3. 2010 (31)
  4. 2009 (41)
  5. 2008 (69)
  6. 2007 (152)
  7. 2006 (128)
  8. 2005 (63)
    1. December (22)
      1. Giving trust
      2. Being empowered means being prepared to take a chance
      3. Leading the way
      4. Getting to know people
      5. Slop and slack
      6. What does it mean to be empowered?
      7. Feelings of worth
      8. Martin Fowler has updated The New Methodology
      9. Seeking improvement and receiving feedback
      10. Teamwork and trust
      11. Rules for simplicity
      12. Serenity isn't freedom from the storm, but peace within the storm
      13. How not to do it: Agile development, Microsoft-style
      14. The illusion of fixed price contracts
      15. Effective conversation
      16. Your scrum team needs you
      17. Can trust be restored once it's lost?
      18. Under-promising and over-delivering is a process smell
      19. Daily scrum haiku
      20. Write production-ready code faster with TDD
      21. Kent Beck talks about Extreme Programming and QA
      22. Talking about Selenium with Luke Closs
    2. November (15)
    3. October (11)
    4. August (8)
    5. July (2)
    6. June (1)
    7. May (4)
  9. 2004 (2)

Tags

agile (43) big visible chart (15) conference (39) culture (18) extreme programming (21) leadership (18) lean (47) people (26) planning (17) retrospective (18) scrum (41) story (18) team (30) testing (18) xpday (19)