ARN: What is UML?
Norris: UML stands for "unified modelling language". It's a graphical language used to express aspects of software-intensive systems. It can be used for the design of any sort of system, but primarily it's software-intensive systems. UML provides the vocabulary to express the design, but the grammar rules are left open - that's what process is for.
How did UML come about?
It grew out of the Rational method. Twenty years ago, anyone supplying the US Government had to be CMM Level 4 [second highest level in the "capability maturity model", which measures the software development capability of an organisation]. People were just as interested in how we achieved that level as they were in the tool. It was informally known as the "Rational process", or the "Booch method", as it was invented by Grady Booch who was employee number three at Rational. Booch drew clouds to describe certain parts of the design process. In 1994 he was joined at Rational by James Rumbaugh from General Electric, who had invented Object Management Technique (OMT). It turned out Rumbaugh had been drawing rectangles to describe exactly the same thing as Booch with the clouds. They were joined by the third amigo, Ivar Jacobson, in 1995, who had developed Objectory. They decided to draw all the elements together and at least unify the vocabulary, even if they couldn't agree on the grammar. That's where UML came from.
How widely has it been adopted? Is it an industry-wide standard?
There are no quantifiable figures but it's rare to find a shop doing Web development that's not using UML. They are teaching it at universities. It's not a product, it's a universal standard. Previously there were 50 different methods proposed by our competitors but they reached consensus that UML was the way to go and their input was incorporated into the final version of UML. All the standards had the same meaning but different vocabulary. It was like knowing the works of Shakespeare in English, but needing to know them in Spanish. The nice thing was that everyone agreed to adopt UML before it was even standardised. It was accepted by the Object Management Group (OMG) in 1997 and the OMG has representatives from all different camps. UML is now driven by the OMG, not Rational. UML is not only industry-wide, it's cross-industry. It's built in such a way that you can extend it for different purposes. It is used for everything from Cochlea building bionic ears to BT doing funds transactions.
Why is it important?
People still face the same problems building software that they did 20 years ago, but the Web has exacerbated the problems. Time frames are no longer years but months or even weeks. It doesn't matter what language people code in. A graphic designer knows nothing about process but lots about the look and feel and functionality. Engineers know all about process but nothing about design. If you let either group build a Web site on their own you end up with a mess. Studies show the main reason for success or failure is communication, and that's why it's so important everyone speaks to same language.