Originally posted by Michael O'Donnell:
I have been asked the following question, "How can RUP assist in the resolving of tensions between management of complexity and agility?".
I'm not sure what "tensions between management of complexity and agility" this question is talking about. Can you elaborate? Who was asking this question, and why?
Now my arguement would be that since RUP is iterative and tailorable, it falls more into the category of agile processes rather that formal processes.
RUP isn't a process, it's a process framework - that's why you need to tailor it. The resulting process can be Agile (as defined by the Agile Manifesto) or not, depending on the values of those who tailor the process, and the corresponding set of practices selected.
Furthermore its iterative approach means that there is constant feedback going between all the parties thus reducing the effects of miscommunication, reducing the overall complexity can also be achieved through iteration. Simple put, if the customer/sponsor has a highly complex requirement, the best thing to do is to break that requirment down into smaller pieces, by then solving the smaller pieces and recombining the various solutions we can ultimately reduce the impact of complex requirements and.
However, I feel that the above answer is insufficient, I would appreciate it if anyone could suggest anything else that could be included to re-inforce the arguement.
I'd agree that iterative and incremental development is a good strategy to manage complexity. On the other hand, it isn't sufficient - the solution still can become a mess of unmanagable complexity, for example a monolithic system that breaks at unexpected places because of small changes. I there something in RUP that helps prevent that?
And as far as I can tell, you didn't address agility at all. What are your thoughts on that?