Abstract
We discuss our experience of introducing MDA approach, supported by our MDA toolset, in an IT consultancy and software development services organization. Initially, our MDA toolset provided a set of modeling notations for specifying different layers of an enterprise application and a set of code generators that transform these models into platform-specific implementations. In spite of considerable amount of code being generated, it didn't translate into commensurate productivity gain over the entire development lifecycle of large projects. What was missing was support for collaborative development. Providing suitable abstractions and tool support for a collaboration-based development method improved the situation considerably. Enterprise product lines and large development projects benefited the most resulting in improved productivity, better code quality, platform independence and easier change management. However, the steep learning curve and inadequate debugging support for models were significant hurdles. Small to medium sized projects found this MDA approach too heavy and restrictive, and preferred a flexible and lightweight meta-data driven aspect-oriented approach. Our experience suggests that MDA will find greater acceptance if complimented with well-defined and flexible methodologies that support collaborative development.