=Paper= {{Paper |id=Vol-1717/paper3 |storemode=property |title=None |pdfUrl=https://ceur-ws.org/Vol-1717/paper3.pdf |volume=Vol-1717 }} ==None== https://ceur-ws.org/Vol-1717/paper3.pdf
                         Scaling up MDE to Support
                           Large Geographically
                           Distributed Teams - An
                             Experience Report

                                            Vinay Kulkarni
                               Tata Consultancy Services Research, India
                                       vinay.vkulkarni@tcs.com

                                               Abstract
We have been using model-driven techniques for developing large business applications for more
than 20 years. Large business applications are typically implemented using a distributed architecture
consisting of a GUI layer, middleware, service logic and database. We devised a specification-driven
approach wherein specifications abstract out implementation-level details that can be filled in later
through code generation.

A large application requires several sub-teams performing specialized tasks such as creating analysis
models, refining analysis models with design details, specifying business logic, transforming models
and business logic to code, testing the implementation, deploying into the desired deployment set-
up etc. These sub-teams need to share a unified view of the models in order to ensure that different
models are consistent with each other. We developed a centralized multi-user repository for storing
models to enable multiple teams to work off a common model. However, this enforces everyone to
be in lock-step thus sacrificing flexibility in development. To balance this concern, we developed a
component abstraction to support the notions of private and public workspaces, and devised a
protocol for synchronizing them. Large outsourced projects typically have an onsite and an offshore
development team. To achieve scale-up, we replicated the repository at each site. This places an
additional requirement on repository synchronization that was addressed by enhancing the
workspace synchronization protocol.

Large software development engagements are typically delivered in phases where each phase
constitutes a well-defined baseline in the project lifecycle. Even after final delivery the software
system continues to evolve in response to multiple change drivers such as technology advance,
regulatory changes, business process reengineering etc. To address this need, we developed a
robust and comprehensive versioning and configuration management capability for models.

In many business applications it is critical to have short turn-around times for changes – especially in
the maintenance phase. This requires all development / maintenance processes to be change-driven
i.e. effort required to implement a change should be proportional to the size of the change. We
engineered our MDE processes and tools supporting them to be incremental in nature.

Our experience shows that it is essential to have a robust multi-user repository with an integrated
versioning and configuration management capability that understands model semantics to scale up
MDE to the demands of enterprise systems. An efficient means for change management is also a
must.