A Recipe for Success: Unified Processes

Have you ever had burgers? You know how every restaurant, chef or cook has their own recipe for the same thing? Regarding burgers, some include cheese, some add pickles, some have vegetables; even if two different recipes have the same ingredients, the amount which is used or the way they’re prepared may differ from each other; the person preparing it may even add its own twist! This makes it too unlikely for two burgers to look the same, let alone the taste.

Last week I wrote about the Software Development Life Cycles and how they help in the process of, well, developing software. This time the topic is kind of similar: Unified Software Process (USP).

Once again, the first paragraph may not have made a lot of sense, but it allows me to explain the difference between SDLC and USP. USP also aids in the software developing process, but here’s the twist: just like recipes, there are lots of them for the same kind of thing; they can be followed rigorously or tweaked a bit to better satisfy one’s preferences and they may be used for either tiny or large groups of people. Allow me to elaborate on each statement.

First, there are many refinements of the Unified Process, but they all intend to serve as a reference rather than a strict guide. One of the characteristics of this process is the presence of four blocks into which the development is divided: Inception, Elaboration, Construction and Transition. (For a brief explanation of each of these blocks you can go to this site).

At the same time, the last three blocks (and sometimes the first one if there’s a large project involved) are themselves divided into iterations. For every of said iterations it’s necessary to have made a significant progress. Now, the difference between refinements is what disciplines are considered for each of them.

Disciplines are activity patterns that altogether cover every aspect of development. Some versions of UP englobe many of them into one, while others break them down as much as possible. They have their own definitions and goals for each discipline considered, so at least the differences can be cleared up.

Okay, so let’s work with an example and say a company is planning on using a specific refinement of the USP for developing new software. When I said that one recipe could be reinterpreted or changed in order to meet one’s desires, I was trying to make an analogy with this example. One of the advantages of the USP is that refinements are adapted to the necessities of whoever is developing, usually defining goals, roles, methods and time for the development itself; along with how the aforementioned disciplines are distributed among the process’ iterations.

I’ve said that a company may have chosen a specific refinement, but… what refinements exist? Which one could have been chosen? One of the most popular versions of USP is the RUP, which stands for Rational Unified Process. The Rational in the name doesn’t exactly mean that it’s based on rationality, that’s actually the name of the company that made the refinement. RUP defines nine disciplines: Business Modeling, Requirements, Analysis and Design, Implementation, Test, Deployment, Configuration and Change Management, Project Management, and Environment. Since RUP is the best documented and widely used version of the USP, going with it is a safer choice. An in-depth description and analysis of the RUP can be found here. But do have in mind that other versions exist, such as Agile and Basic Unified Processes.

Finally, the last of my comparisons is quite simple, but I felt it was as important as the last two. As a consequence of the last characteristic, USPs can be used for projects of any size. That’s it, I was not kidding.

But for real, this is a feature I like. One can get used to USP by applying it to personal or very small projects, and that could be useful in the long term.

USP are a yet another way of formalizing the software development process. But the customization makes it, at least for me, a more tempting alternative to SDLC. The graphic that every refinement uses to graphicly depict the distribution of disciplines makes it slightly more intuitive for me. So USP is above SDLC in my book. I got most of my information from this website, it has extensive information about every topic I wanted to cover with this entry, so this is the one I recommend checking out the most.

TL; DR: USP is like a customizable and scalable SDLC, kind of, sort of.

Leave a comment

Design a site like this with WordPress.com
Get started