Development of Capability Driven Development Methodology: Experiences and Recommendations Janis Stirna, Jelena Zdravkovic, Janis Grabis, Kurt Sandkuhl
Outline Objectives of the paper Requirements and principles of CDD method development Overview to Capability Driven Development (CDD) Experiences Meta-model development Method component development Tool development Conclusions Based on EU FP7 project CaaS Capability as a Service in digital enterprises
Objectives of the paper to report on the process that led to development of the CDD methodology, to share the experiences of method development, and to formulate a set of guidelines for development of EM methods.
Setting and approach EU project, 3 years, 10 partners The approach followed the principles of Design Science Research Iterative and incremental Use case-driven Design artefact 1: CDD Methodology Design artefact 2: CDD Environment Three design-evaluation cycles with the use case companies
User goals for the CDD methodology G-1. To increase value of business services supports G-3. To provide efficient development methodology supports G-8. To have a capability management lifecycle supports supports G-10. To design capabilities G-9. To capability delivery adjustment supports supports supports supports supports supports supports G-27. To identify capability metrics G-26. To customize services according to context G-25. To reuse existing components and best practices G-10. To design capabilities G-21. To monitor context G-20. To monitor process execution G-19. To meet performance and SLA requirements
CDD Method Development Principles Should not develop a single methodology mandatory for all business cases but a reference methodology and pathways from this reference methodology to proprietary methodologies All types of models should be based on the same meta-model The (reference) methodology should not be a monolithic block but component-oriented in order to allow flexible use of selected method components depending on the intentions an organization has and a particular development situation. Integration of existing methods or method components should be given preference before substituting them with new. To be supported by the CDD Environment, a part of which is the Capability Design Tool (CDT) implemented in Eclipse. 6
Approach Method Components What is the purpose? What is important? Purpose What roles are needed? Who asks and responds? Overview How do the method components relate? Forms of cooperation What steps have to be taken? What questions to ask? Procedure Method Component How to capture and document the answers? Notation Structure of description: Name of the method component theme (in the section heading) Purpose and a brief introduction, if necessary Important concepts Notation Procedure Concepts Method components are aggregate Based on Goldkuhl et al. [1994]
CDD Methodology is a fully developed methodology consisting of: 1) Modeling product: formal definition of how to document the knowledge included in the model. Modeling language and notation. 2) Modeling process: description of the way of working in order to arrive at modeling product of adequate quality 3) Transformation algorithms: formal definitions of manipulations with model elements 4) Tool support: for automating model representation and the way of working with the model 8
CDD Method components (MC) and method extensions (ME) Final version of the CDD methodology (iteration 3) ME Predictive context analysis ME Method Acquisition & Adoption ME Evolutionary Development of Business Information Exchange Capability ME Strategic Capability Modeling ME Capacity analysis ME for BPO ME Local & global optimization ME for SOA and PMO ME for MDD of CDA ME Capability Relationship Analysis MC Getting Started MC Capability Design MC Enterprise Modeling MC Context Modeling MC - Runtime delivery Adjustments MC - Reuse of Capability Design More at http://caas-project.eu/cdd-methodology/ Regular methodology (iteration 2) Base methodology (iteration 1)
CDD methodology artifacts DESIGN RUN-TIME Enterprise Modeling Capability Design Context Modeling Adjustment Algorithms FEEDBACK Context Monitoring Run-time delivery adjustments Pattern creation and use
Product dimensions of the CDD methodology conceptual meta-model a capability is the ability and capacity that enable an enterprise to achieve a business goal in a certain context.
Development of the meta-model Developed iteratively Validated with use case work Textual descriptions provided clarifications Meta-model used throughout the project
Method components and integration with the existing components Structure method into components Consider competence of the method and tool development team Assess the suitability of existing method components Components with similar modeling languages and notations should be considered for the inclusion Consider tool implementation, e.g. available components, ease of use
Several meta-models used in parallel Core meta-model: for high level reasoning and discussions 1 CDD::Pattern CDD and 4EM integrated meta-model Goals Model (GM) 1 -from 1 GM::BinaryRelationship -to 0.. -of 1 BinaryRelationshipType -name -to CDD::CapabilitySupportedBy GM::Constraint GM::IntentionalComponent CDD::Capability -from CDD::CapabilityRelationship CDD::CapabilityInfluences 1 1.. GM::Opportunity -to 1 -is_cause_for 1.. GM::Problem CDD::CapabilityRequiresEnd CDD::CapabilityRequires -to 1 0.. -is_cause_for -has_cause GM::Goal -topgoal GM::OperationalizationRelationship CDD::Indicator -has_cause GM::Cause GM::Weakness GM::Threat 1 0..1 0.. 1 1.. -from-subgoal 0.. 0.. BPM::Process CDD::Context Set CM::Modeling Component IM:GoalMotivatesEnd -to -to 1 IM:Goal Refers To IM:: Goal Motivates IM:Goal Relationshiop 1 -of SymbolicRelationshipType -name -symbol -consists of 1.. CDD::ContextElementRange 1 1 ARM::ModelComponent BRM:Business Rule BPM::Process TCRM::ModelingComponent pp 1 -to CDD::KPI CDD:ContextElement 1 1.. Language meta-model: for tool development Full meta-model: for development of method components and extensions
Development of the CDD environment Use the language meta-model for tool development Include in the meta-model components that are not modeled in a traditional way, such as for runtime data, adjustments Consider that the meta-model will be used even outside the modeling tool Use cloud based tools and services to support deployment
Concluding remarks Capability integrates various dimensions of the model, as well as design and run-time Many method components and method extensions used the same meta-model The iterative and incremental way of developing ensured relevance A lot of fun developing (if one likes method development)
Additional reading http://caas-project.eu/ Thanks!