Title: Programming, a craft or an engineering Date: 2008-07-27 13:09 Author: eamonnfaherty Category: development Slug: programming-a-craft-or-an-engineering
I had a discussion (arguement) with a mate at work. I said development was an engineering and he claimed it was a craft.
Wikipedia describes engineering as :
Engineering is the discipline and profession of applying scientific knowledge and utilizing natural laws and physical resources in order to design and implement materials, structures, machines, devices, systems, and processes that realize a desired objective and meet specified criteria.
Wikipedia describes craft as :
A craft is a skill, especially involving practical arts. It may refer to a trade or particular art.
I do not take Wikipedia as a good source of information but it makes me think that the skills demonstrated as a craft could actually be a subset of those demonstrated in enginering.
I think the difference between the two could be how the development process works. If you are in an agile environment then I guess the lack of initial requirements and way in which you are expected to work forces you to act more as a craftsman. Should you be in a more traditional (waterfall) environment then I guess you could describe your work as more of an engineering.