Your SlideShare is downloading. ×
0
“Simple”                          Design and Testing               by @zspencer for @rubytaiwan on May 31, 2011           ...
WTF is “SIMPLE?!”                     @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, Jun...
Everything is in my            language of choice                                                          It’s all in a s...
Maximizing the amount                  of work *not* done                     @zspencer -- http://www.zacharyspencer.com -...
For Who?                   •      The Users/Customers                   •      The Stakeholders/Sponsors                  ...
Your Users                           http://www.flickr.com/photos/57634636@N00/5134293410/                     @zspencer --...
Your Stakeholders                             http://www.flickr.com/photos/the_warfield/4992455554/                     @zsp...
Your Team                          http://www.flickr.com/photos/reinholdbehringer/1073165898/                     @zspencer...
Ok. How?                     @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
Radiate Information               Center Design On The User               Write Changeable Code                     @zspen...
Radiate Information               Center Design On The User               Write Changeable Code                     @zspen...
Ok. How?                     @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
4 Rules for                                 Simple Design                  * Pass All Tests                  * Duplicate N...
All Tests Must Pass!                     @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, ...
Automated Story Tests                     @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday,...
Automated Unit Tests                     @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, ...
Exploratory Testing                              http://www.flickr.com/photos/rogersmith/4947063094/                     @z...
No Duplication                              http://www.flickr.com/photos/vermininc/3327459367/                     @zspence...
Smell Yer Code!                                 http://www.flickr.com/photos/spine/2076612679/                     @zspence...
Duplication Smells! http://rubylearning.com/blog/2010/11/08/how-does-your-code-smell/                   •      Reinvented ...
Express Intent                  Clearly + Consistently!                               http://www.flickr.com/photos/spacelio...
Reveal Why                             http://www.flickr.com/photos/freeparking/2247693823/                     @zspencer -...
(Re)Name Stuff                            http://www.flickr.com/photos/cinderellas_blog/255282013/                     @zsp...
Extract and Move Stuff                              www.flickr.com/photos/22746515@N02/2989699245/                     @zsp...
Some More Smells! http://rubylearning.com/blog/2010/11/08/how-does-your-code-smell/                   •      Uncommunicati...
No Superfluous Parts!                                http://www.flickr.com/photos/altuwa/4530651461/                     @zs...
Photo Credits                   •      Kids Using iPads: Kathy Cassidy                                                    ...
More Learnin’                   •      A List of Books and Articles on Simple Design and                          Testing:...
Upcoming SlideShare
Loading in...5
×

Simple design and Testing by @zspencer for @rubytaiwan

751

Published on

This presentation is about writing software for change by following the four rules of simple design.

It is a very brief overview that can be presented in ~15 minutes.

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
751
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Simple design and Testing by @zspencer for @rubytaiwan"

  1. 1. “Simple” Design and Testing by @zspencer for @rubytaiwan on May 31, 2011 http://www.zacharyspencer.com @rubytaiwanWednesday, June 1, 2011
  2. 2. WTF is “SIMPLE?!” @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  3. 3. Everything is in my language of choice It’s all in a single method! Took the fewest keystrokes! It’s aesthetically clean! I just like it! @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  4. 4. Maximizing the amount of work *not* done @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  5. 5. For Who? • The Users/Customers • The Stakeholders/Sponsors • The Team/You @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  6. 6. Your Users http://www.flickr.com/photos/57634636@N00/5134293410/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  7. 7. Your Stakeholders http://www.flickr.com/photos/the_warfield/4992455554/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  8. 8. Your Team http://www.flickr.com/photos/reinholdbehringer/1073165898/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  9. 9. Ok. How? @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  10. 10. Radiate Information Center Design On The User Write Changeable Code @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  11. 11. Radiate Information Center Design On The User Write Changeable Code @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  12. 12. Ok. How? @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  13. 13. 4 Rules for Simple Design * Pass All Tests * Duplicate No Behavior or Configuration * Express Intent Clearly and Consistently * Have No Superfluous Parts @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  14. 14. All Tests Must Pass! @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  15. 15. Automated Story Tests @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  16. 16. Automated Unit Tests @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  17. 17. Exploratory Testing http://www.flickr.com/photos/rogersmith/4947063094/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  18. 18. No Duplication http://www.flickr.com/photos/vermininc/3327459367/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  19. 19. Smell Yer Code! http://www.flickr.com/photos/spine/2076612679/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  20. 20. Duplication Smells! http://rubylearning.com/blog/2010/11/08/how-does-your-code-smell/ • Reinvented Wheel • Data Classes • Combinatorial Explosion • Procedural Code • Middle Man • Repeated Value • Greedy Methods/ • Big Classes Modules @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  21. 21. Express Intent Clearly + Consistently! http://www.flickr.com/photos/spacelion/263948300/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  22. 22. Reveal Why http://www.flickr.com/photos/freeparking/2247693823/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  23. 23. (Re)Name Stuff http://www.flickr.com/photos/cinderellas_blog/255282013/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  24. 24. Extract and Move Stuff www.flickr.com/photos/22746515@N02/2989699245/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  25. 25. Some More Smells! http://rubylearning.com/blog/2010/11/08/how-does-your-code-smell/ • Uncommunicative Name • Global Variables • Type Included in Name • Dynamic Code Creation • Inconsistent Names • Comments • Long Parameters • Complicated Booleans @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  26. 26. No Superfluous Parts! http://www.flickr.com/photos/altuwa/4530651461/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  27. 27. Photo Credits • Kids Using iPads: Kathy Cassidy • Walmart Storefront: Walmart Corporate • The Boardroom: The Warfield • Breakdancer: Gueorgui • Software Team at Work: Reinhold Behringer • Alfred Lord Tennyson: freeparking • Passing Test: Davey Brown • The Pelican: Cindy Andrie • Spy Plane: Roger Smith • Earth Mover: Bert Kaufmann • Octuplet Consumers:Vermin Inc. • Rube Goldberg Machine: Sebastian B • Smelling Wine: Rick @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  28. 28. More Learnin’ • A List of Books and Articles on Simple Design and Testing: http://bit.ly/simple_design_and_testing • Other Resources I Think Are Awesome (Broken Down by Speciality): http://bit.ly/zspencer_recommends • Pillars Free Webinars: http://pillartechnology.com/content/ webinarbrowse • Other Free Pillar Resources: http://pillartechnology.com/ page/agilelinks @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×