ARTICLES
Software Craftsmanship
Joe Sak
Last month, I attended the Software Craftsmanship North America conference. There were some really great speakers who gave some really great talks. I got to hear from Michael Feathers, Cory Foy, Brian Marick, Gary Bernhardt, Uncle Bob Martin, and so many more. I also got to spend a little time getting to know some of them, which was definitely a real treat. 8th Light, the host of the conference, even invited us to check out their new office and partake of their vast scotch bar. It’s no secret that these events tend to revolve around social interactions, where we can meet fellow developers from around the world, bond, and discuss important topics.
Uncle Bob gave us “our CTO’s” reasonable expectations of us, as software craftsman. First, he tells us, “We will not ship shit.” Yep, straight up. That’s what the man said. That’s our duty. How do we achieve this? For one, we won’t let stale, messy code stay that way when we happen to see it while working on a project. We will clean it up. We will use Test-Driven Development to give ourselves confidence to make the changes necessary to do the cleaning. We will be ready to deploy, our code will be stable, and the QA team won’t find any bugs. No, this doesn’t happen 100% of the time in reality; nobody can be expected to prevent every single bug. But, we are responsible for finding our own bugs and squashing them before submitting our work to QA. Finally, any self-respecting Software Craftsman should continually improve. As a professional, we should expect to spend upwards of 20 additional hours a week practicing and learning new techniques and languages.
Chad Pytel gave us insight into the Apprenticeship Program at Thoughtbot, called Apprentice.io. This was a particularly useful topic for us at Neoteric Design, because we are developing our own in-house apprenticeship. There’s a growing ecosystem of developer training out there today, as this idea is catching on rapidly. Code Academy is now The Starter League. Dave Hoover, formerly of Groupon and Obtiva, founded Dev Bootcamp. It’s an exciting time for people who wish they could learn how to program and build a web application. Neoteric Design is preparing to jump in soon. We’re excited to share our expertise with some hopeful recruits.
Jen Myers talked about a subject I’ve been wanting people to talk about for a long time: Design Myths. There’s a fantastic quote by Steve Jobs that she used in her talk (which I’ll leave linked for viewing) that sums it all up very well:
People think [design is] this veneer — that the designers are handed this box and told, ‘Make it look good!’ That’s not what we think design is. It’s not just what it looks like and feels like. Design is how it works.
Finally, my favorite speaker—and I don’t think I’m even close to alone on this—was Leon Gersing , or as I know him: @rubybuddha on Twitter. I highly recommend everyone, especially developers, to watch this talk. His topic was “Keep Software Weird,” and he certainly lives up to the title. Aside from the wonderful Shel Silverstein poem that he read, my favorite notes from Leon include:
- If there is something you’d rather be doing right now, do it now.
- The only clock that matters is your remaining number of heartbeats.
- Question everything, challenge all of your own assumptions.
- Team members do not need to share the same opinions and values, only the same goals.
There are so many more great points in this talk, so I encourage you to watch it.
Well, that about does it. For me, Software Craftsmanship is about relentless code improvement, ongoing learning, teaching others, challenging our assumptions, doing what we know is right, and doing it now instead of later.