← Back to context

Comment by ErikAugust

4 years ago

I think it’s incentives, partially.

Programmers say their job is to put themselves out of their jobs. People don’t want to be out of their jobs, really. And we know that doesn’t happen. If anything, it locks them into their job, as “subject matter experts”.

Also, most applications are built on a million layers of reusable abstractions. Even in the highest level of the code people are using frameworks and other libraries. A lot of source code is just business logic and glue code when you remove the stuff it is built upon, which tends to be much better (and many times, open and free).

> Programmers say their job is to put themselves out of their jobs. People don’t want to be out of their jobs, really. And we know that doesn’t happen. If anything, it locks them into their job, as “subject matter experts”.

I agree it is a fools errand to ask people to work against their incentives, but by https://en.wikipedia.org/wiki/Jevons_paradox I don't think there is actually disincentive given enough risk tolerance to let the new equilibrium emerge. Write better programs, and increasing the demand for programming.

I think the bigger problems is most programs are bad and alienated. Programming with everything nicely packaged and ready to be modified is like working with a clean workbench / shop. If you've never been in a clean one, cleaning seems like a chore, but if you have, working in a dirty one seems not only inefficient, but gross and undignified.

It's "take care of your tools, and your tools take care of you" vs being "lord of my garbage heap of tech debt". Any self-respecting craftsperson should choose the former.

  • > I think the bigger problems is most programs are bad and alienated. Programming with everything nicely packaged and ready to be modified is like working with a clean workbench / shop. If you've never been in a clean one, cleaning seems like a chore, but if you have, working in a dirty one seems not only inefficient, but gross and undignified.

    You hit the nail on the head here.

    I've worked a bunch of different jobs since college.

    I have worked in exactly one clean, mature codebase.

    The difference to all the others I've been in was like night and day.

    I think seeing even "acceptably decent" code is incredibly rare in our industry.

    To be fair, that's probably in large part because producing acceptably decent code is prohibitively expensive for any new product, and once you've gotten a new product off the ground and producing value, you've set the cultural norm that crappy code is what we make here.