Don: Technical excellence and good design! This is obviously a really important principle. I think we'll see a real slugout to bag this one, Howard!
Howard: Both will clearly want to demonstrate their superiority here. After that round 8 call, I'd expect Freedom to be really boiling to win this "Technical excellence" round. Remember, Freedom is supposed to be a technical methodology. What does Freedom use to promote "good design", Don?
Don: For design, Freedom uses two main notations -- Object Model Tables (OMTs) and Abstract Interface Specifications (AIS). An OMT captures the object model for an object-oriented design. It has basically the same information as a UML Class Diagram except is tabular in nature rather than being a node-arrow diagram. Freedom proponents claim that tables are easier and less expensive to create than node-arrow diagrams, and tables are also highly amenable to consistency and completeness checking. They say these properties make OMTs lighter weight and more effective for use in actual design than UML Class Diagrams. An AIS records the design of the interface for one code module or class. The concept was originally invented by the Parnas information-hiding team, and adopted with some refinements by Freedom. Freedom practitioners claim that AIS's can be used as a basis for tools to automatically generate code, test cases, and even documentation from the AIS design. So far, such tools remain to be written for modern languages such as Java, although there is an instance of AIS auto-generation tools having been written for an earlier language.
Howard: Interesting. And how about XP?
Don: XP uses a notation called CRC Cards for design. CRC stands for Classes, Responsibilities, and Collaborators. CRCs are literally cards -- like 3x5 index cards -- used to record information about each class of an object-oriented design. The technique was invented by Kent Beck & Ward Cunningham. Incidentally, Beck and Cunningham are also the inventors of XP, so CRC cards and XP are pretty tightly bound together.
Howard: I guess we'll be seeing those techniques in this round, which is just about to start.
Don: Yup, here they come. Freedom has a fierce scowl, and XP is almost gloating. Both are remembering round 8, Howard.
Howard: Well, this is a new round, Don.
Don: XP has started by lashing out at Freedom with CRC Cards. Freedom is retaliating with Object Model Tables and Abstract Interface Specs. XP has dropped back momentarily, but now is advancing with Spike Solutions. Freedom has matched that with Partial Functional Simulations, which is a more formal name for the same design prototyping idea. Now Freedom is mixing it up with Canonical Design Architecture punches.
Howard: Canonical... what?
Don: With Freedom, all software designs follow the same high level design architectural pattern. Canonical just means all software designs can follow this pattern. The pattern is based on the different kinds of information-hiding modules, as categorized by Parnas and his information-hiding discovery team.
Howard: Freedom sure is pulling a lot of rabbits out of old hats. Seems to be working, though. XP has nothing to counter it. XP is taking severe architectural hits and is backing off. Now XP is trying to regain ground by muscling in "Coding Standards."
Don: Freedom easily countered that with its "Coding Style Guide", same thing by a slightly different name. XP couldn't regain any ground with Coding Standards. He's still having to back down under Freedom's repertoire of technical punches.
Howard: XP isn't done yet. Now he's trying to regroup with "Refactor Mercilessly". That's XP's way of saying to continually rewrite the code to improve the design.
Don: Wow! Freedom must have been waiting for that. Freedom responded with an avalanche of "Software Decision Encapsulation" and "Hardware Interface Encapsulation" punches. Encapsulation, basically just another name for information-hiding, means to write the code so that is easy to change. That not only permits refactoring, but anticipates it to make refactoring easier. XP is backed up to the ropes now, Howard.
Howard: XP may be on the ropes, but he's still got some moves left. Now XP is trying to hide behind "A System Metaphor", an XP concept that helps makes the design easier to understand.
Don: Freedom responded with of "Definition of Design", and "Definition of Implementation", which is central to understanding what information constitutes design, and which constitutes implementation. Metaphor got XP up from sagging on the ropes, but Freedom's Definitions are keeping XP from gaining any maneuvering room. XP is still cornered in by the ropes.
Howard: Now it looks like Freedom is going into a stance for a completely different punch. He's delivering it.... Holy cow! A real devastator!! XP trampolined off the ropes and dropped to the mat. He's still down and groggy. The ref is counting. 1..2..3..4..5.. XP is getting up. Freedom is getting ready to level another one of those devastators. But, wait! There is the bell ending round 9. It seems XP has just been saved by the bell. I can't believe he would have survived another one of those. What did Freedom hit him with, Don?
Don: Quality requirements, Howard. Quality Requirements are Freedom's way of systematically and continuously infusing quality into the design.
Howard: Here's the official call. The round goes to Freedom. No surprise there, after what we just saw. Score is now XP 5, Freedom 3. Tell us more about those Quality Requirements, Don.
Don: Quality Requirements are 'ilities' like reliability and usability, ranked to reflect the customer's needs for different types of quality. Freedom uses these ranked 'ilities' as decision criteria to select among competing design and implementation alternatives at every step in the development process. When used in this way, Quality Requirements directly address the "Continuous attention to technical excellence" part of the "Technical excellence" principle. Quality Requirements are also the heart of what Freedom calls its "service-oriented" approach to development, where service-oriented isn't narrowly defined as just "web services," but more broadly encompasses the customer's total needs for quality. It is a very powerful concept, and XP has nothing like it. Freedom showed a lot of poise by holding that punch back until XP was off balance. There was then no way for XP to recover. XP almost went down for the full count.
Howard: XP narrowly dodged a fatal bullet. When it comes to the technical parts of development, Freedom certainly does look impressive. It remains to be seen if that will be sufficient to prevail here today, though, Don.
Don: That's right, Howard. XP still has a 2 point lead, and there are only 3 rounds to go. Freedom has to make a clean sweep from here on out. It's going to be interesting to see if he can do it.
This work is licensed under a Creative Commons License