Way back before software lived in the cloud and “agile” was just an adjective for fast, Grady Booch, Ivar Jacobsen, and James Rumbaugh set forth onto the world a new way of modeling software called the Unified Modeling Language. Originally released as part of the Rational Unified Process, the model’s diagrams lived beyond the popularity of the process itself to reach near ubiquity in the software industry. Component, Class, State, and the always popular Sequence diagrams became the way architects and software engineers described their ideas before the first developer clicked “File->New”.
The next phase of evolution for UML diagrams was code generation and it’s here where things started to awry. Many software tool manufacturers including Microsoft, Sparx Systems, Rational, and others tried to bridge the gap between bidirectional diagram-to-code generation with limited success. In many cases the code generated was overdone, with literally dozens of near empty classes being generated. Others didn’t do enough or were “Write Only” models where diagrams couldn’t accurately reflect changes in the underlying code.
As the Internet tidal wave crashed down on the industry bringing with it a need for high speed development and continuous delivery new methodologies started to form like Agile (with a capital A), XP, and Scrum all of which favored code over documentation. It seems that the world now speaks in code snippets and GitHub repositories. Online interactive code samples hosted on sites like JSFiddle and CodePen bring your expression of ideas as code to a global public audience.
We want to hear what you think! Is UML still a valuable tool or just another artifact left in the wake of an industry that is pushing to always go faster?