Agile: from Drawing to MBSE/Enterprise Models with SPEM? (Last update 13/12/2018)
Dr Nicolas Figay, HDR
Let's prepare and build the continuous operational Interoperability supporting end to end digital collaboration
Introduction: about agile approaches
Time pressure, uncertain context and some negative experiences?for traditional Waterfall model approach are at the origin of the current success for adopting Agile (cf. the Agile Manifesto ) approaches and practices .
However it is important to point out that such approaches are not accurate for all kind of projects and systems, and that they came with?some?Strengh but also with some Weaknesses as well. It is also to be pointed out that?some other processes also addresse the issues associated to Waterfall, such as Open Up (a compromise between RUP and agile) or Spiral model (cf. next figure).
If considering the Scrum approach (which is one of the most popular today), it should be considered that it concerns small projects in terms of duration and team size.
It implies to create a multidisciplin team involving developers but also users with a high availiblity, if possible co-located and adopting an iterative way for developing and deploying and capturing users'?feedback.
With such approach, the Minimum Viable Product (cf. previous figure) is delivered very quick and then continuously enriched through capture and prioritization of requirements and associated tasks to perform.
But how to deal with complex products or organizations, with many projects and Scrum teams?
Such question is at the origin of emerging agile methodologies at scale, such as LeSS (Large Scale Scrum), DAD (Disciplined Agile Delivery) or?SAFe (Scaled?Agile Framework). A more complete landscape of Agile is provided in the next figure.
When having to defined their internal agile processes, based on one or several of those methodologies, the enterprises will have the choose between:
Also, different approaches can be adopted concerning how to deal with documentation:
... knowing that many agile developers do prefer the first one, putting the priority on quick delivery. Does it mean that adopting agile in enterprises mean forgetting documentation and model driven approaches?
This article explores these questions. In particular, it explores if and how engineering processes, agile and not agile, can be modeled and aggregated, taking advantage of SPEM (Software & Systems Process Engineering Metamodel 2.0, OMG' specification) and including model based development. As model based development and agile approaches are not anymore restricted to software development, but also System Engineering, the realized exploration also includes Agile for MBSE. Finally, "Agile at scale" being to be considered at the scale of enterprises, Enterprise Modeling as a way to govern the evolution of the Information System in alignment with Enterprise's objectives and strategy is also considered.
The first part introduces SPEM and some tools allowing to use it, with underlying expected capabilities (Eclipse Process Framework - EPF - and Sparx' Enterprise Architect) and usage sample.
Then the second part explores how SPEM can be used - or not - for capturing SCRUM. As phases, iterations and milestones seem to be the engineering process items which are the most problematic, it is also studied in this part if and how other agile methodology at scale consider them.
The third part illustrates experimentation of capturing an agile methodology with SPEM, EPF and EA.
Then the conclusion presents some lessons learnt from the experimentation described in the third part, and then lists a set of questions which arose when making the survey about Agile:
For all these questions, some information are reflected concerning the state of the art and the state of the practice, with many external references.
Dedicated articles will be proposed very soon addressing each of these questions.
1 -Modeling a process with SPEM
Many process modeling languages exist, being standardized (BPMN , XPDL , SPEM ...) or not. Why some many languages, including standardized ones? In fact, those languages were created for many different usages and needs.
SPEM was created in order to support the following use cases:
It comes with an implementation of reference, the Eclipse Process Framework (EPF ), with illustrates usage of SPEM and demonstrates the ability to customized and enact processes using different configurations.
With the specifications comes a SPEM UML profile, for usage with UML modeling environment, but also a MOF metamodel for usage for Domain Specific Language supporting environments.
SPEM provides structuring elements:
Considering classification of modeling constructs used with ArchiMate (Active, Passive, Behavioural), we can consider that we have:
If considering all the concepts defined in SPEM, about xxx concepts are defined. I derived an OWL ontology from SPEM (as I made it for ArchiMate ) in order to make it easier to have an overview of all what is defined in SPEM. It can also be a way for linking SPEM models in modeling environments with other data hosted by other applications.
It was also needed to clarify SPEM constructs which are structuring physically the model (packages, containments) in order to ensure it is appropriately used for collaborative modeling by distributed teams. If the question doesn't arise when using EPF, which already made some choices with predefined and frozen structure, it is less obvious when using a UML modeling environment, which gives more freedom. However, it is important to agree on a commonly agreed structure in order to facilitate collaborative modeling. My choice was to be as closed as possible to the one proposed by EPF, with some adaptation (when needed) resulting from the way SPEM is implemented/supported by the used solution. The following figure illustrates what could be an agreed structure for a team having to deal with a shared library within an organisation. Let's notice that, as standard SPEM Guidance categories are not part of the SPEM profile used by Sparx's Enterprise Architect. So my choice was to create a dedicated package for each and to create guidance instances.
In order to ensure the good usage of SPEM with the selected modeling environment, it was needed to have a look at the specifications (in order to ensure the whole alignment with the specification - or eventually capturing if something missing or different) and at EPF, in order to have a good idea of the service to be provided for supporting modularisation, tailoring and publishing of selected configurations. Such study allowed to point out potential restrictions in terms of expected functionnalities for supporting SPEM use cases when using UML modelling environment with a simple SPEM profile. Also, it allowed to find opportunities for additional functionnalities or alternative ways for publishing processes and manage them in configuration.
Finally, I also studied the different published processes, being by the SPEM community (SCRUM, XP, UP) but also at the outside. In particular, I identified an online model of the TOGAF 9.1 at the APG (A Process Group) website. ATPL demonstrates that SPEM can be used for a whole and complete methodology, and for tailoring enterprise processes combining several processes.
I was then ready to attempt modelling Agile processes with SPEM.
2- Modelling Agile process with SPEM
I first considered how SCRUM is usually described in the documents of reference for the methodology. One of the ressource of reference is the SCRUM Guides web site .?Looking at the description of SCRUM,?I?identified that the terms "phase", "milestone", "activity" or "task" are not used.?Used terms are "scrum", "backlog", "sprint", "iteration"?and "work". How then to model SCRUM?with EPF (EPF being a metamodel, so a language for modeling a methodology)??
I had then a look at SCRUM model proposed on the EPF web site, in order to see how they addressed the problem. In this model,??only tasks are defined. No?phases, no milestones, no activities. Also, the role of architect is not considered.
It is difficult, considering enteprise processes for project management, to imagine that no phases and no milestones will be defined. It is also difficult to envisage what could be the role of an architect (solution, system, enterprise) when using SCRUM.?So?I researched on the web the term "SCRUM" combined with "lifecycle", "milestone", "phase" or "architect". The main links I obtained are pointing on?resources related to?LeSS, Spotify , DAD?or SAFe. For those, SCRUM approach is one of the building block, completed with complementary processes, arfacts to be produced and tools. In fact, most of the time, we have kind of hybrid approaches combining SCRUM projects with more traditional (or not) approaches related to the project management practices.
SAFe introduces a set of original concepts: "Train", "Epic" or "Value Stream", and requires definition of a vision plus the identification of the artifacts to produce. Several architect roles exist, being for solutions, systems or enterprise. SAFe?doesn't use phases, but makes a specific?usage of milestones which are progress milestones and Program Increments:
"Milestones are used to track progress toward a specific goal or event. There are three types of SAFe milestones: Program Increment (PI), fixed-date, and learning milestones".
"Milestones mark specific progress points on the development timeline, and they can be invaluable in measuring and monitoring the evolution and risk of a program. In the past, many progress milestones were based on phase-gate activities. In SAFe, however, progress milestones are better indicated by the fixed cadence of Iterations and Program Increments (PIs)".
In LeSS, different scrums run in parallel. No definition of phases or milestones.
With the Spotify approach , the focus is put on the autonomy.motivation and trust. Multiple and frequent decouples releases of functionalities are to be produced by tribes, organised in squads, and relying on guilds (a matrix organisation)/. The product owner should play the role of architect, without being in an ivory tower. Let's note that some Spotify can be combined with SAFe, as demonstrated by AXA .
DAD proposes some principles which complement those of the Agile Manifesto. In particular, the Enterprise Awareness is considered as important.
Enterprise Awareness is considered as important
In DAD, phases are proposed, with different lifecycle models (cf. previous figure) to be used according to the kind of project. DAD is one of the less disruptive agile approach concerning traditionnal projects, as the proposed lifecycle proposed are closely related to Project Management best practices.
SCRUM is not adapted to all the projects, and sometimes other alternative approaches could be more suited: Unified Process, Spiral, etc. Also, approaches defined for System Engineering and MBSE will have to be considered. Experimentation times are coming, for which different approaches will be combined and tailored in order to suite the needs of each organization. It could be sometimes complicated. It is the reason why I think Computer Aided Process design, plus easy and systematic enactment, are quite important. I think it should not rely on documents (too difficult to maintain and to manage) but on models. SPEM looks accurate for modelling processes, but also for combining legacy processes from different disciplines, as illustrated by what is proposed by APG: combination of TOGAF with other processes, such as the UP (cf. figure below).
After building such an overview of agile processes at scale and of SPEM capabiliites, it is then possible to start modelling and making some proposals for modelling agile approaches at scale with SPEM.
3 -Some proposed models (section to be extended)
Some models have been produced, using both Enterprise Architect and EPF (next figure), in order to gain some experience and in order to identify potential pain points or difficulties.
Some phases and milestones were defined.?It was preferred to use phases, milestones and iterations at the upper level of the process definition. If willing to define milestones at a lower level, for iterations, it is something that can be envisaged. Unfortunately, scrum iterations should cover several phases in one iteration, including deployment, usage and feedback, starting from the minimum viable product. So do we have preliminary phases before reaching the minimum viable products? Also, how do end a project? With decommissioning?
It should be considered that a SCRUM project may have a duration corresponding to the life duration of an application. So it means it could be very long, but it is notaligned with the SCRUM philosophy (which requires sort projects with whole availibitity of the members of the agile team), or that complementary process are to be considered (for maintenance and evolution). So the proposed model is not necessarily the perfect one, it is just an illustration of what can be produced relying on SPEM, knowing that each organisation (and project during the tayloring exercice) will have to define their own and make it evolve, with?the continuous improvement effort associated to total quality.
Conclusion: lessons learnt and next steps
Lessons learnt
Studying the different agile processes at scale and producing some agile process models in SPEM allowed?learning some lessons:
Q1- Role of architects and usage of models?
The first question which arise is how to introduce the roles of architects in such processes and how to introduce practices related to usage of modeling tools they can rely on, such as ArchiMate/UML/SysML?modeling environments for enterprise architects defining the Enterprise continuum, solution continuum and architecture continuum (as defined by TOGAF)?
The question of the role of Architects for Agile was also centric at the Enterprise Architecture Day. For many enterprises which initiate the journey for becoming agile, such as AXA, the approaches are mainly document centric, and the question of using modelling is just arising, with ArchiMate being a candidate. Modelling approaches relying on UML are considered as too complex. However, for complex Information Systems and considering the complexity of applications which rely on several technological layers and are implemented using several languages, an architectural referential should be highly valuable for global consistency. The overall architecture can't be reflected only in the code. So introduction of Model based approaches will probably be something that will be addressed in the future, after discovering risks induced by a weakly formalised and governed architecture.
It should also be pointed out that thedivergence that exists concerning usage of models or not in agile approache is not new, and that many past and present approaches are considering the role of architecture, architects and modeling, in particular in order to support extension of the Agile Manifesto in order to be less development centric (cf. The Disciplined agile manifesto and Scaling Agile series )
领英推荐
Very few of these articles are presenting concrete cases, with usage of modeling languages, and the way modeling should be effectively practiced is, even with SPEM modeling, remains very often under-described. How to deal with that is the purpose of the next question.
Q2- Closer link between SPEM and Model Based Approaches?
The second question which arise is about the link with model based approaches (relying on ArchiMate, OWL, UML, SysML, etc.) and SPEM. Most of the time, processes created with SPEM are document centric, and some templates are referenced which are document template. How to proceed if adopting a model based approach??How to qualify the different model artifacts to be produced and validate them? Is it also possible to create model templates, which will guide the architect teams in order producing easily consistent sets of models?
Not so much is available on the Web, I found:
It should also be considered that not only Software Engineers, but also System Engineers are working on proposing agile MBSE approaches, as illustrated by the presentation "Introduction to the Agile System Engineering Life Cycle MBSE pattern " by Bill Schindele and Rick Dove at INCOSE in July 2016. Will some processes more model based oriented will emerge from the MBSE community? (also let's have a look at the Agile SE Working Group activities at INCOSE ). An important principle pointed out by this communities the following:
Tools are useful, but can be a hindrance as well. The tool needs to support and encourage the right behaviour.?They can never be a substitute for good processes, people or culture
However it doesn't prevent to be Computer Aided. Should we come back to the paper area?
Geoff Shuebrook pointed out the PHD work of Bruce Powel Douglass, about Agile MBSE practices (aMBSE) and related to IBM Harmony. It illustrates a very recent usage of SPEM, which is used for describing aMBSE microcycles and nanocycle, by means of SPEM activities and iterations. It includes usage of executable UML for simulation. It illustrates potential usage of SPEM for Agile combined with MBSE. It also comes with a deep analysis of agile principles and on when and how it can fit with MBSE.
In all cases, I think that an important value of SPEM is to point out that what are not the used languages and tools, but the clear definition of model artefacts and the consequently, as an artefact is a something concrete that can be delivered, the ability to split a model physically. It is the purpose of some of my articles and papers related to complex systems of systems, with the need to distinguished composite models of a system, and model of a composite system. For agile at scale, with several teams working on a part of the information system, the composability of models is very important if willing to take advantage of Model Based approach and cross team collaboration. Let's note it can be achieved only with a distributed graph (so some limitation of ontology and linked data ). UML/MDA modeling platforms are more and more mature concerning the ability to master complexity and work/responsability distribution.
Q3 - How can Agile be used with Product Life cycle Management and Digitalisation approaches?
A fist approach could be to make development of PLM open standards more agile, as well as their assessment (cf. SIP) and the dynamic aggregation of partners processes and SI (cf. IMAGINE). The two projects allowed to provide a Proof of Concept and a Proof of Value for combining virtualisation and modelling technologies. The approach extends devops approaches, considering not only development and operations, but also design, all this being made iteratively and taking advantage of CAD/PLM approaches with libraries of components which is regularly updated and extended. It also consider the scale of multiple enterprises working on a same product (Dynamic Manufacturing Network), with a target the establishment of digital continuity over the partners and over the time at an acceptable price (no disruption but mastered continuous evolution).
Such approach can be very effective even for deployment on several applications supporting the different System Engineering processes and Business Processes,
An interesting presentation was also made by Paul Empringham (PI): "Can Agile Methodology Deliver Successful PLM Projects?"?In the Paul's presentation, it appears that adopting agile for some PLM artefacts (e.g. new workflow) seems to be of a particular interest. Some are still subject to Waterfall.?The proposed approach is also an hybrid one.
Many questions also arise concerning the usage of Digital Thread, being a simple SysML model as experimented by Whirlpool, or digital twins which are impacting the traditional V cycle as proposed by Boeing. If not directly sold as "Agile" approaches, it should not be forgotten that Computer Aided approaches relying on models always aimed at reducing the cycles of development of a product.
So it questions agile approaches focussing only on the produced code.
Q4 - Considering new life cycle models for circular economy?
Also, how to adapt the enterprise to the emerging challenges such as circular economy, with products having several life, and consequently more interactions and needs for sharing data about the products within the digital business ecosystem? The enterprise continuum will not be sufficient anymore. End to end connectivity, as the future target according to CIMDATA (next figure), will have to consider digital manufacturing networks. Engineering processes will have to be considered within the context of a complex system of systems, and with a set of circular processes which will hate to be made consistent.
So probably new life cycle models to consider as the context of Agile processes such as SCRUM or XP. Is it suited?
Q5- Is the Agile manifesto acceptable and sufficient?
There were many reactions concerning this articles. Some with strong reactions concerning incompatibility of usage of Engineering Process Modelling, or Modelling, with the Agile principles as stated in the manifesto. Some other reactions were about considering that what is the most important is a required change of mindset, with a better focus on users (I don't think that most of professional people had ever lost this focus but I agree with the principle consisting in considering all the concerns users, actors and stakeholders).
In the reverse, some already try to define hybrid processes and even are rejecting the Agile Manifesto and proposing new more accurate Manifesto.
Within the agile community, I identified interesting resources in french "Agile : Controverses et reflexions " (Agile: controversies and thinking) and in english "The Decline and Fall of Agile ", pointing out some controversy related to how and when Agile is applied (or misapplied), and potential incomplete coverage of needs by SCRUM or XP. An interesting response is given in "Agile: de A à Z ". On other controversy is related to the fact that some agile practitioners consider that the ultimate - and the only model to consider - is the code itself. The code is the model . Some people disagree. You can papers here .
I think being aware of such controversies and reactions is important in order to efficiently deal with strengths and weaknesses of agile, considering both opportunities and risks which are associated.
Let's consider both strengths and weaknesses of agile, identifying both opportunities and risks which are associated
Q6- What is the impact of uncertainty and variability concerning success of Agile (and is it sufficient for addressing it)?
The growing pace of change for Information and Communication Technologies and Internet Landscape, as well as approaches related to VUCA (Volatility, Uncertainty, Complexity and Ambiguity) could also explain the motivation of enteprises for Agility. More reactivity is needed in order to face quick obsolescence of adopted solutions, and for being able to have some Return on Investments on what is developped. So the duration of cycles have to be reduced but ROI is to be ensured. But does it reduce complexity? Agile approach always recommand to make the things simple, but complexity is not related to the system a project want to deliver, but from the multiplicity of systems which are produced and constitute the Information System. Not sure agile allows reducing such a complexity, as illustrated by the following diagram illustrating how efficiency can decrease over the time, when the debt is growing.
So can Agile address such issue, without relying on architects and being model driven?
Q7- What are the condition failure for Agile at scale, and can always the enterprise apply it?
Adopting Agile approaches comes with some constraint, in terms of colocation and resources availibility and engagement. For big companies, with geographically distributed workers which are involved in several projects at the same time, is it really possible to work only on SCRUM mode? And also, how to manage allocation of budget and control it appropriately? After an important investment on virtualisation of enterprises, it is not so sure that Agile is always possible, without some adaptations. What should it be?
Q8 - How should be addressed Continuous Integration and how does it impact agile software process engineering?
In huge enterprises with many SCRUM team, the question of Continuous Integration arises, with as a constraint the need for configuration management, testing and integration platforms for the support of the teams. But how and when is the choice made? Is it included within the scope of each SCRUM team, or should it be done at an upper level, creating some pre-requisites for the SCRUM projects being able to run? So may be we have to come back to more traditional approaches related to system engineering in order to address it, with the need to consider different life-cycle phases.
Addressing these questions will be the subject of future articles of the series. Let's follow, and don't hesitate to share experience, ideas, opinions and ideas.
Some references
Thinking systems, designing systems
5 年This is interesting.? I would love to read more about your modeling attempt. Did you experience any difficulties working with EPF or with Enterprise Architect to implement SPEM other than the few mentioned? Do you feel like they both cover (comply with) the SPEM specification? Did you use some of the SPEM mechanisms designed for "Agile" support, such as "Process Component" (I did not find any mention of it in your article. Why is that?)? why did you use the specific modeling presentations and not others? how do you feel about the use of lists such as the work breakdown structure to represent the process in context of model-based design? is it really better than using diagrams for practical purposes (as hinted by the SPEM v.2 specification)? I've so many other questions to ask, as I've investigated the SPEM specification myself for quite some time now, but lets start with these :-)
Solution Architect | Technology Consultant | IT Manager
5 年Good to read ??????
Better data, better decision!
5 年This article shows incomplete understanding of agile and how it was intended to be used. Just because you have a hammer, don't complain why all the problems are not nails!
Architect ? Digital Transformation ? Microservices ? SOA ? Methodologist ? Practitioner
6 年I was engaged in PoC of EA with Agile and had used tool Sparx EA. IMO product development should have upfront architecture and design. This is very important to analyse enterprise needs, fulfil of business requirement and clear picture of road map. Design, architecture and other architectural artefacts (i.e. traceability matrix, gap analysis, etc.) provides better understanding and comfort level to different stakeholders. Architecture is about find reusable asset, best practice, fool proof design, and all these activities require holistic view of the enterprise while Agile allows limited view of tasks. We have done upfront architecture with help of Zachman frameworks which allow keep system model and keep complexity aside and then slice down whole “To Be model (architecture/design)” into story/epic and then developed through Agile and Scrum methodology. In the Zachman EA Framework, first three rows are for architect, 4th row for designer 5th row for engineer, expert and developer. So if we develop the artefacts of the corresponding cells of first two row and all the cells of 6th column means we are doing architecture upfront. Once architecture develop then we can sliced as per Sprint need, capability and then start designing activity and then development activity with separate and serial sprint.
Ex-Member of Parliament Candidate | GDSN | Enterprise Architect | Standards
6 年This is amazingly good review. Learned so many things