Tackling outdated architecture standards, techniques, and tools
Blog: Capgemini CTO Blog
We are a group of Digital Architects at Capgemini. Our approach is tool-agnostic and addresses the full width of the Customer Experience landscape. The group consists of Hans van Rijs, Robin van den Hoven, David Salguero Kuiters, and Remco Stolp. Together, we address five architectural challenges for 2020 and beyond, in a series of blogs. The challenges we see are:
- Challenge 1: Increase in touchpoints and data
- Challenge 2: Manage a complex and dynamic ecosystem
- Challenge 3: Outdated standards, techniques, and tools
- Challenge 4: Work silos
- Challenge 5: Getting insight in both private and work domains.
In our blog series about challenges for architects in 2020 and beyond, this time we talk about challenge 3: outdated techniques and tools for architects.
In a world that is changing fast, becoming more complex and in which uncertainties are commonplace, being agile enables business to quickly adapt and flourish. To support this effectively, information systems also need to be adaptable. This is quite a challenge, since information systems and organizations are becoming more and more interconnected. They form ever-larger and more complex ecosystems that are constantly subject to change as well.
Modelling the increasingly complex and dynamic Information and Communication Technology (ICT) ecosystem
Today, architects are the linking pin in these changes, as they provide insight into changes, threats and opportunities, devise scenarios, and guide change in the organization and technology.
In doing so, architects use models: simplified representations of reality that provide insight and guide organizational change and software development. The larger and more complex and dynamic the ecosystems become, the more difficult it gets to make usable models without ending up at a too abstract level or in a tangled web of details. The pace at which the models have to be adjusted is also very high. It is becoming an increasing challenge for architects to create usable models and keep them updated and valuable.
Are the standards, tools and technologies available to the architect still adequate?
While software and business (eco) systems are constantly changing, both in structure and behavior, architecture models, provide a relatively static description of reality. This was to be expected, since tools and techniques that architects use date partly from the 1990s when software systems and organizations were relatively static, monolithic and self-contained. Moreover, architects were less specialized and they also spoke the same “language.”
Nowadays, multiple domains and specialists are often involved; each working in their own teams, with their own modeling standards, techniques, and models. Those are perfectly usable within their own domain, but do not always connect well with models and languages in other domains. User stories don’t always match business process models, and different languages, such as Archimate and UML don’t always mesh seamlessly. This causes that the relationship between different models become vague and coherent holistic insight is more and more difficult to obtain.
As a result, a proverbial Babylonian speech confusion could arise, frustrating cooperation between specialists and teams and eventually hindering the organization’s agility. In an agile environment, on the other hand, it is paramount to have good insight into the whole as the single source of truth.
It is crucial for an organization to have a complete and holistic view of both the customer and the architectural landscape, across organizational and systems boundaries, to ensure that the user’s needs can be met quickly and effectively.
What does it take to tackle these challenges effectively?
Back to the basics…
It is the architect’s role to design system and organizational structures and monitor their implementation. An architect provides insight, directs, communicates, and investigates. Models and views play a central role in this. They provide insight into context, structure, behavior, production, information concepts, infrastructure, and help keeping track of changes.
Since mapping the whole world is impossible, we must limit our models to the essentials:
- Describing “boundaries” that are relevant to architectural and business decisions. Boundaries between organizations, process, applications, systems, but also boundaries in the form of capacity, performance, costs and deviations from design and implementation standards.
- Provide clear and easily understandable insights (views) to different stakeholders with different backgrounds and different interests. An architect must be able to speak the language of his stakeholders and at the same time start from a model that provides a sufficient basis for thorough insight in all domains.
- Different levels of abstraction: you should be able to use a model as a map to navigate from high-level business goals to code.
Models and views are a means of communication in which different insights should be clearly and unambiguously recorded and on which everyone involved can work, in their own way, with their favorite tools.
Agile is all about adding the right business value at the right time. Therefore, decisions are no longer made in advance, but throughout the entire process. This way, progressive insights can be included just in time and business value of the products stays optimal. Alternative scenarios must be evaluated continuously, in close cooperation with specialist teams and stakeholders. This requires a complete, continuously up-to-date, and shared architecture model as the only source of truth on which scenarios can be explored and decisions can be made on time.
To achieve optimal business value efficiently, the software production process itself also plays an important role. Continuous optimization of this process, is therefore also an important responsibility of the architect. This requires continuous up-to-date insight in the software production process, and constantly measuring and adjusting efficiency.
Sharing architecture models using a common language
Architecture models can already be exchanged between tools by exporting and importing them in XMI (XML Metadata Interchange). Unfortunately, there are currently several incompatibilities between different implementations of XMI from modeling tool vendors. Also, to really collaborate on models across different domains, in real time, we need more than just an export/import format. We need some kind of common language in which architectures can be expressed. Linked Data and the underlying RDF format could be used for that. RDF allows to describe and reuse concepts that can be semantically related to each other to construct a model, and by extension, to relate the structure and meaning of different models to each other. As concepts in RDF have URIs as identifiers, models can be shared accross different domains, paving the way for analyses with scopes broader than we usually see. Linked Data also easily allows storing models and (operational) data together in the same format and establishes a graph paradigm, which makes it possible to query a highly connected data structure, by which its quality can be monitored. Just like code, the quality of architecture models should be tested on a continous basis.
Modeling dynamics: simulations
Modelling the dynamic behavior of an architecture, evaluating scenarios, estimating performance and costs is very laborious, if not impossible, in an agile context. Simulation can help with this. This is already possible on a limited scale in modern architecture platforms, but with a shared architecture model, simulation could be used across domains.
Your own digital twin: modeling the own organization as part of the architecture
To optimize insight into your own software production process is of increasing importance. A simulation, or digital twin of the production process, provides more insight into the realization and impact of changes and can help to optimize this production process.
Working online: the new normal?
In recent months, due to the corona crisis, many organizations have been forced to work online. It is anticipated that much of this online collaboration will remain and become the new standard. It is therefore important to anticipate and to optimize collaboration and modelling platforms for working online. Existing online collaboration platforms can be extended for this purpose with specific tools.
Summary and conclusions
With the new challenges for architects, current standards, methods and techniques have partly lost their effectiveness. To cope with the greatly increased complexity, dynamics and agile way of working, these must evolve as well.
Continuously sharable and updated models, simulations, insight into the own production process, and online collaboration platforms can help with this.
We can learn a lot from other fields that are more mature in this, such as structural engineering and mechanical engineering. Open standards for shareable models, simulations, and calculating models are things that have been common there for many years.
As ICT architects, we still have a lot to learn!