Articles by Chad Fowler

SCNA 2010: Software Craftsmanship North America

Posted by Chad Fowler on 2010-10-19 00:00:00 UTC

<p> This past weekend I attended and spoke at the second installment of <a href="http://scna.softwarecraftsmanship.org">Software Craftsmanship North America</a>. The conference was organized by <a href="http://www.8thlight.com/">8th Light</a> and <a href="http://www.obtiva.com/">Obtiva</a> and featured a variety of sessions on the topic of craftsmanship and excellence in our profession. </p> <p> Overall, the conference was fabulous. It was well organized, well catered and well programmed. I left with a renewed excitement over the <a href="http://www.chadfowler.com/2003/3/25/valueless-software">practice of programming</a>. </p> <img src="http://lh4.ggpht.com/_TVhFMT7oEd0/TLvjzmOWODI/AAAAAAAAKJ8/pR4oKLszOWE/0131.jpg" style='width:300px'/><br/>Photo credit: <a href="http://picasaweb.google.com/jangdiafoto/SoftwareCraftsmanshipNorthAmerica20101016#5529263443100973106">Monty Ksycki</a> <br/> <p> My presentation was called "McDonalds, Six Sigma, and Offshore Outsourcing - Unexpected Sources of Insight". Here's the abstract: </p> <blockquote> We software developers like to think of what we do as an art form (or a craft, if you're at this conference). I was once asked to come up with a set of guidelines for creating great software so our (huge) company could more effectively use an offshore development team that had been delivering amorphous piles of crummy, nonworking code. I was frustrated and responded with something like this: "Give me a list of guidelines for how to make a beautiful song!" The nerve! Repeatable processes? Who did she think she was talking to?! This is a creative process! This is ART!!!! </blockquote> <blockquote> I've since grown up a bit and I'd like to talk about how I was wrong and how we can all hopefully learn from my mistakes. </blockquote> <img src="http://chadfowler.com/art-commodity-continuum.png" style='width:400px'/><br/>The Art-Craft-Commodity Continuum (from my presentation) <br/> <p> In it, I told the story of my experiences with the Six Sigma quality methodology and with offshore outsourcing, urging developers not to blindly write off potentially useful software development strategies based on hearsay and misunderstanding. I also proposed a customer-driven, data-driven approach to software engineering, dovetailing off of our own Chief Scientist, <a href="http://www.vanderburg.org/blog">Glenn Vanderburg's</a> recent ruminations on <a href="http://confreaks.net/videos/282-lsrc2010-real-software-engineering">"Real Software Engineering"</a>. </p> <a href="http://en.wikipedia.org/wiki/File:Originalronaldmcdonald.jpg"><img style='width:300px' src="http://upload.wikimedia.org/wikipedia/en/9/91/Originalronaldmcdonald.jpg" alt="The original, scary Ronald McDonald"/></a><br/>The original <a href="http://en.wikipedia.org/wiki/Ronald_McDonald">Ronald McDonald</a> (Willard Scott) <p> Videos from SCNA will be posted on <a href="http://www.infoq.com/">InfoQ</a> eventually, and we'll link mine here when that happens. In the mean time, many people asked me for pointers to some of the books and resources I mentioned during my presentation. Here's a link dump that you might find useful: </p> <ul> <li> <a href="http://www.amazon.com/Mustang-Sally-LP-Version/dp/B00124HFII/ref=sr_1_1?ie=UTF8&qid=1287442362&sr=8-1">Wilson Pickett's Mustang Sally</a> </li> <li> <a href="http://www.amazon.com/Zen-Art-Motorcycle-Maintenance-Inquiry/dp/0061673730/ref=sr_1_1?s=books&ie=UTF8&qid=1287442054&sr=1-1">Zen and the Art of Motorcycle Maintenance: An Inquiry into Values</a> </li> <li> <a href="http://www.amazon.com/E-Myth-Revisited-Small-Businesses-About/dp/0887307280">The E-Myth Revisited: Why Most Small Businesses Don't Work and What to Do About It</a> </li> <li> <a href="http://vmgbpo.com">VMG BPO - Offshore business outsourcing</a> </li> <li> <a href="http://asksunday.com">Ask Sunday - Virtual Personal Assistants</a> </li> <li> <a href="http://glowtouch.com">Low cost offshore IT outsourcing</a> </li> <li> <a href="http://en.wikipedia.org/wiki/Quality_function_deployment">Quality Function Deployment</a> </li> <li> <a href="http://isixsigma.com/">iSixSigma - Lots of six sigma info</a> </li> <li> <a href='http://www.sixsigmaonline.org/six-sigma-training-certification-information/articles/the-dmadv-methodology.html'>DMADV - the six sigma design process in a nutshell</a> </li> <li> <a href='http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=sr_1_1?ie=UTF8&qid=1287442512&sr=8-1'>Design Patterns: Elements of Reusable Object-Oriented Software</a> </li> <li> <a href="http://www.wiley.com/legacy/products/subject/business/forbes/kroc.pdf">Forbes article on Ray Kroc and the founding of the McDonalds chains</a> </li> <li> <a href="http://en.wikipedia.org/wiki/John_Zorn">John Zorn - Avant Garde saxophonist</a> </li> <li> <a href="http://www.paulsmith.co.uk/">Paul Smith - Fashion designer</a> </li> <li> <a href="http://en.wikipedia.org/wiki/Mark_Rothko">Mark Rothko - Abstract Expressionist painter</a> </li> <li> <a href="http://yankov.us/rage">Rage comic generator</a> </li> <li> <a href="http://gist.github.com/612263">Ugly Kitty Server code by me and Anthony Burns</a> </li> <li> <a href="http://chadfowler.com:4567">Ugly Kitty Server in action</a> </li> <li> <a href="http://en.wikipedia.org/wiki/I_know_it_when_I_see_it">The "I know it when I see it" Supreme Court case</a> </li> <li> <a href="http://en.wikipedia.org/wiki/Alhazen">Ibn Al-Haytham - inventor of the scientific method</a> </li> <li> <a href="http://www.zazzle.com/tdd+gifts">TDD T-Shirts</a> </li> <li> <a href="http://www.extremeprogramming.org/map/project.html">Extreme Programming flow chart</a> </li> <li> <a href="http://www.richdad.com/default.aspx">Rich Dad - Poor Dad</a> </li> <li> <a href="http://www.pragprog.com/titles/cfcar2/the-passionate-programmer">The Passionate Programmer - My book</a> </li> <li> <a href="http://www.fourhourworkweek.com/">The 4-Hour Work Week</a> </li> <li> <a href="http://en.wikipedia.org/wiki/The_Turk">The Mechanical Turk</a> </li> </ul>


