Sunday, September 24, 2006

Engineering at its best

I have a more than passing interest in mechanical watches. Part of it has to do with a fascination with time itself, but the main motivator is a deep appreciation for the engineering involved with the design of a high quality movement. The essential elements of watch design include economy of space, efficiency of operation and constraints on implementation techniques -- all factors that software engineers should be forced to take into account. Unfortunately this is often not the case, as software developers are able to get away with things that would cause immediate break down in mechanical systems. And even incremental improvements in the practice are fraught with serious regression. Lately, I've thought about what has been most interesting in software development practices in the last 10 years in a very critical light: XP provided several advances in terms of what we know from job enrichment theory and process control in operations management, but also insists on using craftsmanship as the driving metaphor to explain away the need to industrialize the practice -- all the while, industrialization continues to occur as, for example, IDEs are normalized. If only the patterns folks had not fixated on building architects...

In any case, here's a fascinating, detailed look at a movement from a true Manufacture. An interesting thought experiment: If you are a software person, do you think you would be able to provide a reliable movement design? If so, why? If not, why not?

No comments: