Archive for May 2007
Craftsmen (and women) in the Modern Factory
Used to be that products were made by craftsmen. Lots of art, skill, and tools in the hands of an experienced individual.
The industrial age brought us the factory, with an emphasis on automation, process, and soon, statistical control.
More recently, high-quality producers worked to combine the two, with individual or small-group responsibility for an entire component as part of an industrial manufacturing system.
In software, the building construction analogy has fallen. The important, human part of programming is design. Construction, so often error-prone, need not be. Take an ingredient from each part of the history above: from craftsmanship, discipline. From manufacturing, computerized tools.
Here’s how I see a modern factory of software craftspeople working:
- The best tools for writing good code attached to each developer’s IDE
- The same tools centrally build-automated (e.g. with CruiseControl), with IDE-compatible output too
- Code review for readability, maintainability, and extensibility of code, and for continuous developer improvement
- Constant professional discussion amongst developers and their group leaders about coding and detailed design
- Detailed root cause analysis to prioritize improvement efforts