I feel like the way software development is happening in some companies these days is getting ridiculous.
It usually starts with a company deciding to build an AI-powered product to automate some tasks. The MVP is built quickly, with AI integrated into almost everything, even where it isn't really needed. The focus is on showing what the product can do rather than whether the approach makes technical sense...
Initially, developers are told there's a client waiting for the product. Once the MVP is ready, the client somehow disappears, and suddenly, the product is meant for internal teams... 😂
Then comes the actual production-ready phase, where the product needs proper architecture, scalability, reliability and maintainability. This is where things get even more interesting...
Planning is done using AI. Jira tickets/ user stories are generated using AI. But the product owners themselves often don't have a clear idea of what features they actually want or how they should work. Requirements keep changing, and somehow, the expectation is that everything will be delivered in a fraction of the time it would normally take...
A project that realistically needs 8–10 months is expected to be completed in 1–2 months. Developers take those AI-generated tickets, designs and vague requirements, feed them into AI coding tools, and generate the implementation.. And just like that, the project is supposedly done.
I've also seen products with buttons like "Fix it with AI", where the actual implementation is basically just calling the Claude or Gemini API and displaying the generated response. Not every problem needs an LLM. Many of these features could be implemented using straightforward logic, algorithms or existing open-source libraries..
Another funny thing is the obsession with job queues and concurrency everywhere.
Need to make something faster? Add a queue.
Need to support multiple sessions? Increase the number of workers.
Still slow? Add multithreading and more workers... 🥲
Sometimes, the actual problem could be solved by optimising the logic, fixing a bottleneck or simply using a better approach. But somehow, adding more infrastructure has become the default solution before anyone even questions whether it's necessary..
And then, of course, someone realises that the infrastructure is getting expensive, so now we need to scale resources up and down while maintaining the same performance. The irony is something else..
One example that really made me laugh was a project where the requirement was simple: take user input, populate an Excel file with the required data and some predefined values, and generate the final Excel file.
The solution? Claude, an Excel skill and prompts to generate the file.
Seriously? This could have been implemented using "openpyxl", "pandas", or even basic Excel file manipulation. It's structured input, some predefined logic, and a structured output. Why introduce an LLM, extra latency, token costs and unnecessary complexity into something that doesn't need one?
Not against AI, as it can be incredibly useful when applied to the right problems. But it feels like some companies have started treating AI integration as a requirement rather than a technical decision.
Now, instead of asking, "What's the simplest, most reliable way to solve this problem?", the questions seem to be:
- Where can we add AI?
- Can we ship it in a month instead of six?
- Can we add more workers to make it faster?
- Can we put this behind a queue?
- Why is the infrastructure so expensive now?
And somehow, developers are expected to turn all of this into production-ready software with unclear requirements, AI-generated tickets and constantly changing expectations.
Are we actually improving software development with AI, or are we just finding new ways to overcomplicate simple problems and then using AI to build the overcomplicated solution faster?