I’ve just signed the Manifesto for Sofware Craftsmenship after a ping from a friend.
Alan Cooper is the first person that I heard speaking of software development as primarily a craft and not as an engineering discipline.
The text of the manifesto is shown below:
As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value:
Not only working software,
but also well-crafted software
Not only responding to change,
but also steadily adding value
Not only individuals and interactions,
but also a community of professionals
Not only customer collaboration,
but also productive partnerships
That is, in pursuit of the items on the left we have found the items on the right to be indispensable.
It will be interesting to see how many people end up signing.





Couldn’t agree more with the snippet “but also well-crafted software”.
That’s part of the reason why I am venhement about unit testing, code coverage, load testing, and tools that can check code quality or even find bugs in code before they occur.
When we walk through buildings, drive over bridges every day, we take their stability for granted. Architects and Engineers did their job well. We don’t worry that the floor will cave in, we don’t eye an overpass warily before merging onto it. The construction works, and we take it for granted. Their workmanship is of good quality.
In software, we don’t always go that quality route. We sacrifice quality for scope, quality for delivery dates, quality for lack of resources. But for some reason this is acceptable in technology. Patches for Microsoft service packs. tsitting on a community web page for months. SSL problems @ Delicious.
If some software we write fails, it won’t be ending people’s lives like a fallen bridge or collapsing building. However I would argue merchants that fail in Decemeber…such as Amazon & Macy’s have in the past couple years…can have a devistating impact on the bottom line…and that may have been avoided with a better focus on quality in their software development.