To effectively apply the Rational Unified Process (affectionately known as "RUP"), it is important to first understand its key objectives, why each is important, and how they work together to help your development team produce a quality product that meets your stakeholders' needs.
Camping Trip? Software Project? Identify Essentials First
The other evening, myneighbor Randy came over to ask for help: He was preparing for a weekend camping and hiking trip and trying to determine what gear to pack. He knows that I often lead and participate in wilderness trips and was impressed with how I'm able to quickly and efficiently determine what items to cram into my limited packing space, while referring to a list of all the equipment and clothing I own.
"Do youthink I could borrow that list?" he asked.
"Sure, but I'm afraid it won't be much help," I explained. You see, I have literally hundreds of items on my outdoor gear list, covering many different types of outings -- from backpacking and climbing, to skiing, snow-shoeing, ice-climbing, and kayaking -- and for trip lengths ranging from simple day trips to multi-day expeditions. I knew that withoutsome guidance, Randy would probably not be able to wade through the multitude of items on my list and figure out what he really needed for his relatively simple outing.
Start With Essentials, Then Add the Extras
Instead, I offered to look through the items Randy had already crammed into his bulging pack. We could see what he might eliminate to lighten his load and also whether any necessaryitems were missing. Within a short time, I could tell that what he really lacked was an understanding of what were the "essentials" for any wilderness outing.
I pulled out a blank sheet of paper and listed ten items1:
3.Sunglasses & sunscreen
5.Extra food & water
"Here, Randy. This isthe list you really need. If you start with these 'ten essentials,' then for any trip, the other necessary items will become obvious."
I memorized this list many years ago, when I first started mountaineering, and I still refer to it -- no matter what type of trip I am preparing for or how long I'll be gone. Each of these items scales up or down, depending on the trip, but starting with a"short list" and expanding it as needed is much easier than starting from a long list and trying to decide what not to take.
Applying This Lesson to RUP
Often, as I help project teams sort through the many elements in RUP, I hear questions such as: "How do I sort through all of these items and determine which ones I need for my project?" "RUP contains so much information. It must be intended onlyfor big projects -- can I really use it for my small one?"
What these folks really need, I've decided, is a "Ten Essentials of RUP," similar to the simple list I gave to my friend Randy -- one that would serve as a reasonable starting point for any project: small, medium, or large. This list would focus on what I call "the essence" of RUP -- or of any effective software process, for that matter.Often, projects get bogged down with the details in one particular area before all the participants understand the key process elements required to fully produce and deliver a quality product. Then, when the project falls behind, the blame is placed on some activity that may have been over-emphasized or whose usefulness they don't understand:
"See, I told you that requirements management(or use cases, or collecting project metrics, or using configuration management, or using a defect tracking tool, or having status meetings) would slow us down!"
For those of you who are unfamiliar with RUP, this diagram represents the incremental and iterative nature of the Rational Unified Process, which covers a vast array of disciplines within the software development lifecycle, including...