At Capgemini The Netherlands we’ve developed an agile software development platform that captures and combines a large number of practices into a high-speed high-quality software factory. This platform is called the Accelerated Delivery Platform (ADP)
. It is targeted at increasing both productivity and quality of software development at Capgemini and its customers mainly in Java and .NET, but it will encapsulate more technology as we go along, such as SharePoint and business intelligence.
Overview Accelerated Delivery Platform
The Accelerated Delivery Platform includes an agile project lifecycle, pragmatic modeling guidelines, estimation techniques, dashboards, model driven techniques, frameworks, training and coaching.
The ADP captures and combines a number of accelerators, such as:
- Agile lifecycle. Projects use an agile lifecycle called Smart, that captures best practices from XP, Scrum and Rational Unified Process. Smart has already been proven and used in the Netherlands and Belgium for about 8 years and uses smart use cases as the main unit of estimation, planning, development, code generation, testing and even deployment.
- Unified modeling. Highly standardized business process, use case and domain modeling, independent of tools. However, in most projects we prefer to use Enterprise Architect. The ADP also offers default reference models and UML profiles for Enterprise Architect.
- Smart use cases. An important innovation on requirements modeling that the team has been working on about 8 years. This techniques delivers smaller and equally granular use cases to software development. We use smart use cases not only for requirements, but also for unit of work and estimation, planning, and we generate user interface specs, test scenarios and code (e.g. ASP.NET web forms) from it.
- Smart estimation. A pragmatic and easy to apply estimation technique bases on smart use cases. Can be applied without elaborate training (there is a half-day course available). Metrics are available from many projects. Also, we identify about 20-25 standard types of smart use cases, to smoothen software estimation and later in the project software development. To give an idea on the velocity in ADP projects: recently a project was delivered at 3.5 hours per smart use case point (about 2.6 hours per function point).
- Agile dashboards. Projects employ a straightforward online dashboarding technique, in line with smart use cases. Next, we employ burn down chart to monitor project progress. Off course, the Agile Dashboard is produced using the platform itself (at a speed of about 2.0 hours per smart use case point; about 1.5 hours per function point).
- Model driven architecture. We generate many deliverables from mostly the domain models and the smart use cases, such as estimations (.XLS), test scenarios and UI specifications (.DOC) and off course, lots of code. For regular smart use cases we can generate up to 100%, throughout the different architectural layers. We have developed a highly stable code generator called Tobago MDA. We are focused to work on a new implementation using Microsoft's DSL technology, preferably in close collaboration with Microsoft’s DSL team. We are looking into the possibilities for integrated DSL's on smart use cases, UI, domain model, transfer objects and services.
- Reference architecture. An important tool towards reuse and easy maintenance is applying a standard reference architecture to all ADP software development projects. There are three straightforward variations to this architecture; for database oriented, service consuming and service delivering software. This allows us to re-use components from delivered projects.
- Frameworks. A highly flexible framework is available for for ADP.NET called the Accelerated Delivery Framework (or ADF). This framework employs many services, such as logging, database connectivity, error handling, business rule validation, use case navigation, binding and persistence, multi-linguality, etc. All services are plugged-in to our applications using dependency injection. This allows us to employ other open source or Microsoft components. Off course, the ADF implement services to support our reference architectures to the max.
- Community. The ADP is available in a open source like manner to projects and customers without additional charges. We aim to collaborate with our customers and support them in using the platform by performing coaching and training. We are currently building up a wiki, FAQ’s, forums, and other services to facilitate the community. Capgemini executes projects using the services of the Accelerated Delivery Platform, and companies in the Netherlands and Belgium are using the ADP for their own software development.
- Learning. Extensive learning capabilities are delivered by Capgemini Academy. Academy is capable of training the basic skills, including object-oriented analysis and design, C# and ASP.NET. A number of specialized workshops and trainings for the ADP also is available, on agile software development (0.5 days) estimation and planning (0.5 days), modeling with UML (2 days), software architecture and patterns (1 day), modeling and generating with Enterprise Architect and Tobago MDA (1 day), hands-on labs on developing with ADP in .NET (1 or 2 days).