Agile vs Unified

A question was presented to me the other day with regards to project methodology. The question was do you think a project would be more successful using a Unified Process or an Agile Process? Before I go into my answer I guess I should explain a little bit about the two.

What is a process methodology? Well in our world of software engineering there are ways to go about defining and building a project. A blueprint, so to speak. To compare it to building a house, you would first interview the resident, do some site surveys, find out from the town regarding constraints, come up with some ideas and then start your plans. Get the contractors scheduled and start the build and once complete you get the inspector to come back and make sure all is when and then hand the keys to the lucky homeowner. The same is true in software. There is a method to the madness and we call it a process.

We can debate widely about all of the types of processes, waterfall, scrum, xp, fdd, rad etc., but for this discussion I will only talk about Agile and Unified at a high level, not the variation of them.

At work we have a "unified process". It has the standard phases of the unified process, inception, elaboration, construction and transition. We tacked on 2 more, a strategy up front and an optimization to the end. (Actually the names have changed to be more hip but I really do not know what they are...so much for process). In any case, a typical project follows these steps outlined above. The timeframe can be anywhere from 6-8 weeks to 16-24 weeks. So when a client says I want a new website or X competes with my competition it will take a few months to get that out to market. In the whole scheme of things that is quick. The Web world waits for no one.
In the unified process each of these steps tells us the input and output that we should have before we go to the next step. Let’s get an idea and then start dissecting it. Let’s define scope and requirements and how the whole thing will be put together. Let’s start building it and get ready to test it and….what….you want to add something…or change something…or…we need to revisit requirements and start that phase over again. In most cases that is not the norm but in some, it very well can be.
The issue I have been seeing with some of these projects is the idea changes and morphs over time. With changes comes increased scope and increased timelines and increased deliverables but an end date that cannot be moved. I have also seen projects where we defined the project perfectly and delivered on time and on budget but the “craze” were over by the time it hit the market. So how do we fix that?

Before I can offer my suggestions on a fix to this, how about we take a look at Agile? Agile is used in many software development circles. The main difference is the iteration portions of the Agile method vs. the Unified process full lifecycle. Agile relies on face to face communication over documentation and rapid changes to the project. It also requires a strong team to keep the scope in “scope” and to make sure the iterations do not get out of control. The time to market for an application is really quick and being that it is not a full release changes to this app can be made rather “Agile”.
So, what was my answer? I played the political part. I said I think the unified process can work for larger projects and Agile can work for all. Unified may hinder the rapid development on smaller ones where Agile and speed it up. I did however say with Agile you need a solid team to understand budget and scope where a Unified gets away with it by relying on documentation.
Agile is the approach I would take if I had to choose.




Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Related posts

Add comment


(Will show your Gravatar icon)  

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]



Live preview

January 7. 2009 08:40