Dennis van der Stelt

The most votes generally drown out the best votes

Community

News

  • Addicted to Refactor! Pro

Email Notifications

I read...

I Use...

Tags

Recent Posts

Archives

Agile vs. RUP

At our company we have these meetings, where people from the same competence in a region come together to talk about all kinds of stuff, from business related to more fun related stuff. Because I went to the Dutch Developer Days 2005 with Edwin Waegemakers, we were asked to do a little presentation. We decided to give three small presentations, one about Team System, one about integration strategy and one about Agile Development. I would do first and last.

I've written about the Agile presentation at DevDays before and planned to use it in my own presentation, but a little less on the archetypes and a little more my personal experience. The plan was to bring it lightly and at the same time trigger our RUP 'specialists' as an Agile hooligan, and I can say it worked pretty well. I placed Agile strongly against RUP, although in practice this of course isn't the case. Or at least not as hard as I had put it.

Agile vs. RUP
For a lot of developers documentation can be a drag to write. I have a personal experience on a project I joined, where they over-used RUP. Normally you get a pile of documentation of about 2" high. On the project, I got a pile of about 10" high. If I wanted to read that through, before actually doing something useful. The project had just started, and there wasn't anything in it like functional specs. Just project guidelines and rules and technical visions, etc, etc, etc. So I used that in the presentation, with the Agile tenet to produce working software over extensive documentation. I highlighted extensive, as some people got the idea Agile has no documentation at all. That triggered some reactions!

Fun thing was, that our director just had seen a presentation last week, where RUP was presented as thé answer to all problems in projects, sort of speak. This week I presented it as if RUP was about just documentation, and Agile development would really work. His conclusion was that now he knows he's getting old, as he had never seen (technological) advancements update so fast. Last week RUP was everything, now it's already outdated and replaced. ;-)

Project swing
Of course Agile isn't a replacement for RUP and you cannot appoint one as a clear winner. I don't think that's necessary either. I think RUP is great, but you have to have experienced people doing RUP projects as you don't want to overload everyone with documentation, but also have to carefully look at what the customer wants. RUP also uses iterations, but for some reason I have the feeling Agile development can better understand and react to what the customers needs, not what he thinks he wants. That comes to show in this funny picture of a swing. It's funny to see how everyone within a project has (or can have) a different view on the swing. I think it's hard to get the same swing in every picture. But my believe is, it's much harder to retrieve from a customer to what he really wants and needs. To get the same picture in how a customer explains it and what a customer really needed, you need good iterations and a lot of communication. For some reason, I have the feeling communication in RUP is more through documents where as in Agile it's face to face communcation between the customer and the entire team. And I think that's an important difference.

Of course everything should still be managed, also documentation. ;-)
I'm particullary interested in how to manage the customer and/or final deadline. Once the customer gets the hang of changing and adding functionality, how can we manage them and the project so that we can deliver what we promised up front, and still meet some final deadline. Where is the line, between making agreements with a customer, and kind of just see what happens?

For those who want to know more about Agile Development :

Comments

Dennis van der Stelt said:

I'm in a project at the moment where they use SCRUM. From what I can see, it works fine, as long as your development requests are well-defined. This still means, that the customer needs to know what he wants (which is sometimes only partly true). It also requires development teams that are capable of extracting all missing information at the start of a SCRUM period.

The problem with any type of development method is getting the requirements straight. Once you have that, you can decide which development method can be used. I've been in (semi)RUP projects, and that method worked.

But the SCRUM method I have to use now is fine for the project I'm in. We need to implement small functional components for each SCRUM and most things are functionaly clear.

It's just that every new method seems to make the older one obsolete. And it takes time to see, that each has it's own use.
# April 20, 2005 4:13 PM

Dennis van der Stelt said:

Goede post gozert ;-)
# April 22, 2005 10:21 AM

Dennis van der Stelt said:

Over here RUP should've been the holy grail for all the projects. But our experience is that you need to have an experienced RUP projectmanager to make sure RUP is used as it supposed to be. So it doesn't need to be an artifacts hell that people think it is, but you need experience to see that.

I'm more of an XP/Agile kinda guy. And I believe that programmers who love to write documentation is a paradox. But as with RUP you need experience to see how much documentation is good enough to bring a project to an end succesfully.

RUP is a very well documented, and Rational is very willing to sell you the "right" tools to do the job. I think in the Agile world you're more dependant on the solution suppliers who have experience with implementing the Agile methodology.
# April 22, 2005 12:07 PM

TrackBack said:

Visual Studio Team System


Bill Sheldon from InterKnowlogy has an item in the June 3rd edition of...
# June 5, 2005 2:06 AM

blyons said:

hiho,

The branded Rational Unified Process provides a ton of artifacts that a team can use when developing software.  And there is little talk on collaboration or even how people are expected to work together.  The early version of SPEM (the Software Process Engineering Metamodel from the Object Management Group) used to describe the process leads one to think of a situation where "I do task X alone and create artifact A, you then pick up artifact A and do task Y alone which produces artifact B, then someone else...".

That is not how it has to go, but the content provided by that version of the Unified Process can lead people to think of it that way.

A group of people have been authoring an open source version of the Unified Process that takes an agile perspective.  It has the end-to-end process structure recognizable from the Unified Process.  It treats it as lightweight as possible.  It includes guidance on various collaborative and other humanistic perspectives of developing a system.  It includes roles for the sake of defining required skills, but does not have a strict perspective on roles or top-down tasking (i.e. promotes self-organizing teams).  It folds in various agile techniques such as TDD, Refactoring, Continuous Integration, and even applies a Scrum-like technique for project planning.

You can download it at http://www.eclipse.org/epf/ of view the 0.9 version of it published at http://www.numbersix.com/openup/.

                ------- b

# December 26, 2006 9:20 AM

Ramesh Babu said:

The following is very well said by the Author. I totally agree with that.

"For some reason, I have the feeling communication in RUP is more through documents where as in Agile it's face to face communcation between the customer and the entire team. And I think that's an important difference"

# August 12, 2009 6:52 PM
Leave a Comment

(required) 

(required) 

(optional)

(required) 


Please add 5 and 4 and type the answer here: