The software engineering profession is undergoing a significant transformation. And this transformation is happening before our eyes. Some time ago, software development was accessible only to a small group of highly qualified specialists. The barrier to entry into this profession was quite high.
Over time, software development gradually became simpler. Programming languages using simple lexical constructs emerged.
We no longer lacked computing power. Content management systems and frameworks emerged. Dependency and build managers (for example, Maven and Gradle in Java, Composer in PHP, pip in Python) emerged. These dependency managers allowed us to approach application development like building a construction kit. We can assemble an application using building blocks (components, modules, packages) developed by other programmers.
Development has become significantly easier with the advent and widespread adoption of Git technology, which allows us to conveniently store all changes to application code, collaborate effectively in a team, and see the entire development history of the application.
Open source projects are becoming more and more common.
Developer communities continue to form, first on dedicated forums and then on projects like Stackoverflow.com, where developers help each other solve problems that arise during development. This has led to the situation where, if a development problem arises, it has likely already been solved and the solution can be found on Stackoverflow.com.
With the advent of machine learning systems based on large language models (we'll call these systems "AI"), the barrier to entry into software development has dropped dramatically.
Advantages of AI-powered software development
Advantage 1 – Lowering the barrier to entry into programming
Developing software has become as simple as entering a query into a machine learning system. Moreover, such systems produce high-quality code. The work often consists solely of the ability to decompose a problem and prepare a correct description of subtasks for artificial intelligence (prompt). Today, anyone can be a software developer.
Advantage 2 – Increased software development speed
AI can help develop software significantly faster. For example, situations often arise where you need to slightly modify a database query. The only problem is that this query consists of dozens of lines of code. Understanding it on your own is quite time-consuming. AI solves such problems instantly.
Or, say, you need to write a regular expression. How long will it take? If the expression is quite complex, I've seen it take several days. AI handles such tasks instantly; the first result is ready in less than a minute.
Challenges of AI-powered development
Challenge 1 – Difficult-to-maintain code
If we blindly accept everything AI writes for us, then after a very short period of time, this code will become quite difficult to maintain. Ultimately, neither artificial nor natural intelligence will be able to understand the code.
For this reason, the application structure must be developed independently and kept in mind throughout the entire development process. Changes prepared by AI must be reviewed and adjusted if they don't align with our ideals.
Conclusion: Independent development of application structure
Problem 2: Solving a simple task often requires reviewing vast amounts of code.
It's also important to note that sometimes a small change is needed, but when we ask the AI to perform the corresponding task, we receive a huge number of code changes, most of which are unnecessary. For example, we ask to change the color of a red button to green, and the system rewrites the entire project for us. We have to review a huge amount of code. What seems simple to us seems like a cosmic problem to the AI. Often, these problems stem from an inability to formulate problems.
Conclusion: Solving individual problems without using AI
Forecasts and Prospects
- Software development is becoming easier and faster. Anyone can be a developer. All you need to do is submit a request to the LLM. The number of developers is increasing. Competition among developers is increasing. Increased competition will inevitably lead to lower prices and a general reduction in development budgets. There won't be enough food for everyone. Increasing the speed of development will lead to an increase in the number of tasks per developer per unit of time. A developer will have to solve more problems per unit of time. If the number of tasks remains the same, then the number of developers may need to be reduced. And the tasks may need to be redistributed among the remaining ones.
- Programmers will have to explain this to the main team each time.
- (In their own way) how their code is better than code written by AI. Selling your services will be more difficult. You will need to answer the client's question: "Why are you better than AI?" What can you do that AI can't? What is your added value?
- Only those programmers who can solve non-standard problems—those that artificial intelligence or the error correction of artificial learning cannot—will be in demand.
- Professions related to training AI and the most effective use of AI (for example, the profession of "Prompt Engineer") will become increasingly common.
Conclusion
Today, we can state that the confrontation between humans and computers is growing. This confrontation is intellectual in nature. When performing any intellectual work, a specialist must explain, first and foremost to themselves, how their work is better than solving a similar problem using artificial intelligence. Moreover, in some cases, it will be necessary to prove that the work was completed independently, without the help of artificial intelligence. Today, the key advantage humans have over AI is that it's impossible to delegate responsibility for decisions to AI. Responsibility for decisions and project implementation rests solely with humans.
Coding is used in almost all aspects of life and work now, be it directly or indirectly. It’s not just for companies in the tech sector. “An increasing number of businesses rely on computer code,
Coding is used in almost all aspects of life and work now, be it directly or indirectly. It’s not just for companies in the tech sector. “An increasing number of businesses rely on computer code,
Coding is used in almost all aspects of life and work now, be it directly or indirectly. It’s not just for companies in the tech sector. “An increasing number of businesses rely on computer code,