Things I mentioned in my Ruby Nation presentation

Posted by Chad Fowler on 2009-06-15 00:00:00 UTC

<img src="http://farm4.static.flickr.com/3594/3624082276_c57845f322.jpg"/><br /><br /><img src="http://farm4.static.flickr.com/3328/3624082028_f095222dd0.jpg" /> <p><i>Photos by <a href="http://www.flickr.com/photos/davebock/">Dave Bock</a></i></p> I had a great time at <a href="http://rubynation.org">Ruby Nation</a> this weekend. After my presentation I got a number of questions asking about things I referenced during the talk. Here&#8217;s an attempt to point to some of them. If you weren&#8217;t there, you won&#8217;t have any context but feel free to follow the links anyway You might find something interesting.</p> <p><a href="http://www.pragprog.com/titles/cfcar2/the-passionate-programmer/">My Book</a></p> <p><a href="http://www.bls.gov/tus/charts/">Bureau of Labor Statistics Time Use Survey</a></p> <p><a href="http://en.wikipedia.org/wiki/Stockholm_syndrome">Stockholm Syndrome</a></p> <p><a href="http://www.stockhausen.org/">Karlheinz Stockhausen</a> whose name I accidentally used when trying to refer to Stockholm Syndrome.</p> <p><a href="http://www.4d.com/">4d Database</a></p> <p><a href="http://www.johncoltrane.com/swf/main.htm">John Coltrane</a></p> <p><a href="http://www.drawingsofleonardo.org/">da Vinci Sketches</a></p> <p><a href="http://c2.com/cgi/wiki?EightHourBurn">Eight Hour Burn</a></p> <p><a href="http://www.objectmentor.com/omTraining/course_agile_immersion.html">XP (Agile) Immersion</a></p> <p><a href="http://hepcat1950.com/pmivmix1.html">Pat Metheny</a> &#8211; &#8220;Whenever young guys ask me what they should do to get better, I always say try to be the worst guy in whatever band you&#8217;re in. That&#8217;s the secret.&#8221;</p> <p><a href="http://iwillteachyoutoberich.com">I Will Teach You To Be Rich</a></p> <p><a href="http://www.sethgodin.com/purple/">Purple Cow</a></p> <p><a href="http://fourhourworkweek.com/">4-Hour Work Week</a></p> <p><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewCollaboration?ids=322685-2355964-4316308&#38;s=143441">Wozzeck</a> by <a href="http://w3.rz-berlin.mpg.de/cmp/berg.html">Alban Berg</a></p> <p><a href="http://drepunggomang.com/">Drepung Gomang Institute</a> (for whom we translated Hindi)</p> <p><a href="http://chadfowler.com/2009/5/2/what-would-you-rather-be-doing">What Would You Rather Be Doing?</a></p> <p><a href="http://www.asksunday.com/">Ask Sunday</a> &#8211; the company I mentioned that helped me with research</p> <p><a href="http://www.amazon.com/Stamina-1350-Magnetic-Resistance-Recumbent/dp/B001ICPCPW/ref=sr_1_258?ie=UTF8&#38;s=sporting-goods&#38;qid=1244916825&#38;sr=1-258">My exercise bike</a></p> <p><a href="http://www.arduino.cc/">Arduino</a> &#8211; I used this to create the interface to my exercise bike</p> <p><a href="http://code.google.com/p/gosu/">Gosu</a> &#8211; The game library I used to write my exercise bike &#8220;game&#8221;</p> <p><a href="http://rubyhoedown2007.confreaks.com/session05.html">Building Games with Ruby</a> &#8211; Andrea O.K. Wright&#8217;s presentation on game development in Ruby</p> <p><a href="http://www.cs.virginia.edu/~robins/YouAndYourResearch.html">You and Your Research</a> &#8211; Richard Hamming at Bell Labs</p> <p><a href="http://www.amazon.com/Fixing-Broken-Windows-Restoring-Communities/dp/0684837382">Fixing Broken Windows: Restoring Order And Reducing Crime In Our Communities</a></p> <p><a href="http://pragprog.com">The Pragmatic Programmer</a></p> <p><a href="http://en.oreilly.com/rails2009/public/schedule/detail/8772" title="Video">Discussion Panel: Women in Rails</a></p> <p><a href="http://www.prevention.com/14worsthealthmistakes/list/12.html">14 Worst Health Mistakes Even Smart Women Make</a> &#8211; Referenced Harvard and University of Texas studies on the effect of the company you keep</p> <p><a href="http://sivers.org/pdf">How to Call Attention to Your Music</a> &#8211; Derek Sivers free ebook</p> <p><a href="http://www.avclub.com/articles/15-things-kurt-vonnegut-said-better-than-anyone-el,1858/">15 Things Kurt Vonnegut Said Better Than Anyone Else Ever Has Or Will</a></p>


