Live data from Hacker News

The AI Situation in Software Development

srikanth.ch

71–76 of 76 posts

Re: The AI Situation in Software Development

#71

Earlier quoted context omitted.

> wake up to more progress I wonder how that progress is being measured. Lines of code or counts of PRs? Sure... but I thought the matter of measuring productivity by lines of code was already well-understood as being misguided. I'm having trouble reconciling all that supposed productivity with the real world where software isn't getting better, delivered faster, or becoming cheaper - unlike virtually all breakthroug…

I measure adherence to preestablished acceptance criteria, the same as I've done before while either coding myself or managing other engineers. It sucks, but you don't usually have the time to pour over code when you manage multiple engineers either, so you have to learn how to do thorough but targeted reviews, minimize distraction, maximize efficiency, etc. A lot of these skills transfer over to managing agents. We'…

> adherence to preestablished acceptance criteria

I was talking more about end-to-end feature/product development process from the perspective of the business, and not merely the "writing code" part. Things like figuring out what to build, what code to write (which remains - just that now you are writing a prompt instead of writing the code directly), design, customer support, regulatory compliance/etc.

From this perspective I believe that even if AI does actually automate away software development, we will find out that on average it was never actually the bottleneck nor a significant cost of the product lifecycle. Thus I'm not in a hurry to go all-in on AI just because I don't see old-school human-powered SW dev at being the bottleneck, at least not on the products/projects I work on (large software products with established customer bases).

In a lot of cases I find that the what to build is the biggest bottleneck - and in fact the relative slowness and occasional pushback (because they have skin in the game - see below) of conventional human-powered SW dev forces the stakeholder to think really well about what they want and gives them time to refine that idea. If I were to give them a hypothetical "SW dev in a minute" magic wand it would result in a lot of ill-defined & incoherent features being thrown at the wall which will quickly overwhelm support, destroy their reputation with customers (or worse, regulators) and become a perpetual maintenance burden slowing down any further development to a standstill (whether human or agentic). So I don't do that for my own sanity, even though that magic wand already exists and it's called Claude Code.

This is not to say I find AI completely useless - I see plenty of opportunities for AI to help out with non-product-related tasks - housekeeping that doesn't introduce/change any functionality and would normally rot in the backlog forever are good candidates, assuming I have good end-to-end tests and a full isolated environment where the agent can drive the whole product to QA its own work as to not create additional review burden (otherwise, I would have to review and QA it myself which is often as much effort as just doing the work myself).

> you don't usually have the time to pour over code when you manage multiple engineers either

One thing that I get with humans but not agents is skin in the game and self-preservation. A human writing code will write in such a way as to minimize future work to himself next time there's an outage, support ticket or likely change request and 2) will retain memory of what he wrote so that he will be able to address that support ticket or outage much quicker than a human having to effectively reverse-engineer the code to figure it out. From that perspective, agentic development didn't save time, it merely shifted it from the development phase to when the first support ticket or problem arises (the former can be scheduled and budgeted in, the latter is worse as it arises at unexpected times, derailing whatever else is happening).

(this obviously only works in environments where engineers are encouraged to own things end-to-end. I know some places treat their human engineers as a dumb one-shot ticket->code translator and discourage thinking or taking responsibility beyond that. These are the same places that wonder why they're not able to make any progress because they're stuck endlessly fire-fighting the crap such a degenerate process produces)

> With juniors [...] output needs to constantly be critically evaluated

This raises a scary catch-22. How are the juniors meant to evaluate the output without the expertise they'd only gain by being "in the trenches" for 10+ years? LLMs only help to a point - as they can be convinced of anything depending on prompting or persuasion (I've had Claude adamantly claim things that were wrong which I only picked up on because of actual experience. Similarly, I can easily steer it off the correct path with just a couple suggestions).

The problem of upskilling engineers is not new - billions have been thrown at the problem in the form of bootcamps/etc and yet there's still no good replacement for actual experience doing things and getting burnt in the process. I'm worried that deference to AI will mean a sea of perpetual juniors (but with senior responsibility and blast radius) and the jobs market for actually skilled & experienced talent drying up even more.

> bespoke personal apps and tooling, development tools, I'm working on games, libraries, various kinds of research, you name it.

Absolutely, same here. But building goodies for yourself is different from building them for paying customers. The latter brings a certain expectation of stability and support. In fact this is why even pre-LLM, there is a huge gap between being able to program and being able to launch a product, and why many programmers' pet projects never made it to the latter.

> Clients are going to accept less stable but more ambitious demos.

Demos? Sure. But generally speaking they're paying you for the actual implementation and subsequent support and maintenance of it. Salespeople being able to bang out a demo with a few prompts without engineering involvement could also mean more cases of them selling an impossible feature (that human-powered engineering could've warned them about).

Re: The AI Situation in Software Development

#72
post #48

Earlier quoted context omitted.

Artists are biased when evaluating AI art (same with programmers evaluating AI code).

"Experts are biased when evaluating non-expert output" is what I would expect and think is probably the correct thing to be

I was thinking more in line “people whose jobs are threatened by technology are biased when evaluating that technology”. Note that I don’t make quality judgement about quality of LLM output.

Re: The AI Situation in Software Development

#73
post #22

One aspect AI is weak in is controlling complexity. If you tell it to implement something it will go ahead and implement it, without considering how much complexity it adds to the system or weighing alternatives. An experienced engineer on the other hand may decide the feature is too minor relative to the complexity it adds, and may decide to not do the feature. Or he may make some clever compromises to get most of t…

Have you found any solutions to this? It would be a big unlock to give it this kind of judgement

Recently watched a podcast featuring Bob Martin. He uses coding agents to measure and reduce cyclomatic complexity of the generated code. Not something I tried myself yet.

Re: The AI Situation in Software Development

#74
post #31

About "implementing by words bit": I don't believe English is a great language to program. It's not type-safe, not object oriented, not functional. Has poor tools to highlight syntax or navigate through "wordbase", doesn't fail fast. It has no tests and has too large room for machine or other humans to interpret it. Very often it's easier for me to express my thoughts in Java, which is ironically known to be a "wordy…

The proponents response is: Natural language (in any language) is much more accessible - almost 100 times more.

Re: The AI Situation in Software Development

#75
As a hobby coder, not a professional programmer, I have recently found one of the biggest advantages is being able to very quickly prototype ideas in HTML/CSS/JS and iterate on the UI/UX upfront. This way I get "tangible" feedback and can get a better feel of whether an idea is worth pursuing before investing big time on proper implementation.

Just wondering if the professional programmers here are finding the same thing? Or different?

Re: The AI Situation in Software Development

#76

Earlier quoted context omitted.

I measure adherence to preestablished acceptance criteria, the same as I've done before while either coding myself or managing other engineers. It sucks, but you don't usually have the time to pour over code when you manage multiple engineers either, so you have to learn how to do thorough but targeted reviews, minimize distraction, maximize efficiency, etc. A lot of these skills transfer over to managing agents. We'…

> adherence to preestablished acceptance criteria I was talking more about end-to-end feature/product development process from the perspective of the business, and not merely the "writing code" part. Things like figuring out what to build, what code to write (which remains - just that now you are writing a prompt instead of writing the code directly), design, customer support, regulatory compliance/etc. From this per…

[flagged]
Post reply on HN