← Back to context

Comment by tarsinge

2 hours ago

I dont understand why software engineers insist on keeping the craftsmanship aspect of writing code. Compare to other engineering disciplines, like civil engineering. Engineering was never about going in the field yourself to build things with your own hands. You can become a great civil engineer without building bridges that fail yourself. To me it doesn’t matter that the thing I design is built with a crane or AI. I can design quality control processes too to ensure the thing is built up to standard, I don’t have to build the thing myself to be sure. There is nothing wrong with artisanal code crafting, I appreciate this too, but professionally that’s not engineering. It seems AI is just forcing us to clear the confusion the hard way.

There's a false equivalency between software engineering and civil engineering here, in my opinion. I would argue that the craftsmanship SWEs see in their work stems from a necessity to be novel in order to truly make something worth putting out into the market. "Oh, you're making an app that tracks heartrate/makes music/provides driving directions? Why wouldn't the user just use <insert 'X' market-leading app>?" There's no real merit to making clones, whereas in civil engineering (I would argue) this is the bread and butter. You can't copy and paste a bridge. There's a physicality to it that says "okay, make another bridge similar to this but now for that gap", so the challenge becomes making the necessary repetition more efficient, and it's "fine" if no one is going out of their way to be an "artisanal civil engineer".

Combine this argument with the fact that LLMs are reliant on what information they've ingested; they'll only give you responses based on what already exists. The creativity needed to make something (worth making) is missing there. You'd hope that the humans using the AI fill that role, but comments like this one and others lauding praises on AI and vibe-coding give me serious doubt. We could argue instead that SWE is a misnomer for this field, but that's a separate conversation.

In my opinion, SWE should prioritize true innovation, which AI isn't designed for. (IMO, AI is better suited for fast info lookup rather than key production tasks) Without creativity in SWE, the industry bloats to a unsustainable mass of cloned/useless apps and startups just hoping to be eaten (bought) by a bigger fish, with investors/customers repeatedly being promised "something better is right around the corner!" ...and it just never comes, and the whole thing just collapses on itself.

  • > I would argue that the craftsmanship SWEs see in their work stems from a necessity to be novel in order to truly make something worth putting out into the market. ... There's no real merit to making clones, whereas in civil engineering (I would argue) this is the bread and butter. You can't copy and paste a bridge. There's a physicality to it that says "okay, make another bridge similar to this but now for that gap", so the challenge becomes making the necessary repetition more efficient, and it's "fine" if no one is going out of their way to be an "artisanal civil engineer".

    This is a key insight that invalidates a lot of the manufacturing thought that infects software development. Manufacturing (in large part) is about making copies, better and cheaper. But with software, you can create perfect copies for free. A "software factory" makes no sense, there's a fundamental paradigm mismatch.

Software is blueprint. Can you really become a decent civil engineer if you never created a buleprint for anything?

Will large scale construction projects ever be started with AI made blueprints?

There's probably more to the whole engineering discipline, soft- and hardware, than you give it credit for here.

Because many aren't software engineers, they are brick layers.

To be comparable, they would have to go through the same university degree and professional certification, instead of doing a JavaScript training and call themselves software engineers instead of coders.

They are getting the blueprints from architects and senior devs, and putting those bricks into place, and carrying buckets.

bc software engineering learning is 99% BOTTOM-UP...

and that's bc SE education FAILED BADLY... almost nothing of what's useful is thought in schools and nothing of what's thought is useful

instead of FIXING education and theory, software engineering marched on forcefully without it

now we need to go back and properly fix education, because an intern should absolutely be required to have the "advanced" skills that we imagine in our deluded minds that only "10+ ys of industry experience" should confer, and that are absolutely required to be even a junior AI-augmented SE

SE/CS education should be rethought from scratch to distill, purify, and teach in 3ys max the concepts that used to be acquired through 10-30ys of experience - it 100% CAN be done, and we should wake tf up and DO IT instead of complaining about it - "advanced enterprise systems" architecture require nothing more than mid-highschool math and can be thought on symulated systems in sem 1 of year 1, it's just some of the "teachers" would have to actually put in the 80hrs-weeks of work to do it in due time

Yes, let's build a bridge with AI

  • I think the analogy (and it is not to be taken literally) is that of "commoditized processes".

    Nowadays we don't build bridges to suit the site, we choose sites to accommodate bridges that we basically build identically via a few designs.

    Connecting back to s/w AI can do the standard stuff ok as long as you test around the outside of it, so you might want to hone your judgment about how you build systems so it uses the stuff AI can do well, vs "building for the site". The gains are productivity. The losses are efficiency (the problem must go through some extra steps to meet the process where it works). Same as any engineering problem at scale.