Your Customers Aren't Idiots

Posted by Chad Fowler on 2008-12-05 00:00:00 UTC

I was in a customer conference call with <a href="http://boboroshi.com/">John Athayde</a> recently, and he did something really smart. He was talking about his in-progress design for the customer's product and he wanted to explain that we would have reusable snippets of the design which would allow us to consistently provide the same view of an important part of the system whenever it would show up. This being a Rails project, we would do this using ERb partials.</p><p>So, John said, "We will extract this out into little snippets that I'll call -- partials". And so on.</p><p>He could have made up a metaphor and used a new customer-friendly term for this. Or he could have explained that we're using Rails, and Rails supports this thing called "partials" which is... blah blah blah. But the former requires us to learn a dumb new word just for this project, and the latter is too much information. The term "partial" is a pretty good one to describe what it does. In fact, in most well-designed systems, the terms the <em>system</em> uses to describe concepts are pretty good. Pretty easy to understand.</p><p>For some reason we developers feel compelled to hide these terms and concepts from our customers as if they're children that can't be trusted with sharp tools. They're not idiots. They just know different things than we do. Imagine if they tried to hide <em>their</em> terms and concepts from you because they assumed you were unable to understand them.</p><p>I saw <a href="http://martinfowler.com">Martin Fowler</a> speak at an XP users' meeting several years ago, and when he got to the practice called "system metaphor", he said he didn't really do that practice so much anymore because (paraphrased from iffy memory), "Sometimes the best metaphor for a system is the system itself". Note to self- keep that in mind more often.