Comparing the 3 Buckets of Medical Science to Software Development
Steve Freeman wrote Checklist-Driven Programming about the New Yorker, Atul Gawande article that I previously compared to lean. He asks how this portion of the article maps to software:
The tasks of medical science fall into three buckets. One is understanding disease biology. One is finding effective therapies. And one is insuring those therapies are delivered effectively.
Drawing parallels to medical science in the article, I’ll paraphrase a bit…
One is understanding software disease biology, formal methods and provable software. One is finding effective therapies (methodologies) xp, crystal, rup, CMMI, etc. And one is insuring those therapies are delivered effectively… lean and iteration.
disease biology <=> formal methods
Compare and contrast Automatically Validating Temporal Safety Properties of Interfaces and a medical paper, Genomics as a Probe for Disease Biology, and I think you’ll agree.
Wikipedia on formal methods:
In computer science and software engineering, formal methods are mathematically-based techniques for the specification, development and verification of software and hardware systems. The use of formal methods for software and hardware design is motivated by the expectation that, as in other engineering disciplines, performing appropriate mathematical analyses can contribute to the reliability and robustness of a design. However, the high cost of using formal methods means that they are usually only used in the development of high-integrity systems, where safety or security is important.
effective therapies/protocols <=> methodologies
Wikipedia on software methodolgies: A software development process is a structure imposed on the development of a software product. Synonyms include software life cycle and software process. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process.
Wikipedia on clinical protocols: A Clinical Trial Protocol is a document that describes the objective(s), design, methodology, statistical considerations, and organization of a clinical trial. The protocol usually also gives the background and reason the trial is being conducted, but these could be provided in other documents referenced in the protocol (such as an Investigator’s Brochure).
therapies delivered effectively: Lean/Iteration/Continual Improvement
See Lean: Stopping the Line, Empowering the Individual to Affect Quality in Medicine for a lean perspective on medicine. The key is iteration at all levels aiming at continually improvement.
That’s an interesting mapping. I was thinking more of “delivery” mapping to the delivery of software, rather than to the improvement of software organisations. It all depends which job we think we’re in, I suppose.