Over the past several years I've been following the software craftsmanship movement. I really like the view of software development as a craft. I've experienced quite a bit of personal growth as a developer over the last 7 or so years, largely as a result of the wisdom of many of the "masters" in the industry, paired with some great coworkers who were open to new concepts and some challenging projects we overcame. Much of this came in spite of our corporation, or at least some of the pressures that came from it.
In looking at the craftsmanship movement, you'll find that a lot of the influential people in this movement work for or own "software boutiques", small high-end software development shops that develop customized software, tailored to their customers. These people are big into their craft, and stand behind the work they do. If you look at some of these company's websites, you can see their commitment to craftsmanship, apprenticing, agile, etc. Companies off the top of my head include 8th Light, Relevance, RoleModel, among others.
I'm looking at my own company, a large corporation, and I see many of the the same pressures as there have always been, though there is more acknowledgement and talk about quality practices, at least in our lab here in Cary. We have been serious about agile and improving our practice, which I think is going to provide opportunity for the next step. I still see lots of developers around the company that do not see what they do as craft, or even know or care about craftsmanship. I am fortunate though, to work on a really good team. I see the quality of the developers, designers, and testers, and their passion for what they do, and I see awesome potential.
My goal for the team I'm on is this: To be a high-end boutique within our big company. Lets set our standards there. It fits well into the work our group does, and I think we are poised do this.
Michael Feathers wrote the following fascinating post on the way Gordon Ramsey does business and how that relates to software boutiques:
"On television, he is often shown in a volatile state, screaming at people in an effort to get them to do a better job in the kitchen. If you see him in passing, when you are flipping channels, it's easy to see what he does as abusive theater. If you pause your channel clicker, though, what you discover is that he is really a guy who is all about standards. He rose up the ranks of his profession by drawing an incredibly hard line and refusing to compromise on quality."
Now I'm not advocating screaming at programmers;-) Feathers is right that the analogy stops prior to that. What we should do is set our standards high, look at how these companies work, and learn from them, providing similar services to our customers. It starts with me of course, and its also something I'd like to see this team. I want to try to get others inspired. I'll let you know how it goes...