Model Driven Development: Do it or you will be outsourced!
More and more IT jobs are being sent to India. Some of the best software technologists in the U.S. are Indian graduates of Stanford and MIT. They have built successful U.S. consulting organizations and have access to an unlimited number of Indian graduates of technology universities in India. They select only the best of Indian graduates who are better trained than the average American programmer and are employable at 1/10 the cost. Therefore, American programmers must find a way to be ten times as productive or they are history, except for managing outsourced projects and performing local maintainance. Yourdon took a lot of flak for comments like this in:
Yourden, Ed. The Decline and Fall of the American Programmer. Prentice Hall, 1993.
Yourdon wrote The Rise and Resurrection of the American Programmer in 1996 at the beginning of the dot.com era. The internet boom slowed down the rate of outsourcing until the dot.com bust. Now it is back with a vengeance.
The way out of this dilemma is Model Driven Development (MDD) and the Sep/Oct 2003 issue of IEEE Software is devoted to the topic. Steve Mellor, the model driven enthusiast among the authors of the Agile Manifesto, leads off with some recommended reading:
Mellor, Stephen et al. Model-Driven Development. IEEE Software 20:5:14-18, Sep/Oct 2003.
The current focus on Agile Development has deemphasized modeling tools. I've noticed (and this was confirmed by a lead architect for Rational recently) that the industry is moving more towards a visualization of the code base with less focus on building UML models which help to generate code.
Mellor argues that advances in knowledge, tools, and industry standards makes it possible to move up a level of abstraction and use UML, which is now computationally complete, to generate systems and to maintain the systems at the model level.
In 1994, I worked with a group of leading thinkers at the Object Management Group to start a movement towards model driven development. Initially this effort was in the Business Object Task Force and then moved to the OOAD Task Force with the adoption of UML as a standard. More recently, a Model Driven Architecture became a core program of the OMG. Much of the early history is documented in:
Sutherland, Jeff. Why I Love the OMG: The Emergence of a Business Object Component Architecture. ACM StandardView 6:1:4-13, 1998.
Rapid advances in chip technology have been driven by model driven development. The productivity increase in software development has not been signficant because we still write programs in 3rd generation languages, a technology going on 40 years old. When enough of the old way of doing things has been outsourced we may begin to see a change.