I like to joke with people that vibe coding (using AI to assist writing software) is like having sex. It's really fun but there's always a chance that you'll make a baby that you'll have to take care of for the next 18 years. This is not an argument against vibe coding. I've read the arguments against vibe coding and they sound a little contrived, more self-protection, like the senior dev bashing a talented, productive junior dev; something like "Yes, but they don't know X, Y, Z." Sounds like fear.
I've had the experience of developing software over the last several decades. I loved providing solutions to solve peoples problems with software. I loved seeing users get excited because they now could do things that were difficult or impossible.
Recently, I had the experience of vibe coding. I love being able to focus on the high level features of the software and not get caught in the weeds of implementation. I think this AI-assisted software generation is going to be a true baby boom. People on the front lines of business and science being able to write software that helps them do their jobs better and faster! I can hear the wheels of industry churning as people imagine new software solutions.
But, like I said earlier, writing software is like having a baby. At first, they are cute and cuddly, but then they become more demanding. If you're not careful, those babies can consume your life. How does this apply to software?
You have a task you do on a regular basis, or maybe a new business opportunity for an app or webpage. You use the latest AI tools and make an app. Instantly, it's doing your work for you and enabling you in new ways. You realize more features you want, so a little prompt here and there and magically they appear. Your software keeps growing and suddenly becomes a bit complicated. Nothing that another prompt can't fix. "Help me rearchitect my software for all the cool new stuff we've added." You have to be smart with your prompts to make sure all of your new features play nicely.
Then there's the sharing with others. You think others will want this. Maybe they'll pay for it! So you find a way to start sharing it. They start asking for new features or want you to tweak old ones. Some of the tweak requests conflict with each other. People complain about a change in the interface. They have problems and want tech support. You need marketing, sales, and support departments. You might be able to provide these with AI agents. Meanwhile, you've had 10 other ideas and created 10 new "babies". Not only that, but there's a 100 million people that also had 10 new "babies". That's a billion new software projects that need to be nourished. Most of these probably do the same thing and could probably be replaced with a few hundred apps. If you wanted to evaluate other software, you might have a million options for the "read my email and give me a summary of stuff I should pay attention to" app. But AI can evaluate the million apps for you. Or can it? Has AI started getting overwhelmed yet with being the developer, researcher, and therapist for millions of people?
Here's another challenge. I've written hundreds of applications. Many of them died a sad death. Some of them were inherited as I move off onto other projects or to other companies. Inevitably someone comes to me to ask me about my software...even after I've left the company. Or, even worse, I've had to go in and look at my software. What was I doing? Why did I do this? How did this ever work? I feel like the dead beat dad that neglects his kids.
And what about the evolving tech stack. First, it's version updates as older versions are no longer supported. Look at the status of Python versions, where the rate of new versions and rate of end-of-life versions is about one per year. Not a problem, we just tell our AI to refactor to the new version. But first we need to install the new versions and update all of our modules. And then there is the actual change in technology. Dynamic web applications have gone through Java Servlets, Flash, Angular, React, etc, etc. And what about UX. Does it matter that the cool app you made looks outdated?
With the AI-Assisted Baby Boom, another problem is that your friends will be too busy taking care of their software babies and not have enough time to play Pickleball or Tennis or grab a coffee. Hopefully, this doesn't happen. Hopefully, people will realize how being more productive means that they can spend less time working. Only the future will tell.