11 comments

[ 4.4 ms ] story [ 42.1 ms ] thread
No, it's just waiting to be rediscovered--or, as is more common--reinvented.
> Somewhere along the way, in the midst of the agilification of software, or the software engineer salary gold rush, we forgot about craftsmanship.

the was never “craftsmanship” to begin with

Like anywhere else, incentives determine everything. What really surprises me is that revenues continue to climb. I wrote about this 5 years ago: https://omarabid.com/the-modern-web (time flies!). I guess we haven't hit the breaking point yet?

My concern is that regulation and state-corporate dynamics will fill the gap. Take online hotel booking, for example. The experience is abysmal, and yesterday highlighted it perfectly: Booking's mobile app was completely down (or failed to fetch data), though their web app worked. I had to pull out my laptop just to access my booking.

But there's no real alternative. Booking Holdings bought up nearly everything in the booking space, and what they didn't acquire, Trip.com did (sources: https://en.wikipedia.org/wiki/Trip.com_Group / https://en.wikipedia.org/wiki/Booking_Holdings). The hotel I stayed at has its own reservation system at the same price; but spoiler alert: it doesn't work. It couldn't even get me to the payment processing page.

So everything gets worse, but where else can you go?

I find this complaint totally asinine. You can hand-craft software if you like, but cheap is what customers want and that's what they're going to get. Do you spend 10x as much for hand crafted solid wood furniture, or do you buy MDF flat pack? Most people are happy buying cheap stuff from China, and if it doesn't last as long they're happy to replace it.
with LLMs in a few years software would be a low level thingy that people used to spend hours writing and debugging. like assembly back in the day. software is becoming more and more cheaper to put in place. craftsmanship is in the product and value not in the software itself. we are in an era: adapt or get out ...
There's a lot of craftsmanship left out there, but people are distracted by AI and pay more attention to the mediocre apps on their phone because of the frustration they cause.

The need to write good software and care about the details isn't going anywhere. If anything, all the slop is creating a stronger demand.

All analogies fail to describe software precisely because we have shoveled all our problems onto software that we need to trust for everything. It is not furniture. Programmers are not factory workers.

I feel like the stakes are never low becasue when you ship crap your getting paged. You'll work weekends or overnights to fix your shoddy code and choices. Yeah the stakes are low like no one really cares if the b2b SaaS is down. But I care because I value my own time. I feel like no one thinks that way.

Also on the topic of the rant, I think to many people just don't give a shit. Idk how they're like that? To many people develop software that aren't computer people.

If one likens coding to carpentry, then enterprise software development at a small company is not building a beautiful carved coffee table, it's more akin to the contents of a farm workshop. I'm talking about shelves and tables and "tools" quickly made from cut-up 2 by 4s, screws, and nails. It works for the scale of a small farm. If something needs improvement, you tack it on or cut away somewhat haphazardly, and thing gets a little uglier and more cumbersome. The marker of skill is how well you can do this in a fixed, short amount of time.

If that farm manages to grow to become a "big farm", then some of those wood constructions are not going to cut it anymore (though some parts still can), and good quality expensive tools/tables will need to be bought. This might require some persuasion when talking to higher ups, because they've been used to cheap stuff up until now. And you may never get thanked for averting a disaster.

If you accept this as the nature of business, then you can move forward. Aim to minimize shit, not maximise perfection. Leave if your management can never see reason.

Or maybe software craftmanship was always dead (and still lives on). Good enough is sometimes perfect, and a good example of that was a HN post today about how the makers of CP/M looked after their customers, and made a beautiful compiler for a new language to build their version 2, but in the end they were beaten by a hacky clone of their software which was then bought by Microsoft, and then you know the rest.

https://news.ycombinator.com/item?id=46426614

But craftmanship lives on as market differentiation, which is how Apple became dominant. It also lives on in critical software where attention to detail is vital or extremely high-value (eg. Linux kernel, cryptography libraries, aerospace/automotive, medtech), basically anything where downtime or incorrect behaviour costs money or lives.

framing the fight for quality as a fight for craftsmanship is a sure fire way to lose both
> without regard for the maintenance burden 1, 2, 5, 10 years down the road.

To me software craftsmanship isn't just about the code, it's about engineering use of time.

In general shouldn't knowingly make choices that would result in pain in the future, but if you're increasing the chance of the project not making it to the future, then is that really the better option? Finding out enough information to make the judgement call between long term/far future pain and short term benefits is all part of the craftsmanship.

> I don't blame agile. But I do kind of blame Agile™

(Loving the phrasing here! I think I'm right on board, especially if we're talking Scrum/Scum-ish)