← Back to context

Comment by parpfish

6 hours ago

One weird thing about software jobs as opposed to other crafts is the persistence of the workpiece.

A furniture maker builds a chair, ships it out, and they don’t see it again. Pride in their craft is all about joy of mastery and building a good external reputation.

In most software jobs, the thing you build today sticks around and you’ll be dealing with it next month. Pride in your craft can be self serving because building something well makes life easier for future-you

I think this ignores the codebase churn in Big Tech. The code you write today probably won't be there in ten years. It will be heavily refactored, obsolete, or the product will be outright canceled. You can pour your heart in it, but in all likelihood, you're leaving no lasting mark on the world. You just do a small part to keep the number going up.

Tech workplaces are incredibly ephemeral too. Reorgs, departures, constant hiring - so if you leave today, in 5-10 years, there might be no single person left who still remembers or thinks highly of the heroic all-nighters you pulled off. In fact, your old team probably won't exist in its current shape.

If you build quality furniture for your customers, chances are, it will outlive you. If you work on some frontend piece at Amazon, it won't. I think the amount of pride in your workmanship needs to scale with that.

  • Well said. I’ve always also thought that writing code and craftsmanship is a forced metaphor. At most, the product is the craft, not the code. And a product is exactly as good as people’s experiences of using it and how well it solves their problems. The underlying code quality is correlated with these things, but let’s be honest a badly designed product that doesn’t meet the customers needs can have PERFECT code and zero tech debt and still be a bad product because of it.

    Also you know what, some code is disposable. Sure, we all want to craft amazing sculptures of metaphorical beautiful wooden chairs that will last a lifetime, but sometimes what the customer needs is a stack of plastic chairs, cheap, and done next week. Who cares if they break after like 1 year.

    So, sometimes when I accept that my boss wants something rushed through, I don’t complain about the tech debt it’ll cause, I don’t fight back about how it should’ve designed to have wonderful code… not because I have no pride in my work, but because I understand the businesses needs.

    And sometimes the business just wants you to make plastic chairs.

That only applies if you expect to be at one job for a long time. Current business culture makes that a poor bet, both due to pernicious Jack Welch style layoff management and the career and salary benefits of changing jobs every few years.

> Pride in your craft can be self serving because building something well makes life easier for future-you

But, it doesn't. It's not as if you get to sit around doing nothing if you did a great job, you just get some new software project. The company gets to enjoy the benefit of a job well done.

  • Getting a new software project beats the hell out of going back and digging through the cruft of a legacy software project. At least the new software project offers the chance to learn current tech.