Hello, and welcome!
Today's topic is dissecting what today's AI can and cannot do for you, and why. We will look at the issue from both the perspective of a business operator and that of a software engineer.
Before going into specifics, I'd rather help you develop an intuition for this matter, so that you can answer this question on your own whenever it becomes necessary. For that, let's develop a general understanding of what AI truly is, on a high level.
For the sake of simplicity, let's limit this to Large Language Models - or LLMs - that are the most widely used AI solutions today.
LLMs are tools for statistical text prediction. Essentially, they predict the next word in a bulk of text. Yes, I know, it sounds pretty dumb. But this is because we haven't yet considered what that text is. Think of it this way: it can predict what a statistically average person can say next, which it learned from whatever was available to it at training time. This includes all publicly available content on the Web and more. This, in turn, means that it is predicting what an intelligent being would say, which is far from dumb, but isn't brilliant either. I don't want to get into an argument about whether this is true intelligence, but what is clear is that it can say whatever an intelligent being would say.
Now, we've been talking about predicting text. This means it can write emails or marketing copy, or chat with us. But how can it do anything beyond that? Well, there's a trick to it.
My example will be a bit graphic. Imagine a bedridden person who has no control of his legs, but whose hands and brain function just fine. This person has an aide, and whenever they want something done, they write a note to their aide that includes detailed instructions.
AI works in a similar way. Let's say we have some work to do. Since AI can only predict text, think of it as passing a written assignment to that bedridden person, and asking the AI to predict what they would write in the subsequent note to their aid. In fact, we provide AI with several aids, each capable of performing a specific type of work and accepting notes in a well-defined format. Once the AI gives its aide an assignment, the latter performs the work and responds back to the AI, also in writing. Now the AI must predict the next step, given the initial task, the instructions it has given to the aide, and the aide's response. As before, the prediction is actually a text that can be anything - a summary of the work done or a request to another aide to do more. Some of today's LLMs can work with multiple aides concurrently - making them work independently, without AI waiting for them to report back.
The "aides" given to an AI are called TOOLS, and typically, they are just plain old software. Tools accept a specific request format; most often, it is JSON. Their response is either plain text, JSON, or files of a well-known format. Common tools can perform web searches, download and read documents, browse the web, click buttons in a browser, manipulate files on your computer, make phone calls, or even run snippets of code that an AI writes. Less common but possible is to control hardware (the problem here is latency - it may take LLM more time to make a decision than you have to control a self-driving vehicle or a humanoid robot, which is why engineers typically opt to use smaller, "dumber", but faster models for robotic applications).
Now, things are going to get even more interesting. Since the AI is trained on vast amounts of data produced by gazillions of people, it behaves as their statistical average. Let's be honest - what are your expectations for an average person?
George Carlin once said, "Think of how stupid the average person is, and realize half of them are stupider than that."
This is why we, more often than not, get very "neutered" writing from AI, among other things. Does it have to be that way? No - and this is where "roles" or "personas" come in. For instance, if you tell the AI to put on a lawyer's hat, you will get legalese in your documents. What that request essentially does is make the AI predict how "an average lawyer" would act, in contrast with an average person in general. You can provide additional instructions that manipulate the selection of the statistical average. This helps, although it will unlikely suffice to turn the AI into a brilliant mind.
Now, consider this. There are significantly fewer subject-matter experts in the world for almost any given topic than "regular" people with no specific in-depth knowledge. Therefore, it is only natural to expect that those low-skilled individuals overestimate their competence. This is a commonly known cognitive bias called the "Dunning-Kruger effect". Why am I bringing this up? Because overconfidence has been universally "baked" into content worldwide. Since this content was used to train AI, the AI shares the traits of the average person and is highly overconfident as a result. There just isn't enough quality content out there to make a difference. Specifically for software engineering, we have to accept that AI was trained on crappy code that dominates the publicly available sources. The result - it acts as a junior engineer, not as a pro. If you tried to use AI for coding, you've seen it yourself. This is expected, and upcoming advances in LLMs will unlikely address it. The solution is elsewhere.
Little caveat: when I refer to a junior hire, I mean someone fresh out of school with good grades but little hands-on experience, which takes decades to earn. In fact, junior hires are the future pros, and we shall invest as much as possible into their professional growth. The next big discussion topic is what happens when we assign AI a task it isn't capable of performing well, either due to insufficient training or unclear instructions. Since the training content predominantly describes successful outcomes, AI picks up the "yessir" attitude, meaning it will attempt to deliver results to every request, no matter how ludicrous, incomplete, or impossible the request is. As a result, we get total gibberish, a BS that AI experts politely call "hallucinations". But we would get the same result with humans if we put them in the same impossible position. Whatever the reason, we understand that it is meaningless to ask a taxi driver to prove a complex mathematical theorem, but find it totally acceptable to assign impossible tasks to AI. The result - lots of frustration, lost time, and risks. In the subsequent posts, I will show you how to guard against it.
Finally, keep in mind that the content on which AI is trained significantly differs from the behavior of real humans. For instance, there's very little in that content about humans getting tired from work. There are many articles on how to read and write code, but none address how much time it takes or how fatiguing it is. Maybe because of that, or perhaps for a completely different reason, AI differs from the average person we discussed in one very important aspect - it doesn't get tired. So when you hire a junior engineer and assign him a code analysis job, he gets tired after a few hours - but AI wouldn't, and we can take advantage of that. Relentless execution of mundane tasks - this is where AI capabilities definitely exceed those of us humans.
I am not trying to convince you that everything I've said so far is a mathematically correct and proven model of AI's behavior. It probably isn't. However, it is a useful mental model that will help you use AI effectively. In a nutshell, this model consists of only two main points: (1) the concept of an "average" person that you can shift towards what you want, and (2) the suggestion that you act as a professional towards a team of junior new hires, where you are fully responsible for all their achievements and failures, and your expectations of their unguided performance are low. Just like you would explain to a human how things are done in your business or on your project, you would explain it to AI, in the form of text files that it will consume while executing your tasks.
Now, let's discuss specifically what today's AI can do for a business operator or an entrepreneur. Here, I focus squarely on the features that reduce cost and effort, or improve quality - in other words, on those that can bring measurable benefits to a business.
Naturally, the first things that come to mind are those that are already commonplace:
- Writing marketing copy
- Capturing and summarizing meeting notes
- Creating reports
- Performing market research
- Speeding up web search
- Writing emails and text messages
These are widely used today because they leverage AI's core strength: handling text. I wouldn't be focusing on those; you are likely using some of those tools in one form or another.
Let's look at more contemporary, harder-to-implement features.
First, we can use AI to place and receive phone calls, significantly reducing the load on human agents. The AI can function completely autonomously, speak multiple languages, and optionally fall back on a human operator if you want it to. One of the upcoming videos will be dedicated specifically to this. Similarly, the AI can interact with your clients via SMS or other messaging platforms, or via web or app chat.
Second, AI can be used to make human-grade decisions (on a junior skill level). In the process, it can leverage its pre-trained knowledge and a web search to stay up to date.
Third, it can operate applications (especially web-based ones) just like a human would, or can interoperate with software solutions via an API or MCP - more on that later. In some cases, it can operate hardware - as long as it doesn't require time-sensitive decisions.
Finally, your business application can now be built with significantly greater customization and flexibility. In the pre-AI era, software flexibility was achieved through configuration, giving users a gazillion options to choose from, covering all possible edge cases. Covering most use cases puts software well above competitors and commands a higher price, while hampering the user experience and delaying delivery of the final product by years. By using AI smartly, product design can avoid many configuration complexities and delegate flexible, prompt-driven configuration to the end user.
Now, let's discuss what the AI is unlikely to do for you.
Let's start with a dream of many entrepreneurs: You find a well-monetized app in the app store, tell the AI to copy it, and voila - you have the same app in a day or two. Then you make a load of money… or not. Not really. The problem is not even with AI. By looking at someone else's app from the outside, you can copy the user interface, but you can only guess the internal logic and the edge cases handled by the application. You wouldn't know the logic, you wouldn't know the external calls the application makes to its partners, you wouldn't know what the developers of the app planned for the future - and all of it is critical to successfully copy someone else's idea. It will work in only a very limited number of cases: when the entire app can be reverse-engineered by examining its user interface, which is rare. Yes, you can use AI to speed up the research, but it must be human-driven, just as if you hire a team of junior developers. Left to their own devices, they are unlikely to produce something usable for your business.
A similar fate awaits those who think they can spec out a complete business solution to AI and have the latter do the rest. Again, the problem is not with AI - you will experience the same with humans. No human can create a spec that will describe the full behavior of any reasonably sized product in full detail. This is an iterative process that involves collaboration between a product expert and a software architect. And even then, there will be things left out, resolved later in development or even when the system is already live. If you attempt to replace a product person and an architect with AI, good luck: it is similar to replacing seasoned professionals with junior developers. By the way, if we (as a society) keep doing this, we risk being overwhelmed by mediocrity. AI can accelerate the process, and professionals of all walks of life already use AI efficiently - but acting on its own accord and producing correct results without a human in the loop are highly unlikely, at least for now.
Now, let's look at engineering.
AI can research the codebase and provide you with answers in minutes, where an engineer would spend hours, and make mistakes. In one of the upcoming posts, we will discuss how to go about it. The results of the code analysis may answer specific questions or create easy-to-consume visualizations, such as ERDs, time-sequence diagrams, flowcharts, documents, and more. I find it especially useful to generate high-level pseudocode from unfamiliar codebases.
AI can analyze logs, compare them with the code, and reconstruct the execution path. This helps tremendously when fixing bugs. The AI can also instrument your code with strategic output to make such analysis extremely effective.
AI can code well-defined algorithms or integrations. We will cover how to make it do this reliably in one of the future posts.
AI does well at identifying unhandled edge cases in the code, comparing requirements to the actual code, and locating race conditions (both in the code and in design documents).
But AI will fail miserably if it is asked to guess any requirements that haven't been formally given to it (just like with a junior developer). It will fail to reconstruct the original intent directly from the code. It will produce spaghetti code, just like most of the software it was trained on. It will easily go off track when writing large chunks of code autonomously, without your direct guidance. Last, but not least: AI is unlikely to come up with the right architecture for your project. This is because good architectures are rare and therefore have no statistically significant impact on the model's training, and because AI-era architectures substantially differ from those of pre-AI times and weren't available for AI training. When it comes to architecture, you have to do it yourself. Good news: I will show you how.
Well, enough for today. In the next post, we will discuss AI-first architectures, why they are needed, and how they differ from the traditional approach.
Cheers!