The Nature of Software: What's So Special About Software Engineering?

As engineering organizations across North America struggle with the concept of opening their doors to and registering -or even licensing -software engineers, questions naturally arise about what software engineering actually entails. How do we qualify and evaluate software engineers? How do we validate their experiences? A first reaction may be to approach these tasks in the same way that we have done for all other engineering disciplines. However, software engineering differs from structural, mechanical, and electrical engineering in subtle ways. The differences are linked to the soft, but rather unkind, nature of software. In this article, I explore four key differentiating characteristics: