We Are All Developers Now: Why the "Engineering" in Software Engineering Is No Longer Enough.

For decades, we’ve used two words to describe the act of creating software, often interchangeably: engineering and development. But they were never quite the same.

Engineering spoke to the foundation. It was the rigorous, logical world of building a perfect clock. The software engineer was a master of systems, architecture, and the deterministic laws of computation. They built things that were robust, scalable, and predictable.

Development spoke to the craft of bringing that engineered system to life, of building the features and user experiences that people interact with.

For most of history, both roles were performed by the same person, and the engineering mindset dominated. The work was, at its core, a conversation with a machine. But a new kind of entity has entered the conversation. We call it a Large Language Model (LLM), and it doesn't behave like a machine at all. It behaves like a person.

This arrival is a catalyst. The engineering is still essential, but a new, more human-centric definition of "development" has forcefully emerged. Just as the convergence of cloud computing, statistics, and business analysis gave rise to the Data Scientist, the convergence of software engineering, linguistics, and psychology is giving rise to a new role: the Generative Software Developer. To succeed now, we must fully embrace the role of the developer, and in this new era, developing doesn't mean building a machine. It means developing others.

Now, a seasoned engineer might rightly point out that good software has always involved understanding people. For decades, disciplines like Agile and Design Thinking have been about bridging the gap between user needs and technical implementation. This is true. The revolution isn't the discovery of empathy; it's the radical change in how we must now apply it.

Before, our understanding of a user’s mind was distilled into the unyielding logic of code. Today, that understanding also must be translated into the fluid, probabilistic medium of natural language. We are no longer just instructing a machine; we are directing a mind. And that requires a new set of skills built upon the bedrock of traditional engineering.

The Two Jobs of a Modern Software Project

My friend, a brilliant software engineer, recently confessed his anxiety about generative AI. "I tried, but I can't get into it," he said, his frustration palpable. "My whole career is built on taking things apart to understand how they work. If I can't see the gears, I can't trust the clock."

His concern is the feeling of a world-class structural engineer being asked to become a world-class performance coach overnight. Software engineering has long been a haven for a certain kind of thinker. It's a world built on logic, where complex problems can be broken down into their constituent parts and solved with elegant, predictable code. It's a craft that often attracts those who are more comfortable with the clean, deterministic world of things than the messy, unpredictable world of people. My friend's feelings are valid, because for the first time, a modern software project explicitly requires both.

Think of it as building a state-of-the-art office building for a team of brilliant but quirky prodigies.

Job #1: The Software Engineer (The Architect & Structural Engineer)

This is the traditional role, and it remains critical. The engineer designs the building's foundation, framework, plumbing, and electrical systems. They work with the laws of physics and logic. Their world is deterministic; the building must be stable, secure, and reliable.

In our AI systems, the engineer builds the "hard-coded" parts:

  • The robust Python scripts and scalable architecture.

  • The secure APIs that connect to the LLM.

  • The databases and the user interface.

This is the domain my friend is most comfortable with. It requires deep technical expertise, logic, and a passion for building things that work, flawlessly.

Job #2: The Behavioral Developer (The Performance Coach & Communications Director)

Once the engineer has built the office, a new specialist comes in. This person's job is not to build the structure, but to develop the team working inside it. They set the culture, they coach the individuals, and they refine the communication flows to make the team as productive and creative as possible.

This is the new, amplified role of the developer. They work with the probabilistic, "human-like" element of the system: the AI model. Their job is to coach, manage, and develop the mind working inside the engineered structure. This requires a completely different toolkit.

The Developers Toolkit: The New Soft Skills Are the Hard Skills

When our AI sales assistant feels "soulless," it is the Behavioral Developer's job to fix it. This work is not engineering; it is a blend of linguistics, psychology, and detective work.

  • They don't just debug code; they also debug language. They must listen to a user's subjective feedback ("it sounds too corporate") and translate it into a precise linguistic instruction ("Avoid passive voice and words like 'synergy'").

  • They don't just design data structures; they also design personas. They architect the AI's personality, its voice, and its rules of engagement, thinking like a novelist or a psychologist to create a predictable and effective character.

  • They don't just connect modules; they choreograph a team. They design the workflow between AI agents, diagnosing breakdowns in communication and collaboration.

Yes, We Will Have Different Types of People Building Software

The unbundling of software creation means we are making room for a new kind of developer, one who might have previously found the rigid logic of traditional engineering unappealing.

These are the linguists, the writers, the psychologists, and the sociologists who have an intuitive grasp of how communication works. When coupled with logic and an armed with an understanding of the principles of code, these skills will provide real competitive advantage in a world where the primary interface for managing a complex system is now natural language. The person who understands why a single word can change a feeling now has a crucial role in tech.

The best teams of the future will not be homogenous groups of engineers. They will be partnerships. They will pair a brilliant Software Engineer, who can build a rock-solid, scalable "office," with a brilliant Generative Software Developer, who knows how to cultivate a high-performing "mind" to work inside it.

The success of a project will no longer depend on just the quality of the engineering, but on the quality of the collaboration between these two roles. And as generative AI improves at writing code at the level of engineering, these roles may increasingly converge into a single type of developer.

It's hard to know exactly how this will unfold. What does seem clear is that building flawless, deterministic clocks are no longer the entire product. Software engineering is the scaffolding for a new kind of mind. And that mind needs a different kind of person, a developer who is ready to talk to it, understand it, and develop its potential.

Previous
Previous

Why I Spent a Year Writing 365 Principles for Human Flourishing in the Age of AI

Next
Next

Sophistry or Socrates: Two Faces of GenAI