Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am confused concerning the unified process model and agile development. When I'm reading about the UP, I'm only understanding that it is an iterative improvement. Can someone please clarify this?

share|improve this question

3 Answers 3

Unified Process is a detailed and well-defined process.

"Agile" is not a process at all, it is simply a way of saying that one follows the Agile manifesto which, in turn, is just a bunch of values and practices.

So, in short, any process that follows the agile manifesto can be considered agile.

share|improve this answer

So here's the problem, CMMI and RUP have gotten a bad rep because they have been associated with expensive, documentation-riddled, over-priced projects. This is how it was sold by the "experts". Think about it, when you ask an outside company to help you put a software process into place and then to implement a pilot project using that process, the temptation is very high for that company to make the process as drawn out and convoluted as possible.

The RUP does not require you to fill out every document in the catalog, it provides them as guidelines and templates and encourages you to take what you need and even GASP customize the process to fit your company.

Likewise CMMI does not REQUIRE reams of documentation. Unfortunately, a lot of the companies that perform CMMI appraisals are the same ones that sell RUP as a waterfall process. One need not look far to see how conflicting interests of an auditor who is also a contractor can lead to disaster (e.g. Enron).

RUP is a framework and as you've recognized is an iterative process. There are agile frameworks that recognize this (see eXtreme Unified Process).

share|improve this answer
    
then, what is main difference between UP and Agile? or is UP a variant of Agile –  Noor Oct 3 '12 at 15:44
    
The Agile movement was a reflex to the heavy-handed approach of the "Big 5" consultancies. RUP was around before Agile hit the mainstream. Unfortunately, for some reason it was never implemented in an iterative fashion. –  Mike Brown Oct 3 '12 at 18:12
    
Enron isn't a good example of an auditor also being a contractor, its an example of Fraud they knowingly mislead others. That is entirely different than having someone say "you have X problem and we have product Y that will solve that problem and make you breakfast." –  Ryathal Oct 3 '12 at 20:57
    
If you ask a toddler whether he wants a cookie or a cracker, he'll have one or the other for snack. If you give him a box of assorted cookies, he'll eat until his appetite is spoiled. Agile processes give people a cut-down menu of practices to choose from. RUP gives people the whole box of cookies. –  Wayne Conrad Oct 5 '12 at 16:22

Both UP and Agile are iterative approaches. If we were to draw a spectrum of documentation requirements for development processes then Waterfall would represent one extreme, Agile would be placed on the other side. UP exists in the middle between Waterfall and Agile and can take many slots in that spectrum depending upon how it's implemented.

No documentation as a development model would be much further past Agile on that spectrum, so please don't misconstrue my comment as indicating Agile is as far from the "middle" as Waterfall is. Agile can be a pretty reasonable approach to development.

UP is more document (artifact) heavy than Agile is. There is a broader range of artifacts that can be created through the development process, and there are potentially more stages for review. Agile relies a lot more on direct communication and short iterations for constant validation.

As a generalization, UP is better suited for larger teams on larger projects where you won't always have face to face communications. Agile works better on smaller teams and smaller projects. But those are just generalizations, not hard and fast rules.

IMO, every team should examine the various development approaches, including Waterfall, to understand the strengths of the approach and to determine if that's appropriate for the team. I have seen a number of Agile projects that could use better defined documentation. I have seen UP projects that disconnected from the client's real requirements because they picked the wrong artifacts to work with. All processes have their negatives, so make sure the right approach is picked for the project and team.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.