Your SlideShare is downloading. ×
Simple design and Testing by @zspencer for @rubytaiwan
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Simple design and Testing by @zspencer for @rubytaiwan

722
views

Published on

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

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. “Simple” Design and Testing by @zspencer for @rubytaiwan on May 31, 2011 http://www.zacharyspencer.com @rubytaiwanWednesday, June 1, 2011
  • 2. WTF is “SIMPLE?!” @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 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. Maximizing the amount of work *not* done @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 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. Your Users http://www.flickr.com/photos/57634636@N00/5134293410/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 7. Your Stakeholders http://www.flickr.com/photos/the_warfield/4992455554/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 8. Your Team http://www.flickr.com/photos/reinholdbehringer/1073165898/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 9. Ok. How? @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 10. Radiate Information Center Design On The User Write Changeable Code @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 11. Radiate Information Center Design On The User Write Changeable Code @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 12. Ok. How? @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 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. All Tests Must Pass! @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 15. Automated Story Tests @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 16. Automated Unit Tests @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 17. Exploratory Testing http://www.flickr.com/photos/rogersmith/4947063094/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 18. No Duplication http://www.flickr.com/photos/vermininc/3327459367/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 19. Smell Yer Code! http://www.flickr.com/photos/spine/2076612679/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 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. Express Intent Clearly + Consistently! http://www.flickr.com/photos/spacelion/263948300/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 22. Reveal Why http://www.flickr.com/photos/freeparking/2247693823/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 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. Extract and Move Stuff www.flickr.com/photos/22746515@N02/2989699245/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 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. No Superfluous Parts! http://www.flickr.com/photos/altuwa/4530651461/ @zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011Wednesday, June 1, 2011
  • 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. 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