Simple Design

690 views

Published on

A workshop on the Agile practice of Simple Design.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
690
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Simple Design

  1. 1. The First 100 Hours: Simple DesignJason Cheong-Kee-You @jpcky www.mightyjupiter.com Alistair McKinnell@amckinnell www.valuablecode.com
  2. 2. The First 100 Hours
  3. 3. The First 100 Hours1. Learning2. Test-Driven Development3. Design
  4. 4. Pair Programming
  5. 5. 44 A Rhythm for Success: The TDD Cycle R ed Gre tor en ac R efPrepared exclusively for Alistair McKinnell Copyright ©2011 Pragmatic Programmers
  6. 6. Where DoYou Stand?
  7. 7. Simple Design
  8. 8. Simple Design1. All tests must pass2. No code is duplicated3. Code is self-explanatory4. No superfluous parts exist
  9. 9. Exercise
  10. 10. ExerciseWhy are the four rules ofsimple design important?
  11. 11. Simple Design1. All tests must pass2. No code is duplicated3. Code is self-explanatory4. No superfluous parts exist
  12. 12. Simple Design1. Passes its tests2. No code is duplicated3. Code is self-explanatory4. No superfluous parts exist
  13. 13. Simple Design1. Passes its tests2. Minimizes duplication3. Code is self-explanatory4. No superfluous parts exist
  14. 14. Simple Design1. Passes its tests2. Minimizes duplication3. Maximizes clarity4. No superfluous parts exist
  15. 15. Simple Design1. Passes its tests2. Minimizes duplication3. Maximizes clarity4. Has fewer elements
  16. 16. Simple Design1. Passes its tests (given TDD)2. Minimizes duplication3. Maximizes clarity4. Has fewer elements
  17. 17. Simple Design1. Passes its tests (given TDD)2. Minimizes duplication3. Maximizes clarity (fix names)4. Has fewer elements
  18. 18. Simple Design1. Passes its tests (given TDD)2. Minimizes duplication3. Maximizes clarity (fix names)4. Has fewer elements
  19. 19. That leaves me with two key elementsof simple design: remove duplication andfix bad names.When I remove duplication, I tend to seean appropriate structure emerge, and whenI fix bad names, I tend to see responsibilitiesslide into appropriate parts of the design. J. B. Rainsberger
  20. 20. Simple Design• Remove duplication• Fix bad names
  21. 21. Exercise
  22. 22. ExerciseHow to choose good names? Build a checklist
  23. 23. Choosing Good Names
  24. 24. Choosing Good Names Pronounceable Names Avoid Encodings
  25. 25. Choosing Good Names Intention-Revealing Name Role-Suggesting Name
  26. 26. Choosing Good Names Ubiquitous Language
  27. 27. Simple Design1. All tests must pass2. No code is duplicated3. Code is self-explanatory4. No superfluous parts exist
  28. 28. Simple Design• Remove duplication• Fix bad names
  29. 29. “The prime directive that wasunanimously agree upon by all present was that in the nexttens years Agile leaders mustDemand Technical Excellence” Jeff Sutherland
  30. 30. “Failure to do that meansyou are not an Agile leader” Jeff Sutherland
  31. 31. Photo Creditshttp://www.flickr.com/photos/54087404@N00/4638056301/http://www.flickr.com/photos/49016492@N08/4534101229/http://www.flickr.com/photos/27558040@N00/4151899795/http://www.flickr.com/photos/21561428@N03/5520629205/http://www.flickr.com/photos/flatcat/3555774083/

×