Engineering, Craft or What?
Patrick Logan writes
about the debate regarding whether software development is a craft or
engineering. He has an interesting spin in that what makes software seem
"craft-like" is the informalities.
I think the "informality" of software makes it feel craft-like. If only
we had more formalisms. Could be, but we'll always have "informalities". Every
engineering effort, and every creative effort in general, involves many
informal conversations.
The difference is perhaps software depends more on
informal conversations than do many of the traditional engineering
disciplines. The requirements in those disciplines are more formal. Most of
software development is really requirements development. The interpretation of
formal requirements is most easily expressed in software as tests and code
that (correctly one hopes) runs those tests.
Ultimately Patrick says that communications is the key and that failed is a
result of failed communication not lack of formalism.
Which still begs the question for me - what is it that we, the software
development discipline, are envious of from the "other" engineering
disciplines?