DEV Community

Jeff White
Jeff White

Posted on

Software Engineering Still Matters

Since software was first invented, many tech executives have relentlessly attempted to reduce the practice of software engineering to the mere act of computer programming. "It's just software" or "All you have to do is write some code" have been common refrains from managers over the course of my career. This perspective feeds the narrative that LLMs are going to replace software engineers across the globe. Those of us who have written software for any length of time know that this idea is more aspirational than actual on the part of executives. The not-so-virtuous AI development cycle that ingests hype and prints cash has an interest in making you believe that software developers are nothing more than replaceable commodities. However, we are not cogs in a machine although the suits would like us to be. Software engineering still matters in the age of LLMs.

There are many activities in software engineering where it is still more efficient for a human to conduct them. Here are but a few of the many examples:

  • Engaging in requirements elicitation with customers

  • Evaluating complex architectural tradeoffs

  • Mentoring other software developers

  • Solving thorny problems in distributed systems

  • Holistic project planning and organization

  • Software design manifesting elegance and taste

Some AI vendors may claim their models can do these things, but I would argue that they provide a simulacrum of those tasks rather than the substance. It's much like the Wizard of Oz bought a data center and doesn't want you to pay attention to what's behind the curtain. There is also an accompanying eschatological element (e.g. Rapture of the Nerds) about what AI will accomplish that I find distasteful. AI has its uses, but I'm not a member of our 21st century equivalent to the Adeptus Mechanicus.

Writing simple test drivers, prototyping, ensuring 100% coverage for unit tests, and verifying programs for mathematical correctness are some areas where I think AI legitimately boosts productivity. For real systems I would argue that it falls short. It simply does not have enough context to build very large systems with hundreds or even thousands of applications involved.

Ultimately I think AI will become just another tool in a software engineer's toolset in much the same manner as an IDE or a compiler. The story of software engineering is a tale of adding layers of abstraction as we move upwards in the stack. AI just happens to be a much more powerful layer of abstraction than we've had previously.

Top comments (0)