The world of software development is in a strange place
On the one hand, we have more processing power, bandwidth, access to knowledge (especially in the form of Open Source Software), and potential than we have ever had. The cost of development (if you are a developer) has been reduced down to the point that time is our most expensive part of building something new. And even now, dozens (if not hundreds) of products exist that promise to reduce the time to an MVP even further. Following popular boards like Product Hunt, Hacker News, or Indie Hackers show that a dizzying amount of products are being released every day. It looks like a sign that we are approaching a time where the people who have problems to be solved can develop the initial solutions themselves.
On the other hand, there are more ultra-generic, copy-pasta applications entering the market—each with their own micro-variation on the same variation. Would-be customers are getting burnt out on the stacking cost of paying for dozens of subscriptions to non-specialized software, only to manually cobble together the output from each tool into something that is actually useful. The same amazing Open Source Software that is available to one company is available to another, and it appears that investors are demanding that startups (and even public companies) have “an AI play”. Outside the occasional home-run, most efforts feel like a half-baked idea, shoe-horned into a product in a way that doesn’t actually help the end user.
Changing for the better …we hope
One of the challenges of the recent explosion of access to AI tooling (LLMs, embeddings, generative AI, etc) is that certain features are starting to be seen as “table-stakes” features when we compare our own products to the products of competitors.
In some ways, this is a welcome change. We have automatic note-taking and transcriptions for meetings, excellent summaries of multiple kinds of documents, the ability to “chat” with developer documentation (though this is still rough), and a number of really amazing accessibility features that would have otherwise been ignored in favor of more money-driven product features.
In other ways, it can be really tiring to have to parse through the well-intentioned, but absolutely flawed output of an “AI” chat agent, which is clearly unaware of the information you are seeking (but does not offer another avenue to find what you are looking for). The legal challenges of letting a machine talk to your customers has already seen some fairly large court cases in the United States (which, compared to much of Europe, has a much more relaxed regulatory environment).
My hopes for future software products
Even with my cynicism toward overly generic AI software and poorly placed AI “features,” I still see a place for AI tooling in many (if not all) industries.
I find myself in the camp of people who think that in the near-future, AI can alleviate a lot of busy-work in terms of data-entry, data-conversion, and data-validation. The power of AI to save people time should be, in my opinion, the primary focus of most new AI powered software. And, if we (as creators of software) are clever about it, this should lead to more consistent experiences for our customers, and more time for us to understand the problems we are trying to solve.
Beyond time-savings, I have already seen the beginnings of the benefits of generative AI in terms of writing software. I am convinced that, without the recent advancements in AI, I would have had to make significant trade-offs in my own product offerings. I have watched, with great interest, the development of “AI App Generators” that promise to create an MVP of your product with only a few prompts from a single user. I have installed and trialed several interface-building systems that have similar promises. While these efforts are incredibly impressive (some are even a little useful), the promise has yet to be fulfilled.
I have several theories on what it would take to move these AI application generators past their infancy and into a more robust form, but in the near-term, I’m already sold on existing patterns for getting AI to write pieces of software that can be reasonably composed together. It’s clear that there a lot of different approaches to AI-powered programming (from co-pilots to prompt-libraries), but to me, what matters the most is the consistency of the output. I’ve been organizing my own strategies and approaches, and I’m testing them in my own production applications.
Leave a Reply