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.
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Simple design and Testing by @zspencer for @rubytaiwan
1. “Simple”
Design and Testing
by @zspencer for @rubytaiwan on May 31, 2011
http://www.zacharyspencer.com
@rubytaiwan
Wednesday, June 1, 2011
2. WTF is “SIMPLE?!”
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, 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, 2011
Wednesday, June 1, 2011
4. Maximizing the amount
of work *not* done
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
5. For Who?
• The Users/Customers
• The Stakeholders/Sponsors
• The Team/You
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
6. Your Users
http://www.flickr.com/photos/57634636@N00/5134293410/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
7. Your Stakeholders
http://www.flickr.com/photos/the_warfield/4992455554/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
8. Your Team
http://www.flickr.com/photos/reinholdbehringer/1073165898/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
9. Ok. How?
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
10. Radiate Information
Center Design On The User
Write Changeable Code
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
11. Radiate Information
Center Design On The User
Write Changeable Code
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
12. Ok. How?
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, 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, 2011
Wednesday, June 1, 2011
14. All Tests Must Pass!
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
15. Automated Story Tests
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
16. Automated Unit Tests
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
17. Exploratory Testing
http://www.flickr.com/photos/rogersmith/4947063094/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
18. No Duplication
http://www.flickr.com/photos/vermininc/3327459367/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
19. Smell Yer Code!
http://www.flickr.com/photos/spine/2076612679/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
21. Express Intent
Clearly + Consistently!
http://www.flickr.com/photos/spacelion/263948300/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
22. Reveal Why
http://www.flickr.com/photos/freeparking/2247693823/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
23. (Re)Name Stuff
http://www.flickr.com/photos/cinderellas_blog/255282013/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
24. Extract and Move Stuff
www.flickr.com/photos/22746515@N02/2989699245/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, 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, 2011
Wednesday, June 1, 2011
26. No Superfluous Parts!
http://www.flickr.com/photos/altuwa/4530651461/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, 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, 2011
Wednesday, 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, 2011
Wednesday, June 1, 2011