UP (Unified Process) seems to have appeared in the late 90’s, as part of the increasing acceptance of Agile processes, and describes itself as an iterative and incremental approach within a set life cycle.
UP initially focused on collaborative development and was a low-ceremony approach that could be extended to address a broad variety of project types. This then spawned various UP hybrids, for example Agile Unified Process, OpenUP, and Rational Unified Process (RUP).
As with any Agile approach, UP divides the project into iterations and delivers a working prototype of the product at the end of each iteration. In addition, UP structures the project life cycle into four phases:
The idea was that each step would provide clear decision points for a go/no-go decision off the stakeholder, though other Agile approaches would have that available at each iteration review.
This was all well and good, but in 2003 IBM got in on the act and formalized UP into RUP – Rational Unified Process. Although dressed as an adaptable framework and not a single concrete prescriptive process, IBM then began to slather on extra “Building blocks” such as roles and added defined disciplines into each iteration. Finally, they added the cherry on the cake: Certification.
Suddenly, an Agile process started having a lot of features that didn’t seem very Agile. For example, the certification and focus on the defined processes is in opposition to the Agile Manifesto‘s value of “Individuals and interactions over processes and tools.” What was worse, many RUP projects began to be associated with a failed process. For example, Michael James’ 2007 post Why RUP failed has:
But every time I hear about RUP nowadays, it’s in association with a project failure, or at least waste that people would like to eliminate. In Agile circles, RUP advocates constantly take on the role of apologists. “RUP is actually incremental and iterative! You just haven’t seen RUP done right! Scrum is just a highly tailored version of RUP!” Etc. It starts to sound shrill. It reminds me of my leftist teachers who kept insisting communism wasn’t actually that bad, we just haven’t seen true communism yet.
Recently, the Scaled Agile Framework (SAFe) has appeared on the scene, and describes itself as “an interactive knowledge base for implementing agile practices at enterprise scale.” Some in the Agile framework are just seeing this as another way to foist a pseudo-Agile process on the software community (see Ken Schwaber’s attack: unSAFe at any speed). Others are asking whether SAFe has finally Cracked the Large Agile Adoption Nut?
I expect only time will tell whether this is a brave new world or a wolf in sheep’s clothing.