Comment by ndepoel
4 months ago
This all reminds me a lot of the early 2000's, when big corporations thought they could save a lot of money by outsourcing development work to low-income countries and have their expensive in-house engineers only write specifications. Turns out most of those outsourcing parties won't truly understand the core ideas behind the system you're trying to build, won't think outside the box and make corrections where necessary, and will just build the thing exactly as written in the spec. The result being that to get the end product you want, the spec needs to be so finely detailed and refined that by the time you get both specification and implementation to the desired quality level, it would have been the same amount of effort (and probably less time and frustration) to just build the system in-house.
Of course outsourcing software development hasn't gone away, but it hasn't become anywhere near as prevalent and dominant as its proponents would've had you believe. I see the same happening with AI coding - it has its place, certainly for prototyping and quick-and-dirty solutions - but it cannot and will not truly replace human understanding, ingenuity, creativity and insight.
More than one project manager has insisted that everything about the system must be documented--that's called the source code.
As you say, by the time you specify everything, you've written the code.
Theoretically a PM could say "the code is disposable and obsoleted by the next deployment. let's just document our prompts."
I don't know if that's a good idea but a lot of people are going to try it.
This is an obviously terrible idea that will lead to regressions on every deployment.
3 replies →
It's like NixOS but instead of the much-maligned Nix language, you can use the English language!
What could go wrong?
2 replies →
The prompts are the source code in that case.
The LLM is some sort of transpiler.
Somebody will have to add some syntax to these LLM prompting systems to include text that doesn’t get converted. So the next round of PMs can ask you to documents your prompts).
> As you say, by the time you specify everything, you've written the code
Sadly not when it’s a 2000 page word document with a million formatting quirks and so many copy-paste versions you don’t know if you should trust “reqs_new25”, “reqs_new25v1” or the x number of other copies floating around.
Someone should come up with a tex2fortran conversion LLM.
Oh yes[1]
Then remember when we said tests should be the specs?
Then we said the end users are the specs?
All of them can be construed as a joke in our erratic search for the correct way to write software without those $150k developers that seem to be the only ones getting the job done, assuming they have a competent management hierarchy and stock options incentives.
[1] We have a waterfall software and I wonder whether Crockford’s license “JSON should be used for good, not evil” was meant for me
I think this erratic manner of trying to find the correct way is the issue. I am currently nearing my 2nd year at a company A in my industry, and while I did know they all kinda suck in their own special way, I honestly had no idea it was this bad until I had to try to make this craziness somehow work for us. Even if there are standards, I do not see people following them. Last year, the one girl, who did seem to try to follow some common sense approach, got fired for effectively using common sense against big boss wishes.
What I am saying it is a mess from beginning to end and I am honestly not sure if there is one factor that could solve it..
> Last year, the one girl, who did seem to try to follow some common sense approach, got fired for effectively using common sense against big boss wishes.
What did your manager say when you said this to them?
3 replies →
Agree it is a mess. I wonder if we would all be better off accepting this and learning to laugh out loud more often.
Reminds me of this post:
https://berthub.eu/articles/posts/how-tech-loses-out/
That was awesome.
Do any of these vibe coding tools write out the prompts as specs and then keep the specs up to date as you continue prompting? Seems like specs == formal prompts.
You don't need a tool for that. "You're going to assist me in writing a detailed software spec in markdown. At each step adjust the document to incorporate new information. Suggest improvements and highlight areas which have been ignored so far. Initial description: ..."
If you have multiple of those, you can tell it about required sections / format, or provide a good past example.
> This all reminds me a lot of the early 2000's, when big corporations thought they could save a lot of money by outsourcing development work to low-income countries and have their expensive in-house engineers only write specifications
I worked at [insert massive retailer here] a few years ago and this mindset is still very much alive.
Have we stopped, really?
Last time i was at a faang my org also had offices in one of those “low-income countries”. So in a way we haven’t stopped.
Also, depending on how you define “low-income” then up to two thirds of the organisation i worked in was in a low-income country.
In my experience, directly hiring (or hiring through a local company) developers in a “low-income country” - in my experience, Eastern Europe and Latin America - goes a lot better than just contracting out a body of work to a third party. Especially if your company is already fully remote, you’re able to get developers who integrate onto your team just like American devs, and are just as good at coding.
> Have we stopped, really?
No, when I was at a large, well-known company a year ago, job listings were 2:1 off-shore (India, South America) vs on-shore. There was also an increasing amount of contractors used, even for public-facing stuff you wouldn't expect.
The problem with outsourcing is on holding people accountable for a written specification. It's not on the location of the developers.
Deleted
I don’t think this addresses the comment you’re replying to.
It’s sad you’re getting downvoted by gatekeepers. It’s absolutely a good thing that more people have access. Maybe not for inflated costal salaries and egos, however.
Software is going to completely change. The writing is on the wall, it's just a matter of who can step back to see it.
Giga-projects with 50k, 100k, 500K, lines of code are going to get decimated. By and large these programs are written to capture large audiences by offering a massive feature set. But how often is any one user ever actually needing those 100k LOC?
If LLMs can start nailing 5K LOC projects pretty reliably, and the technical moat cleared away (i.e. using an IDE to run code). Software businesses are going to see a collapse in users as people just churn out bespoke single task software for their own use case each day.
If you think it's fine because you can't prompt Gemini "Create an excel clone", you are doing the equivalent of drawing a robot with a vinyl record player in 1950 and calling it "Entertainment of the future!". In a world with functional robots, portable vinyl players for it to play music make no sense.
> it's just a matter of who can step back to see it
I’m not sure why those fully bought into the AI hype so often dismiss anyone who’s less bullish as simply too small-minded to see the writing on the wall.
That aside, while I do think software is going to change, I’m not sure that I agree with your particular version. What examples of apps with 100k, 500k+ LoC codebases are going to get decimated? The biggest successes in software today have moats around inventory or network effects. Are people going to make their own Netflix or Uber? Even at a smaller level, is the idea that local gym owners are going to replace gym management software with their own mini apps? Or restaurants are going to do their own point of sales apps? Unless AI can make the cost of maintaining software something close to zero time, which is a really tall order, why would business owners waste time on something outside of their core business. And if this is such an untapped opportunity why didn’t we see the start of it with the no-code movement?
Will a big chunk of the software market fall off and be replaced by custom mini apps that the layperson crafts with AI? Maybe? But I don’t see how one justifies the level of confidence I see from these predictions.
You are absolutely right
Because, as we all know, what is important about coding is outputting lines of code.
This is the main difficulty, this is were IA will change the game forever.
Thinking about the code you write, that's worthless, do not do that. Improving a large code base ? Again, no need to think to do that. Just inject random lines of code and it will do the trick.
Of course, in a world where your code has no value because it's just a copy/paste from elsewhere that has a low lifetime expectancy, IA is shinning.
But if you want something a bit more useful, a bit more clever, a bit more adapted to your use case, IA sucks. Because IA do not think.
IA is a threat to dev that do not think. Good ridance, they won't be missed.
Complexity is going up rather than down. Companies already solve simple problems with spreadsheets.
The spreadsheet is the hammer or the white collar office worker.