Headlines | Linux | Apps | Coding | BSD | Admin | News
Information for Linux System Administration 

Why Programmers are not Software Engineers


People toss about the term 'software engineering' as if programming were just another engineering discipline.

Programming is 100 percent design. And that design is vastly more complex than the typical true engineering effort of comparable cost. Said another way, an engineering project of similar logical complexity to a software program is far more expensive.

Much of the reason for that low cost is that programming has no comparable build phase that, in some other field, might consume the vast majority of the total cost.

Programming is dramatically cheaper than a similarly complex physical project.

Programming doesn't fail in the same sense that an engineering project can fail. Programs never fail because of faulty materials or shoddy workmanship -- except in the compilation phase, perhaps, but in that case the program doesn't even exist. Programs don't fail because of use beyond their rated capacities, although they may fail because they foolishly accept input or a load beyond their capacities.

Programs only fail due to design flaws.

Ignoring terminology for the moment, the reason that software quality is so much lower than one might expect is fundamentally economic. The 'engineering' phase, the design, represents nearly the entire cost of the actual development. The only place where costs can be shaved is design. The building blocks of the actual construction, opcodes, are essentially free.

Software doesn't meet engineering standards, largely for economic reasons.

And, lastly, an engineer is one so designated by government. With that title comes certain legal responsibilities. 'Software engineers' are neither designated as such nor are they held to engineering standards.

Engineer is a title conferred by the state and it may not even be legal to call yourself a 'software engineer'.

On the other hand, the best programmers I've met don't call themselves engineers at all. They call themselves programmers, coders, and hackers. Evidently, there is no shame in that. Let's leave the engineering title to those who have earned it and accept the responsibilities that come with it.

We should be thankful that we aren't held legally responsible for the performance of our designs.
mail this link | score:8832 | -Ray, November 25, 2002
More Programming articles...

Beautiful Abstract Art Prints

coding headlines

OpenShift Online: a non-developer guide

Tutorial: Create an NFS-like Storage Server with GlusterFS on Ubuntu 12.10

Develop your own Raspberry Pi OS

Unix: Shell Script Wrapper Examples

Introduction to Perl one-liners

Using Git for Source Control

Tutorial: Install SVN, Configure multi-protocol access (Ubuntu 11.10)

E-book: Perl One-Liners Explained

Bash: Use the Test Command for multiple aspects

Debugging Shell Scripts


Firefox sidebar

Site map

Site info

News feed


(to post)


Articles are owned by their authors.   © 2000-2012 Ray Yeargin