I disagree with the author. I think as LLMs get better at coding it will be more likely that that fewer devs will be required to keep systems running and progressing, the bottleneck at my company is already new revenue generating ideas. We've seen a roughly 30% increase in speed of new features, so the same number of devs are building a lot quicker. I expect that to continue to increase. I also see a lot of Devs simply trusting that the code is correct, they are losing touch with the code.
I don't think I would encourage my kids to get involved with programming, instead I would encourage them to become entrepreneurs who might use some coding.
> increase in speed of new features
But who will maintain those features going forward?
> I also see a lot of Devs simply trusting that the code is correct, they are losing touch with the code.
My worry is that developers can't outsource their understanding to AI forever. It's a lot of risk for companies to be accumulating code faster than developers can understand them.
AI will maintain the features, unless you think we're going back to the old days? The job of a developer will become 1) writing and refining specs, 2) "managing" agents by answering questions, evaluating new models, new tools, etc, 3) testing and validating AI output.
Have we coined the term Slopgineer yet?
I think people who understand how computers and software work will be better positioned to generate those new ideas.
In my experience, new ideas are mostly generated by people who are involved in non-software stuff
A software engineer isn't going to come up with a revolutionary new mining technique or robot or something. But someone who works at a mine might. Previously those people would go find a software engineer to try and validate their idea. Now they will go to AI
I dunno. Maybe I'm wrong, but I just don't see software engineers as being the best people to generate a lot of new ideas for domains outside of software engineering
My experience (as someone who has almost exclusively worked as a software developer in non-software companies) is that my primary value add is the ability to recognize things that a computer can do easily, versus problems that are not solvable by throwing software at it.
For example, when I was working in a finance team, I'd come across all sorts of situations where someone had a task of "once a week, download this data from this application, apply the following transformations, then upload the results to this other application". Anybody reading this site would think "ah, that's like a dozen lines of code! We should automate that". But that thinking is incredibly rare outside of our field.
On the flip side of that, you'll have the people who think they can simply buy software that will solve all their problems. "No, ma'am, buying a fancy new Spend Management System will not magically make everyone know or care about the difference between 'GL 10754 - Employee Appreciation: Meals' and 'GL 10822: Employee Meals (Discretionary)'".
My take on it is that the ability to recognize automatable problems boils down to 1) having an intuitive understanding of algorithmic reasoning ( this solution comes in 4 parts, the first part can be divided into 3 separate problems, which...) 2) having an up-to-date understanding of the extant capabilities of computers. 3) having the kind of bull-headed hubris that makes someone say "Sure, we currently do it this way, but I can do it better".
And at the end of the day, those features end up meaning you need some sort of engineer.
This isn’t a skill exclusive to software developers though - there are a lot of domain experts who can identify these opportunities as well. Not a majority perhaps - it seems like 15-20% at my company - but more will develop this skill by working with AI.
This is why I have always advocated for getting my software engineers away from code occasionally and out into the field into whatever domain in which we're working.
We need to experience and see how the world actually works, the pain people are actually experiencing. I deeply believe we build better software that way.
Have a software engineer working for a mining company that's a good candidate to drag out into the field for a bit? Get 'em out there, encourage them to ask tons of questions.
Real example: my wife is a nurse who works for an insurance company to coordinate care for injured workers to help maximize their recoveries. I hear a ton about the stuff she has to do, and just having her tell me about how things work has given me a glut of ideas of how I could help her bypass all the administrivia so she can focus on helping the folks she's really passionate about helping. Wouldn't have had any idea about any of this, otherwise. Unfortunately for her, I don't work for her company so can do nothing about it, but the ideas!
> We need to experience and see how the world actually works, the pain people are actually experiencing. I deeply believe we build better software that way.
90% of the time when you really break down the "real" problems. You learned they aren't gon a be fixed by fucking software.
I wholeheartedly agree with you that software isn't the answer for everything; engineering teams get so deep in building that's all they can think of when faced with a business problem.
Less software coupled with operational changes would have helped many organizations I've witnessed across my career, but that's not politically palatable in a lot of places.
I think the best ideas come from people who have both domain knowledge and an understanding of what's possible. Computer science gives you the latter.
If I was going through university right now I'd want to double-major in computer science and something else.
I agree.
Domain expertise is good, but coupled with software knowledge is almost a superpower, when it comes to software projects.
I have seen projects that took 6 months when done by 1 expert + 1 engineer taking mere weeks when done by a single person who were good at both, in a competitor.
> I also see a lot of Devs simply trusting that the code is correct, they are losing touch with the code
It'll be interesting to see if this is sustainable. I could see it going both ways, and I honestly don't know which is most likely.
There can't really be valuable ideas that are quick to implement with few programmers.
Well, if there are, I know what I'll do over the next long weekend...
As the number of programmers decrease, the value of computer related ideas decrease.
It could be that because we can rapidly generate customized programs that the dedicated software industry shrinks, but companies might stop buying/licensing software and instead bring more software engineers in house.
That's what I'm hoping at least.
I've been managing a software project for several years now. It's gone through a few major iterations but those have only coincided when I've had other engineers to help me. The code is for testing new devices against a couple racks of equipment. What I had a few months ago has worked pretty well but there's been some issues with error handling and limit checking. I basically just work on the thing when I have time, amongst being a hardware development/production/test engineer. Little changes are easy but something like adding in a bunch of error handling is a lot for me. It's relatively easy with python but I'm an electrical engineer and this thing is so spaghettified that it's really difficult to crack into these crust test scripts to structure them the right way.
Over the past year, I've been trying to better document the equipment according to new QA standards. This also means I need a way to test the racks without production hardware. Everything goes hand-in-hand, how do you test a car without an engine? We finally got access to an approved IDE with a built-in AI model so I figured I'd try that out. I had been using our ChatGPT-equivalent tool for a few months for little scripts and questions but that's pretty ineffective for a major code base. That new IDE cranked out a slick certification application that does everything I need in about a day. I turned it back to my existing codebase for the production testing and gave it my wishlist of upgrades and features. Took about two weeks but I'm ready to push v1.0.
One of the main issues is that I'm not the one usually testing new devices, technicians are and they aren't always familiar with the software or equipment. Automating an entire test was a big effort a couple years ago and I got to the point where after a bunch of setup, you just click the GO button and sit back to watch. But now, AI has automated even more of the process so all of the stupid config files one had to setup previously are now automated. The various apps you had to run in the background are all built into one package. The silly little bugs I was dealing with for years have totally been wiped out with better error handling and monitoring of connections. It's amazing how well this new thing works and how much it actually looks like a real software engineer made it. It's even got simulators built in so we can test every part of it without needing actual equipment or the production units.
I've been wanting to find a new job for a while but this automation project has been holding me back. I've so badly wanted to complete it because I'm the one that wanted it in the first place. If I had like six months of dedicated time with the equipment (impossible, at best I get a couple weeks of downtime), I maybe could have made something similar but it would have been lousy code. With just two weeks of working with AI, I'm over the big hurdle. I've still got a few things to clean up before its ready for production but I'm basically 40 hours of work away from being at the point where I could just walk away. Hell, I just realized I could even have the AI write the manual as well.