Thoughts on the Future of Software Engineering

Thoughts on the Future of Software Engineering

The AI Builder Revolution

In recent months, we've witnessed an explosion of AI tools and platforms sometimes referred to as "Builders." Some are more developer-oriented like Cursor and GitHub Copilot, some cater to non-coders while some try to do it all (Lovable, Base44) . While there is an overwhelming hype surrounding these tools, there remains a significant gap between those who merely discuss them and those who have actually used them. As someone in the latter category who's been around for awhile, I've come to recognize that we're facing nothing less than a tectonic shift in software development.

Will Software Engineers Become Obsolete?

A question frequently debated in engineering circles today is: given the recent AI revolution, will software engineers still be needed? Or as someone recently asked me: "Would you advise your son or daughter to pursue a Computer Science degree, considering the advancement in AI-powered software development automation?"

Let me address these questions.

First, these AI tools are genuinely remarkable. While they excel at creating mockups and proofs of concept, they can also build complete end-to-end software applications which can be the base for a production grade applications later on. For skeptics, I urge you to try them yourself and consider that these tools are improving at an astonishing pace. Imagine where they'll be just one year from now.

So if these tools are so powerful, what does the future hold for software engineering? If anyone, regardless of technical background, can describe the application they want and generate it with the push of a button, who needs software engineers?

The Irreplaceable Human Element

To answer this complex question, we need to examine today's software development process. A common practice involves product managers creating specifications that are then delivered to software developers for assessment, feedback, and eventual implementation. However, and this is crucial - this process is inherently iterative and bidirectional. It includes feedback loops where software engineers challenge the specifications, bringing their specialized knowledge and experience to the table. This challenge-and-feedback cycle requires significant software engineering expertise.

While one could argue that a specification is essentially a collection of prompts for engineers to act upon, a fundamental difference lies in that feedback loop.

When you ask an AI tool to do something, it complies (or tries to). Without the right background and experience, you won't be able to properly evaluate the result and challenge it.

Novelty

Another important consideration is novelty. Although many software products resemble existing ones, companies don’t usually develop applications that are exact replicas of others. The ability to apply successful principles and designs from one context to another remains an area where Large Language Models (LLMs) don't excel. LLMs perform well when building well-known software types with abundant public references (think of a library management system, digital order system, or a TicTacToe game). However, when developing something truly new or niche, LLMs attempt to make educated guesses that often require guidance - some of which is necessarily technical in nature (for example: understanding the nature of data of a new domain and its ACID properties).

The Rise of the Product Engineer

What does this mean? While AI tools dramatically accelerate software development, the practice of software engineering will remain essential for many years to come.

This brings me to the concept of the Product Engineer - a hybrid role combining product management and software engineering skills. I predict we'll see this role evolve to encompass understanding of business considerations, user needs, and UI/UX design, alongside software architecture, data modeling, design patterns, and engineering practices.

A Product Engineer in Action

To illustrate the value of this hybrid role, consider a real-world scenario: A company needs to develop a new feature that allows users to analyze large datasets with AI assistance.

A traditional approach might involve a product manager defining requirements based on user needs and market research, then handing off to engineers who determine technical feasibility and implementation details. This handoff often creates friction - the product vision might be technically challenging, or engineers might build something that technically works but misses the mark on user experience.

Product Engineers, however, would approach this differently. They understand both the business goal (increasing user engagement with data insights) and the technical constraints (processing limits, architecture considerations). They might recognize that while the initial request for "real-time analysis of all data points" sounds appealing in a product spec, a more efficient approach would be implementing progressive loading with prioritized insights - maintaining the core user benefit while creating a more sustainable technical solution.

They can make these decisions quickly, prototype effectively, and communicate trade-offs in both business and technical terms. When AI tools enter this workflow, the Product Engineers know precisely how to direct them - understanding what to ask for, how to evaluate the output, and where human expertise is still essential.

Looking forward

My forecast is that over the next few years, we'll witness both software engineers and product managers gravitating toward this role. This evolution parallels the development of DevOps, which attracted professionals from both IT/Operations and development backgrounds, each bring their own experiences and set of skills to the role.

In conclusion, software engineering will continue to play a vital role in the future of software development, though it will evolve with no doubt.

My advice to software engineers: don't look the other way. This isn't a passing trend. As Stewart Brand wisely noted, "Once a new technology rolls over you, if you're not part of the steamroller, you're part of the road."

Yep ... as AI makes it easier to do both sides (product and engineering), smart people will learn a bit of both and use AI to augment their skills.

Like
Reply

To view or add a comment, sign in

More articles by Gil Cooper

  • Teaching kids about AI and chatGPT

    Last week I had the pleasure of giving a presentation about AI and chatGPT at my kids’ elementary school. We talked…

Others also viewed

Explore content categories