I’m a fairly new developer at Intentional Software, but an old one, at least in programmer-years. My career has seen twenty five years of Moore’s law applying to hardware engineering, while Murphy’s Law best describes our work in software engineering. Why? Perhaps because users expect more than we can reasonably deliver with fundamentally unchanged tools and techniques.
It’s been a long journey. I spent my formative years hunting woolly mammoth and using text editors to scatter code blocks into functions living in text files. Specifications were easily-forgotten wall charts hanging on the cave wall near the coffee machine. What has changed? I still use text editors, but the coffee’s better, and strip steak tastes better then mammoth stew. But are Pascal, Lisp and Smalltalk distinctly inferior to Java and C#? I don’t think so. Have we found a better way to go from specification to code? IDE’s, better tools and paradigms may help with code, possibly just enough to trick us into taking on far too much complexity. I’m excited about Intentional because it’s not merely trying for incremental improvements to how we perform our jobs. It redefines the field in at least two ways.
All participants receive new roles. These roles allow developers, architects and users to directly contribute unique knowledge and viewpoints to an end result. Distinct languages, notations and views support varied vocabularies and thought processes.
Non-developers don’t merely toss requests over a wall, hoping for results to match their wishes. All participants are active co-creators of the final product. Yet despite the greater influence of non-developers, our importance as developers is not diminished. We may share more credit, but it will be credit for better results.