This earliest recorded attempt to regulate the engineering profession reminds
us, in the bluntest way possible, that the paramount purpose of engineering and
engineering design is to serve the user. One would assume that the engineer’s
responsibility to users is so self evident that it goes without saying. Various
professional engineering societies have inculcated this into the core of the rules
that regulate the conduct of their members.
However, in the relatively young discipline of software engineering, this has
not yet fully permeated the professional culture. Part of it is due to the essential
nature of the software: like no other engineering medium, software provides the
shortest path from concept to reality. With no metal to bend, heavy weights to
lift, or large teams of people to mobilize, creativity is practically unhampered. In
the heady and seductive process of embodying ideas through software, users are
often forgotten or relegated to secondary status. In some cases, they are even
seen as a distraction whose idiosyncrasies merely get in the way of ‘elegant and
clean’ design. Software developers are notorious for their impatience with
anything that separates them from programming – the medium has become the
message. Symptomatically, the terms ‘hacking’ and ‘hacker’ have no equivalent
in any other engineering discipline.
It is interesting to note the dramatic impact that the concept of ‘use case’ has
had on the software community. This idea, introduced by Ivar Jacobson and his
colleagues a little over a decade ago, was lauded as revolutionary. Its essence lies
in the formal introduction of the concept of a user (an ‘actor’) into the software
design process. (The layperson can hardly be blamed for wondering ‘what took
them so long?’ Hammurabi knew this almost 4000 years ago.)