Every methodology I've come across has, at its kernel, a very small section labelled "do magic here". RUP is much the same. You draw the user interaction diagrams, you do the flow things, , you draw class diagrams with methods and stuff and then they get turned into code and the application falls out of the bottom of the process. Reciprocality[1] talks about something called "complexity smearing". Which is where the class of people referred to as "packers" shuffle things around and write larger and larger documents, with the end result that the complexity is all broken up and spread out and no single page actually contains noticable complexity. It's still there, but it's hidden inside a lot of words. A lot of the rest of it reads like the writings of raving madmen, but there are bits of it which sound disturbing sensible. RUP looks scarily like a way of hiding that complexity in lots of pages so it doesn't look worrying to the packers and they think they've "solved" it. Now, don't get me wrong here, I think it has its uses. I think having nice standardised diagrams of stuff like that is REALLY useful. One OO architect drops dead and your replacement walks in and can pick up the documents and read them because they already speak that language. That's a great thing. I sort of wish it had been pushed as being that -- a lingua franca for documenting designs. Instead it's pushed as a way of getting normal people to do something normal people can't do. Normal people can't do OO design properly. I don't mean that derogatively as such. I can't draw still life, I can't run 100m races {Well, these days I can't walk 100m races, but even as a kid I was crap at the 100m}. People have various different talents. One of those talents is doing OO design and some people just can't do it. No matter how much paperwork you surround it with. And at the core of RUP is a small area where you have to use OO design talents.... if you don't have them, it's like having a methodology for running the 100m. "Step 1: write about running really fast. Step 2: Go and draw a plan of the racetrack. Step 3: go and buy really tight lycra shorts. Step 4: run really, really, really fast. Step 5: cross line first" It's that step 4 that's the tough one. But if you put lots of emphasis on 1,2,3 and 5 it's possible no-one will notice and then you could probably make a lot of money selling the methodology to would be athletes who think there's some "secret" to being a 100m runner over and above being born with the ability to run fast. Unfortunately, the outcome of RUP is that you end up with extremely well documented TERRIBLE designs. Unless you have a good OO designer to start with. In which case they'd have come up with a good design anyway, but on less paper. As I say -- if you regard it as a standardised writing system that's portable between companies, the whole thing works OK. [1] People have asked about this, so I'll clarify. "Reciprocity" was part of the original name for the concepts discussed here; http://the-programmers-stone.com/the-original-talks/day-1-thinking-about-thinking/ The authors postulate that humanity has two populations of thinkers; "mappers" and "packers". The former are people who get bored and optimise processes to remove repetition. Along the way they present various arguments to support this based on the behaviours ascribed to the two groups.