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.
1 of 28
More Related Content
Simple design and Testing by @zspencer for @rubytaiwan
1. ¡°³§¾±³¾±è±ô±ð¡±
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.?ickr.com/photos/57634636@N00/5134293410/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
7. Your Stakeholders
http://www.?ickr.com/photos/the_war?eld/4992455554/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
8. Your Team
http://www.?ickr.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 Con?guration
* Express Intent Clearly and Consistently
* Have No Super?uous 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.?ickr.com/photos/rogersmith/4947063094/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
18. No Duplication
http://www.?ickr.com/photos/vermininc/3327459367/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
19. Smell Yer Code!
http://www.?ickr.com/photos/spine/2076612679/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
21. Express Intent
Clearly + Consistently!
http://www.?ickr.com/photos/spacelion/263948300/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
22. Reveal Why
http://www.?ickr.com/photos/freeparking/2247693823/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
23. (Re)Name Stuff
http://www.?ickr.com/photos/cinderellas_blog/255282013/
@zspencer -- http://www.zacharyspencer.com -- @rubytaiwan May 31, 2011
Wednesday, June 1, 2011
24. Extract and Move Stuff
www.?ickr.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 Super?uous Parts!
http://www.?ickr.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 War?eld
? 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