Thursday, April 08, 2004

Jim Rumbaugh of UML fame was appointed an IBM Distinguished Engineer this week...: "My role at IBM Rational revolves around UML, or Unified Modeling Language, the industry standard for specifying, visualizing, constructing, and documenting the artifacts of software systems. Going all the way back to my thesis work, I've focused on modeling. So it's probably not surprising that I think good engineering starts with understanding what you're doing, and then doing it in a systematic way -- as opposed to ad hoc practices that amount to making it up as you go. In other disciplines, it's taken for granted that engineers work systematically. They don't just go out and cobble together airplanes and bridges. They model them first, so they can work out problems before it gets costly to do so. Modeling is quite a simple idea, and the resistance to it among programmers is somewhat surprising. If you told a construction engineer that it was a waste of time for him to use blueprints and to go start banging on metal instead, he'd think you were nuts. But programmers do this all the time. It's not a very mature approach, and it's not the way we're going to create better software products.

Modeling starts with business concepts and works its way down. When you're all done you end up with an application. But when you first talk with your client you don't start by discussing what programming languages you'll use. That would be a sure way to lose them. The beauty of UML models is that even technically unsophisticated clients can understand them. And non-technical stakeholders can readily understand the inherent value of modeling: It gives the project team tools and techniques to ensure they're doing the right thing -- that is, building the system the client actually needs. With modeling, they'll be sure they have the right information flow, the right architecture, the right data structures, and the right algorithms -- before they start worrying about the details of the implementation. "

No comments: