M1 Global Solutions
Model Driven Software Development and Offshore Outsourcing
Date: November 2004
Industry: Software development
Company Name: M1 Global Solutions
Contact: M1 Global Solutions
Object Management Group
M1 Global's core business is providing tools, infrastructure, and people that enable enterprise operations to be run more effectively and efficiently either on the customer's premise or outsourced to M1. M1 Global provides software and services designed for optimizing processes involving multi-channel interactions (Web, voice, self-service, collaboration, email) for companies of any size. To support those efforts, it has developed tools for data and business process management. The tools are used by industry specific solution providers and internal organizations to create custom business process management solutions. Customers include contact centers, financial services companies, government, and other multi-interaction channel, process centric industries.
M1 Global was founded in November 2003 by a team of business process and interaction management experts. This team of experts conceived an application to revolutionize the way businesses interact with customers, suppliers, and partners. The application would overlay a transactional infrastructure facilitating all "customer" (customer, supplier, partner, employee) interactions. Furthermore, the vision included supporting and coordinating those multi-media interaction channels within the software application, a significant undertaking. The vision was BIG; the software development project was even bigger.
When the team set out to determine a go-to-market strategy they realized that the multi-media interaction channel infrastructure would take 12 months to build. That meant a software beta had to be in the marketplace within that period.
In addition to the time constraints, the team also had to reduce the amount of capital needed to fund the development of the software product in order to conserve enough capital to develop the multi-media interaction channel infrastructure. Finding an efficient development methodology, affordable tools and low-cost, high-quality technical resources became paramount.
Faced with a limited budget and a short time-to-market requirement, M1 Global chose the following solution for the software development project. First, they would employ Model Driven Architecture (r) (MDA(r)) during the design phase of the project. MDA is a way to organize and manage enterprise architectures supported by automated tools and services for both defining the models and facilitating transformations between different model types. This enabled the M1 Global process experts to encapsulate their intellectual property ("The BIG Idea") into a platform independent model (PIM) of the application. The model represented exactly what the software application would do regardless of the complexity of the application architecture. The model provided a high degree of confidence for both the development organization and the "business experts" that the application would be built exactly to the requirements defined by the team and expressed in the model. Additionally, based on the platform independence of the model, the intellectual property is not tied to a given technology but rather to the business logic. Thus, the application behavior captured in the model outlasts rapid changes in application architecture.
"Modeling has long been viewed as a viable and efficient way to create high-quality,
adaptable applications that more closely align to business objectives."
- Steve McClure, research vice president of the Software Research Group at IDC.
Having chosen MDA as the foundation for application development methodology, M1 Global had to find a toolset for development. Having chosen to build on J2EE, Eclipse was an easy choice for the IDE. The team chose the Model-driven Development Environment (MDE), an MDA plug-in to Eclipse. MDE is a complete MDA toolset offering UML modeling and model transformation technology.
MDE worked because of its simplicity. Typical modeling techniques model an application's implementation. These other techniques require a model element for each element in the implementation. This would have resulted in a complex model, cluttered with technical detail. Implementation models are difficult to understand and maintain, and their usefulness is questionable. That is why so few model their software before they build it. In fact, M1 found MDE so empowering that they became the primary sponsors of the MDE open source initiative and now host the servers for the MDE project and for MDE downloads.
MDE facilitates modeling what the application does, not how it is built. It created a specification model. By capturing the bare essentials of what the application did, not how it is implemented, the specification model was fast to create and easy to maintain. Developing with MDE provided clear benefits to modeling first, implementing last, and a real reason to use UML. M1 Global did not need to write any code before they knew what the application was supposed to do.
An additional benefit of MDE is that it provided automatic code generation capabilities by way of MetaPrograms. A MetaProgram is a program that takes the model as input and generates a high percentage of the implementation code, leaving a small remainder of the code to be manually created. This time saving was critical in meeting the aggressive project deadlines.
"It is exactly M1 Global's amazingly successful outcome of implementing an MDA solution that OMG has been proclaiming since announcing our MDA initiative in 2001. This is one among many MDA case studies that continue to prove that the time-savings and cost savings are very real," said Richard Soley, Chairman and CEO, Object Management Group.
The next step was to determine how to address the high-cost of software development resources. M1 Global opted to use an offshore team to turn the model into code. The team had used offshore development services before but never had found a way to ensure that the communication between the onshore and offshore teams would be consistent. The cost added by the communication overhead offset much of the promised savings of offshore development. The model provided this communication vehicle. Using UML(r) as the "common language" each team was able to effectively create and revise the requirements throughout the project, even though they spoke different languages.
"The communication channels never broke down. Our guys would model what was to be built. The offshore team would then build exactly what was modeled. The time savings of the model driven approach, combined with the cost saving of offshore development, enabled us to succeed in what looked like an impossible undertaking in terms of scope and time-to-market" - David Zygmont, Chief Technology Officer, M1 Global Solutions.
M1 Global built an application using MDA, MDE and offshore development resources with impressive results.
The R&D expense for the software project was $1,007,354. M1 Global was able to realize a cost saving of $7,500 per month per offshore development resource. Given that this was a large scale project, M1 had an average team size of 20 offshore resources over the 12 month period. The low cost of the offshore resources resulted in a net savings of over $1,200,000 over the life of the project. That was just the resource cost, the MDA approach brought about another significant benefit illustrated in the following table.
|HAND WRITTEN LOC||COST/ LOC||TIME||TOTAL COST||PERCENT SAVINGS|
|Traditional U.S. Based Development||177,963||$ 34.83||32 Months||$ 6,198,812||N/A|
|With MDE||65,457||$ 34.83||12 Months||$ 2,280,000||272%|
|With MDE and Offshore||65,457||$ 5.66||12 Months||$ 1,007,354||615%|
The MDA approach and the MDE tool increased developer productivity by over 50 percent. The team's final productivity for the period was 177,963 optimized quality source lines of code (LOC) for an application that totaled 161 unique screens and 45 tables. With an iterative development process the team had actually produced over 3x that number of LOC throughout the project.
Using MDE, the team generated 112,506 LOC or just over 63 percent of the final implementation. This meant the hand written LOC in the final version were 65,457 and at a cost of $5.66 per hand written LOC, the benefits of model driven development where clear. Without it, it would have taken the same team over 32 months to complete the same work that was accomplished in 12 months. The total cost would have exceeded $6 million. The combination of MDA, MDE and offshore resources saved M1 over $5 million in development costs and reduced time to market by over 62%.