I recently had the opportunity to review Ivar Jacobson Consulting's (IJC) new Essential Unified Process and am pleased to report EssUP provides a fresh approach to software process improvement. It isn't surprising that IJC should provide innovation in the space since its founder Ivar Jacobson is the father of the Use Cases, and the Unified Process, and Jaczone's Waypointer. The Essential Unified Process is much simpler, and much more flexible and extensible than previous expressions of UP. It is presented with a lightweight and friendly approach which makes learning the process easy, some might say even agile Although the Essential Unified Process is a dramatic improvement to UP, the ideas underlying it are very useful to describe basically any process. The approach is practice-centric instead of process-role centered,
Objectory to RUP: The First-Generation Process
I first met Ivar in 1988, following email discussions with respect to his early work on Objectory at Objective Systems. At that time Objectory was one of the only comprehensive process descriptions, and the only object-oriented process. It consisted of an OO Meta model and a comprehensive hyperlinked documentation set with an associated tool. At the time no one had even consider process as something which could be formalized and specialized using principles similar to those practiced in OO programming and Ontology. When Objective Systems was sold to Rational, Objectory and the team became a major influence in Rational Unified Process.
At Rational, Ivar successfully pushed to make UP and UML open by working with the OMG. Rational at that time elected to keep RUP proprietary. (IBM Rational recently has joined with others in the process community to create the Eclipse Process Framework, EPF, and the OpenUP initiative.) The OMG, dominated by self interest of vendors and methodologies proceeded to take UP and UML to their own direction insisting on a baroque SPEM model, complex meta architecture (MOF) and a language UML with minimal syntactic or semantic account.
Unfortunately to some developers Ivar is seen as the godfather of RUP which took on its own life at Rational. The well intentioned RUP grew quickly from a means of helping people develop software to a comprehensive marketiture to sell Rational as the single vendor answer to process and tools. RUP quickly bloated to thousands of pages of hyperlinked material individually and as a whole totally overwhelmed developers. Sold top down, it provided management who didn't understand software development the prescriptive answer for how to develop software. It fit perfectly with corporate and government guilt to become CMM certified and provided what appeared to be the software equivalent of TQM/Six Sigma and ISO 9000. At last there was a prescriptive process to build software. All developers had to do was follow instructions! If only software development was so simple!
Process as Guide rather Than Policeman
Ivar and I have talked many times how simple good ideas can mutate into complex ones with associated dogma not ever envisioned when they were originally conceived or presented. Ivar founded Jaczone and IJC to follow his original vision of disciplined software development based on using process and tools to help guide and coordinate development rather than dictate and police it. EssUP is an effort to return to the essential roots of process this time with a much simpler presentation in an open setting which welcomes and embraces the contributions of others.
Process = A Set of Practices
Process of course doesn't equal practice, and the existence of a process doesn't mean that any one actually follows it! Despite the increased amount of process and tools, organizations soon observed that just increasing process didn't seem to result in more predictable, higher quality software. The Agile Alliance emerged from the Agile Manifesto when a community of successful software developers took a public position against the process/method heavy approach and instead focused on the practices that produce software and how one can improve them. Agile Transitions change the actual practices, not the superficial process. These practices applied Lean approaches to software development focusing on continuous improvement through measurement of delivered software rather than indirect and hopeless inaccurate indirect project management estimates.