Saturday, July 14, 2007

Why MDD Works (Part 1)?

When I started Intelliun in 1999, I wanted to develop a radically new programming paradigm that allows a large number of developers to concurrently and independently build small applications. These applications can be quickly assembled to solve large and complex problems including business/enterprise, scientific and even mobile applications. In a matter of fact, the name Intelliun stood for INTELLIgent UNiverse, which is the environment to run intellets (i.e. small units of intelligence).

I remember I was reading "Crossing the Chasm" by Geoffrey A. Moore, and one of the things it warns against is starting a business that introduces a paradigm shift. I did agree with the rational, and I had another idea I also wanted to develop anyway. That idea was MDD (didn't use the term at the time though). I figured it would be much easier to promote and gain traction with MDD, but to my surprise, that was not the case.

Around the middle of 2000, at JavaOne, we introduced VE 2.0 beta, our first public release of The Virtual Enterprise. The conference was a blast! We got a lot of interest and intrigue and generated many leads…after all we were still at the height of the dot com bubble. Following up on those leads, however, was a different story.

Managers and business people loved us. We are demonstrating a technology that will radically cut their development time and cost, and help reduce their pain of hiring more highly scarce developers. Even ones that came up through the technical ladder were very impressed. I remember flying to NY with our VP of Sales and meeting with a director at Lockheed Martin that we were introduced to by a visitor to our booth at JavaOne. He brought in his chief architect, who was an older gentleman with many years of experience and the gray hair to prove it. I still remember the look on his face when he walked into the room.

Here this little kid that is going to tell us how to develop software better. After all, he has seen it all, from punch cards to CASE tools to this new Java thing. Nevertheless, he patiently sat down and went through the presentation and the demo. At the end of the demo, he was so impressed that he stood up and shook my hand with both hands. He saw enough to accept that it can be done and that it was different.

Developers, on the other hand, hated us. We got significant skepticism and push back, some because of job security and fear of change, but the majority was out of the lack of understanding. It seemed to them like a major leap from how they're developing applications, and even if it worked, it will only be able to handle simple applications.

What I would like to do in the next couple of entries is to explain MDD from my point of view and demonstrate how it is really an incremental improvement and not a radical departure on current software development practices.

No comments: