October 13, 2003

Why UML is Bad (for Business Analysis.)

UML is a bad tool for Business Analysis.

These are following reasons:-

1. UML, the L stands for language, i.e. for communication, however it is a specialised IT language. The business users do not know the language, or the developers (they are struggling to understand the 5000 classes in Java).You will never get the end users to learn UML or any IT looking design language. So there is always the error of translation without a feedback loop to the user. I have often heard users say "Don't show me boxes."

2. UML gets in the way of Test Driven Development. Creating a system so that it can be automatically tested has a big impact on the design of that system.

3. The users understand expected results. On my current project, the business have stated a hard requirement that they want automated User Acceptance Tests. They want the confidence that they can change the system in the future without breaking it. The users, all senior business people, have commited to completing Excel spreasheets (to be used with FIT) that contain all the expected results that will specify the acceptance criteria for the software. They will do this ahead of the development. The users will have real confidence in the system and they will be able to change it without laborious manual regression testing.

4. Modelling should have a purpose. We only created a business model (Simplified E-R / UML object model hybrid) in order to identify the interface requirements for the system (60 interfaces so best to try and reduce the number of iterations. We will throw the business model away or let the developers use it if they are interested. It is certainly not being considered a deliverable as it would in RUP.

5. UML (and RUP) is prescriptive. XP hasn't really specified the form of analysis results. For our project, the "Analysis results" will be spreadsheets containing the expected results, interface specs and the business rules that the users will enter into a rules engine. We are also specifying the business value in Excel.

6. UML focuses on features and functionality. Agile (hence XP) should focus on business value (Note the arrogance ;-) ).

7. UML is only of use if all the developers know UML. In reality, the BAs will probably have the best knowledge of UML and the developers will miss some of the subtle nuances of the model. i.e. Too much detail in the model.

8. UML puts the BA and Designers between the Developers and the End Users. XP attempts to create direct dialogue between the Developers and the End Users. This means less chance errors creeping in due to the Chinese Whispers effect.

Posted by chrismatts at October 13, 2003 9:36 AM