July 15, 2004 | John Rusk | 2 Comments Here’s a simple pictorial overview of software development methodologies. Its main purpose is to show how Crystal Clear compares to several better-known processes. I’ve arranged the methodologies by “strict-ness” and “agile-ness”. The vertical axis shows how “strict” a methodology is. The more strict a methodology is, the more rules you have to follow if you use it. Note that the rules are not necessarily the same. XP and RUP can both be quite strict, but they contain different kind of rules. For instance RUP has rules about visual modeling, while XP has rules about refactoring and pair programming. The horizontal axis shows how agile a process is. How did I rate them? Completely subjectively, since agility cannot be defined in terms of any one aspect. Factors leading to higher “agility ratings” included lightness of documentation, ability to handle change, emphasis on people over process etc. Some points to note: The oldest options, “waterfall” and “RAD”, lie along the two arms of the graph. Waterfall can vary in strictness depending on how you define it, but its seldom very agile. By “RAD” I mean the kind of process you have when you say, “Never mind the process, we’re doing RAD”. That’s not strict, but it can vary in agility. Its agility varies because, without disciplines such as refactoring and automated testing, progress can bog down as the code base grows. XP is both agile and strict. There are specific rules to follow, and you can “fall out of the methodology” if you don’t follow them. For instance, if you drop pair programming, but keep the policy of minimal comments and documentation, you may be in trouble. That’s because the policy you’ve kept relies on the one you dropped. Compared to XP, Crystal Clear is less strict. That makes it easier to successfully follow. Nevertheless, it still contains enough rules to lift you above the RAD-style “danger zone”. Crystal occupies a larger “blob” than XP because Crystal is more customisable than XP. RUP occupies the biggest blob of all. That’s because it’s the most customisable. You can’t just use RUP directly, you have to tailor it to your needs, stripping it down until it occupies just one little part of my “RUP blob”. RUP’s flexibility can be a disadvantage. Martin Fowler says, “people can do just about anything and call it RUP – resulting in RUP being a meaningless phrase.” In my opinion, Crystal Clear represents an ideal “sweet spot” for most small-team projects. It is not the only way to reach that sweet spot — for instance, some teams may tailor RUP into the same “zone” of lightness and agility. However, unlike many other methodologies, Crystal Clear is specifically designed to be easy to adopt.