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](https://bloggingabout-linux.azurewebsites.net/edwin/), 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](https://bloggingabout-linux.azurewebsites.net/dennis/archive/2005/03/08/2390.aspx) 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](https://bloggingabout-linux.azurewebsites.net/blogs/dennis/file/projectswing.jpg). 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 :
[Manifesto for Agile Software Development](http://www.agilemanifesto.org/) – Some big names are behind Agile.
Martin Fowler’s [New Methodology](http://martinfowler.com/articles/newMethodology.html)
Agile via SCRUM can be found on [ControlChaos](http://www.controlchaos.com/)
Agile via [Extreme Programming](http://www.extremeprogramming.org/)
I'm a developer, international speaker and coach/trainer. I love to discuss code, software architecture and distributed systems, messaging, star wars and lego with anyone who wants to listen or speak. I currently work at Particular Software on NServiceBus.