Hey folks, welcome to The Imposters Club, the podcast for misfits in tech. You know who you are? Who am I? I'm your host, Teddy Kim. I'm a director of software engineering at a SaaS startup, here in Minneapolis. The subject of today's podcast is Craftsmanship. Where to begin? Well, I've had problems with my feet for a while, I've broken both of them multiple times and I might also have some form of arthritis. It is the worst. My feet get so swollen that I can't fit them into regular shoes. During a bad flare-up, it's difficult to even get them into flip flops. I think my problem is that I have extremely wide feet, my feet are 5E. So they're basically flippers. Most shoe companies won't make shoes wider than 2E. So it's incredibly difficult to find shoes with my width. And I usually end up wearing shoes that are at least a few sizes too narrow, that's the best I can do. But after my latest excruciating foot crisis, I decided to look into getting a pair of custom shoes made. As it happens, there's a woman in my town who will make shoes to order. I contacted her to get some information and it was a crazy experience. I can honestly say that I've never encountered a true Craftsman before I met this woman. And it was quite an enlightening experience.
Now, some of you might be wondering, how can I say I've never met a true craftsman before? Aren't you in software? What about software craftsmanship? Dude. So not the same thing. Let me tell you about this Shoemaker. First of all, if you want shoes from this woman, you need to get onto her waiting list. It takes over six months to get a fitting and another six months until the shoes are done. You cannot jump the line; you cannot expedite an order. It takes as long as it takes. If you don't like it, too bad. What about quality? Well, she'll customize every aspect of the shoe to your exact specifications. The quality of the build is so high that she guarantees her work for life. Oh, yes. One more thing. She doesn't advertise, and her business runs entirely on word of mouth, which is a testament to the quality of her shoes. Anyway, the starting price for her shoes is $1200 and she sells shoes that go into the five-figure range. You cannot get her shoes cheaper than that. The price is not negotiable. If you don't like it, too bad.
Now, some of you listening can see where I'm going with this. What I've just described is the so-called "unattainable triangle" that refers to the interplay between cost, quality, and speed. The unattainable triangle refers to the idea that you can't increase one without impacting the other. For example, if you produce a product faster, then quality must go down, or if you improve quality, then costs must go up. The interdependence of cost, quality, and speed is the unattainable triangle.
But here's the thing. With this Shoemaker, this craftsman, cost quality, and speed are orthogonal. The cost of the leather is a negligible fraction of the cost of the shoe. People aren't paying for the leather. They're paying for her knowledge and skill. The quality of the build isn't impacted by deadlines. There is no deadline she's done when her own innate sense of quality is satisfied. It's incredible. The very fact that a business like this can prosper is proof positive of her craftsmanship. And therein lies the true definition of craftsmanship. If you are a true craftsman, the unattainable triangle does not impact your ability to feed yourself. So what to make of techies who refer to themselves as craftsmen? That reminds me of Andre the Giant in the movie The Princess Bride. You keep using that word, I do not think it means what you think it means.
Listen, if you're in tech and, you think the unattainable triangle doesn't impact your ability to feed yourself, I'm gonna back away slowly because I don't want to catch your crazy. Imagine going into work and not shipping your code until your innate sense of quality is satisfied. Now imagine you demand a salary over 10 times what any other developer in your company charges. Yeah, that's not ever gonna happen. And that is one of the bitter pills of the software game. The brutal reality is that an end-user doesn't know or care if the system they use was coded by Linus Torvalds or Teddy Kim. And an end-user will most certainly not pay more for one coder over another, they just want the shit to work.
The problem with thinking of yourself as a software Craftsman is that it causes dissonance between how you see yourself and how your employer sees you. And that dissonance can take the joy out of your professional life. I'm sorry, but your employer doesn't value your sense of craftsmanship. They may pay lip service to appease you. But that's all it is lip service, if you think otherwise go ahead and ask for a raise commensurate with your sense of craftsmanship...and let me know how that goes.
To paraphrase the late great Oscar Gamble, if you are a self-styled software craftsman, well, you don't think it be like it is, but it do. The bottom line is you're part of a business and your business is in competition with other businesses. It's the scale of your business that allows you to collect a paycheck. It's the scale of your business, which makes it impossible to do software as a true craft. If you're okay with that, then go forth and prosper. If you're not okay with that, well then maybe there's a future for you in custom shoes.