Tuesday, October 31, 2006

Pseudo-ML Diagrams

Language conveys meaning
The purpose of an agreed language and set of conventions is to be able to convey meaning effectively between people. In a team of a few members, it is quite quick to form a consensus with very little explanation required. The more people there are on the team, the more effort is required to get everyone to understand the exact same vision, the exact same approach and any details thereof.

Of course, with Agile, the key aim is to generate a placebo effect where everyone believes that they're on message, working hard towards a goal, without any actual progress (except illusory progress) and without anyone managing to stop the regular process change which keeps the Agile consultant in work, and the company so in need of even more process change to correct the previous process changes and the apparent halt in production even though the illusory progress suggests that things have never been so good.

At times like this, a common language would actually be a big problem. If people really understood what was going on, they'd soon realise that nothing was going on except the regular payments into your bank account. So, we need a language which appears to convey meaning and which creates the illusion of a common understanding. This allows the following euphemistic-cliches to be used:
  • The team is pulling in the same direction
  • We're all on the same page
  • We have a shared vision
  • We've identified the goal and we're working towards it
  • We're singing from the same songsheet
  • We're all aligned
  • We have a group conscience
  • We are embalmed with glee
  • We're forming the success pyramid
  • We're all on message
  • We're out of the rough, on the green and sailing down the success-piste
And any others you can think of or make up.

So, how do we express this group delusion in a way which seems technical enough for the technical people to get, but is blunt and simple enough for not technical people to think they understand. The answer is Pseudo-ML.


This is a markup language that has its roots in UML in much the same way that cress has its roots in a tissue if you're growing it at primary school. Just as the cress has a short lifespan, so the sense of the Pseudo-ML diagram has a lifespan of the critical understanding time. This is defined as the entire duration of your explanation of the diagram plus the time it takes for you to leave the building. As soon as you've left, the understanding of the diagram and, indeed, any copies of it, will evaporate into an intangible mist, requiring you to come back and explain it all again, with the aid of surprisingly more (or less) complex diagrams, which will, themselves, have the same mystical powers.

Pseudo-ML uses many of the symbols from UML. In particular, there will be boxes, lines and pictures of documents and databases. However, the diagram will simultaneously be a class, state, object and use-case scenario. It will express everything and nothing about the problem, solution and goal of the project. In some cases, it may even express truisms about software engineering, like the fact that things should be tested, or that software should be good.

There are a few flavours of Pseudo-ML, but no two diagrams should be the same and you MUST make up your own notation, lest someone sees a similar diagram from someone else and starts to notice the inconsistencies. Some Pseudo-ML patterns:
  • Marke-tecture - an architecture expressed in such a way that marketing people understand it - this is clearly meaningless
  • Static dynamics - a diagram representing the momentary state of a changing system with the changes drawn all over it and indistinct information about what changes to what, from what, or how
  • Collaborative-elaboration - a high level diagram showing collaborators, covered in low-level detail about something completely unrelated - an equation can really set this off
  • Abstract ephemera - something which expresses a pattern incorrectly, without any substantial purpose and enough information to relate it to the subject in hand
  • Anti-pattern - something which claims to express the current system, why it's wrong and why it needs to be changed, without being accurate, meaningful or in any way useful
The possibilities are endless. Remembe a picture paints a 1000 words, so if you're paid by the word, you should definitely consider drawing more of them.


Post a Comment

<< Home