4 + 1

I usually try agree with most of the material presented in class, it is either insightful or really fun. For once, I didn't like, agree or enjoy an article or video. Having the 4+1 view is against the general sentiment of XP or agile. Yes, UML can diagram various types of models, but it isn't useful enough to describe the full complexity of a system with changing requirements.

I'd like to add to the mix an experience I had developing with PSP, the personal software process. PSP stated that for each program that you had to write, you had to display several checklists, designs, UMLs and logic and procedural diagrams. What ended up happening is that bureaucracy got in the way, and you took more time doing these things than actually adding features to the system.

Updating UML diagrams is a constant burden on the team, which should be avoided if possible. As Martin Fowler once said, UML is as good as the bandwidth of the team that updates the diagrams.

We are also presented with the tales of the 6 blind men, which didn't know about how an elephant looked, and as the article says, the 5 blind programmers didn't know how the software looked, but seeing an UML won't change or make them understand.

One of the main dangers of UML, is that people see deprecated diagrams which no longer are true, and hold mitigated assumptions of the system. If I were to draw a software diagram when I'm starting a software, software would be way slower. I prefer the holistic approach that Rdoc or markdown give us, as well as comments.

Nevertheless, for some, UML is amazing, and for some people it is necessary. I find that everyone has their way to code, and if diagrams help you code better, I can't ask for a better thing.

4+1 View into Software Architeture (8 minutes in length) Retrieved from Youtube.
Six Blind Men (2 minutes in length) Retrieved from Youtube.

Booch, Grady. The Elephant and the Blind Programmers pp 1,2. (2010)


views