Hacker News new | ask | show | jobs
by mikeocool 469 days ago
What’s that old (and in my experience pretty accurate) adage? The last 10% of a software project takes 90% of the time?

In my experience, AI is helpful for that first 90% — when the codebase is pretty simple, and all of the weird business logic edge cases haven’t crept in. In the last 10%(as well as most “legacy” codebases), it seems to have a lot trouble understanding enough to generate helpful output at more than a basic level.

Furthermore, if you’re not deliberate with your AI usage, it really gets you into “this code is too complicated for the AI to be much help with” territory a lot faster.

I’d imagine this is part of why we’re not seeing an explosion of software productivity.

2 comments

This is my experience as well. There are a couple things I love using AI for, like learning new programming languages or technologies (I consider myself an expert in Java and NodeJS, and proficient in Python, but I recently took a job where I had to program in an unfamiliar language), and it's been great for programming up short little "apps" for me for things I want - I've built a slew of browser apps for myself that just save stuff to local storage so that I can easily put it up on GitHub pages (and then I create import and export functions if I switch browsers - export just opens a mailto link where the body just contains a link with the state as a param, so then I just save that email, open it up on a different device and click on the link).

But I've found that there are a lot of places where it kind of falls over. I recently had Cursor do a large "refactoring" for me, and I was impressed with the process it went through, but at the end of the day I still had to review it all, it missed a couple places, and worse, it undid a bug fix that I put in (the bug was previously created when I had AI write a short function for me).

The other thing the makes me really worried is that AI makes it easy to be lazy and add tons of boilerplate code, where in the old world if I had to do it all manually I would definitely have DRY-ed stuff up. So it makes my life immediately easier, but the next guy now is going to have a shit ton more code to look at when they try to understand the project in the first place. AI definitely can help with that understanding/summarization, but a lot of times I feel like code maintenance is a lot of finding that "needle in a haystack", and AI makes it easy to add a shit ton of hay without a second thought.

Yeah, I've been disappointed in a lot of code generation within my field of expertise. However, if I need to whip up some bash scripts, AI works very well. But if I want those bash scripts to be actually good, AI just can't get there. It certainly cannot "think outside the box" and deliver anything close to novel or even elegant (although it may give some tactical help writing boilerplate lightly adapted to your codebase). The analogy I use is that LLM AIs are like a new car mechanic tool that can generate any nut, bolt or gasket, for free and instantly (just add electricity!). It's great addition to the toolset for a seasoned mechanic, distracting for a junior, and is not even in the same universe required to fix an entire car, let alone design one.