Ich freue mich sehr, bei der TDWI 2019 als Sprecher dabei sein zu dürfen. Es ist die erste Teilnahme bei der TDWI und ich bin sehr gespannt auf viele interessante Vorträge zu Themen rund um Data, Analytics, AI etc. Der Vortrag ist zusammen mit meinem Kollegen Dominik Rost und Joshua Vecsei von Caruso.
Plattformökonomie verändert die Zusammenarbeit von Unternehmen geschäftlich, rechtlich und technisch, insbesondere wenn das ausgetauschte Gut auch Daten mit Personenbezug sein können. Wir berichten zu Herausforderungen und Lösungsansätzen zur rechtmäßigen Datenverarbeitung, u.a. Consent Handling, aus dem Aufbau der B2B-Datenplattform Caruso. Neben den rechtlichen Vorgaben (GDPR) müssen unterschiedlichste Anforderungen der Partner berücksichtigt werden, z.B. hinsichtlich Anonymität von Datenverarbeitern zum Schutz von Geschäftsgeheimnissen.
Die Sicherstellung der Rechtmäßigkeit der Datenverarbeitung ist eine essenzielle Aufgabe bei der Entwicklung jedes Systems, das personenbezogene Daten verarbeitet, insbesondere seit Inkrafttreten der Europäischen Datenschutz-Grundverordnung (DSGVO). Ohne entsprechende Lösungskonzepte kann das System seine Aufgabe nicht erfüllen oder es drohen empfindliche Strafen für die Unternehmen. Architekten, die Systeme entwickeln, sind also in den meisten Fällen irgendwann mit dieser Aufgabe konfrontiert. Die Erarbeitung solcher Lösungen bedeutet häufig eine Auseinandersetzung mit der rechtlichen Materie und intensive Zusammenarbeit mit Anwälten und Datenschützern. Diese Aufgabe wird noch herausfordernder in softwarebasierten Ökosystemen, in denen viele Partner zusammenkommen und durch verschiedene Beiträge voneinander profitieren.
Wir bauen seit zwei Jahren die B2B-Datenplattform Caruso auf, in der verschiedene Unternehmen effizient Daten aus der Automobildomäne austauschen können, insbesondere kann mit Zustimmung des Fahrzeugnutzers ein Zugriff auf Telematikdaten für Dienstleister ermöglicht werden. Die Sicherstellung der Rechtmäßigkeit der Verarbeitung personenbezogener Daten für die Plattform, aber auch für alle Partner ist dabei von zentraler Bedeutung. Wir haben dafür unterschiedliche Lösungsansätze entworfen und hinsichtlich unterschiedlichster Anforderungen der Partner technisch und rechtlich bewertet.
In diesem Vortrag möchten wir unsere Ergebnisse mit interessierten Architekten, Entwicklern und Entscheidern teilen. Dafür führen wir zwar einige Grundbegriffe der DSGVO ein, fokussieren uns aber auf das Design der technischen Lösungsansätze. Diese diskutieren wir anhand von illustrativen Beispielen, mit ihren Vor- und Nachteilen. Die Teilnehmer erhalten so einen Werkzeugkasten zur Umsetzung der rechtmäßigen Verarbeitung personenbezogener Daten in ihren eigenen Systemen.
Der Vortrag berichtet aus der Zusammenarbeit zwischen der Caruso Dataplace GmbH und Fraunhofer IESE. Wir werden auch gemeinsam bei der TDWI den Vortrag halten: Dominik Rost, ich und Joshua Vecsei.
Wir freuen uns auf eine spannende Konferenz und viele interessante Diskussionen und tiefgehenden Austausch. Hier geht es zum vollständigen Konferenzprogramm.
Die SATURN 2019 findet dieses Jahr in Pittsburgh statt, der Heimatstadt des SEI. Das Programm ist wieder voller Highlights für Softwarearchitekten. Ich freue mich sehr, auch mit einem Vortrag dabei sein zu dürfen.
The epoch of the platform economy has arrived. Companies face the question of how to build up disruptive digital services with disruptive business models and establish a digital ecosystem. This is a challenge requiring a strong interplay of business and technical experts. There is a clear lack of methodological and documentation support to master the complexity of many cross-company relationships like flows of exchanged assets, data flows, money flows, or legal contracts. Reasoning, designing, and documenting the user experience and the architecture of such digital ecosystems needs an end-to-end perspective on the resulting digital ecosystem and a strongly integrated approach of user experience design and architecture design.
In this talk, we introduce the “Tangible Ecosystem Design” method, which we developed after experiencing the pain described above in several projects. Its main aspects are tangible modeling elements based on toy figures and toy vehicles and a strong guidance through certain canvases to build on. The talk reports on the experiences from supporting numerous industrial customers with the method in designing their digital services and discusses how the architect’s role broadens in the platform economy.
Am 10. und 11. Oktober findet in München The Architecture Gathering 2018 statt. Letztes Jahr war die Veranstaltung ein voller Erfolg mit vielen Teilnehmern, hochkarätigen Sprechern und tollen Vorträgen. Dieses Jahr sind wir auch wieder mit einem Vortrag dabei und freuen uns schon sehr auf die Veranstaltung:
Daten, das neue Öl aus und um Autos: Architektur-Erfahrungen aus dem Aufbau der Datenplattform Caruso und der Initiierung eines digitalen Ökosystems
Digitaler Wandel ist in aller Munde und doch oft ein abstrakter Begriff. Wir erläutern die Rolle der Architektur an einem ganz konkreten und realen Beispiel: dem Startup Caruso Dataplace, das einen B2B-Datenmarktplatz für Telematikdaten aus Fahrzeugen und weitere Daten rund um Fahrzeuge aufbaut und ein digitales Ökosystem aus Datenanbietern und –konsumenten ins Leben rief. Das offene Ökosystem umfasst z.B. Fahrzeughersteller, Teilehersteller, Werkstätten, Zulieferer, Logistiker, Versicherungen, Teilehändler und Dienstleistern.Wir berichten von der Arbeit der Architekten im Spannungsfeld von Geschäftsmodellen, Technologien und Recht eines entstehenden Ökosystems. Wir teilen Erfahrungen und Erkenntnisse darüber, was Architekturarbeit bei der Initiierung von digitalen Ökosystemen und Plattformen besonders herausfordernd macht und wie wir zentrale Aspekte gelöst haben. Kernherausforderungen sind z.B. Offenheit bei gleichzeitiger Sicherheit und Vertrauen sowie hohe Attraktivität für Partner bei gleichzeitig einfachem Eintritt ins Ökosystem.
Der Vortrag wird gehalten von Matthias Naab und Ulrich Keil (CTO, Caruso GmbH).
Bei der ICSA 2018 in Seattle werden Matthias Naab und Dominik Rost vertreten sein. Am 01.05. halten sie ein Tutorial zur Bewertung von Softwarearchitekturen und am 02.05. einen Vortrag zu Erfahrungen aus dem Aufbau eines Digitalen Ökosystems.
How to Evaluate Software Architectures: Tutorial on Practical Insights on Architecture Evaluation Projects with Industrial Customers
Hier die offizielle Ankündigung und Beschreibung:
„Thorough and continuous architecting is the key to overall success in software engineering, and architecture evaluation is a crucial part of it. This tutorial presents a pragmatic architecture evaluation approach and insights gained from its application in more than 75 projects with industrial customers in the past decade. It presents context factors, empirical data, and example cases, as well as lessons learned on mitigating the risk of change through architecture evaluation.
By providing comprehensive answers to many typical questions and discussing lessons learned, the tutorial allows the audience to not only learn how to conduct architecture evaluations and interpret its results, but also to become aware of risks such as false conclusions, manipulating data, and unsound lines of argument.
The target audience includes both practitioners and researchers. It encourages practitioners to conduct architecture evaluations. At the same time, it offers researchers insights into industrial architecture evaluations, which can inspire future research directions.“
„Software-based ecosystems comprise multiple software systems developed by a multitude of organizations. They are on the one hand technically integrated, often via a dedicated platform forming the center of the ecosystem. On the other hand, the organizations and their systems interact in a way that provides (business) benefits for all participants and leads to new forms of businesses. The ecosystem platform is typically defined, developed and operated by the ecosystem initiator. In the past two years, we have been working on the initiation of an ecosystem and the development of a platform for the automotive aftermarket: a data and service marketplace. As core contributions in this paper, we share the experiences and lessons learned from the early phases from an architect’s point of view. As a background, we first describe our key architecture drivers, the current state of the architecture, and how architecture work is performed. We experienced a substantially extended scope for ecosystem architects, working on the overall ecosystem and the platform. Especially in the beginning, architects have to live with a high degree of uncertainty and fuzziness and have to help shaping and aligning business, technical, and legal aspects. Besides these key insights, we share lessons learned in the following categories: Requirements and Priorities, Architecture and Architecture Work, Platform Releases and Time-to-Market, Partners, Communication, Learning from other Ecosystems.“
Die AccsoCon ist die interne Konferenz der Firma Accso zu aktuellen Themen in der IT. Am 16.03.2018 fand die Konferenz zum Thema „Digitalisierung“ statt. Matthias Naab vom Fraunhofer IESE war als Sprecher mit einem Vortrag zu Digitalen Ökosystemen und Plattformen dabei. Er illustrierte neue Erkenntnisse am Beispiel des B2B Daten- und Servicemarktplatzes Caruso Dataplace.
Die AccsoCon bot ein sehr vielfältiges, interessantes und unterhaltsames Programm, das ich hier nochmal kurz Revue passieren lassen möchte. Ich freue mich, als Sprecher dabei gewesen zu sein und konnte alle Vorträge und viele spannende Diskussionen genießen.
Die Accso-Mitarbeiter waren auch auf Twitter sehr aktiv, so kann man auch nochmal die Highlights der Konferenz nachverfolgen: #accsocon und @accso.
Sören Kewenig Digitalisierung
Sören Kewenig führte zielgenau auf das Thema hin, indem er für verschiedene Branchen beleuchtete, was Digitalisierung dort aktuell bedeutet (Mobilität, Produktion, Finanzwesen, …).
Kim Lauenroth Der Digital Designer als neuer Partner für den Softwarearchitekten
Kim Lauenroth ordnete detaillierter ein, wie man den Begriff „Digitalisierung“ differenzieren kann: Digitale Produkte, Digitale Prozesse, Digitale Geschäftsmodelle … leider gibt der deutsche Begriff Digitalisierung diese Unterscheidung nicht her.
Dann postulierte er das neue Rollenideal des Digital Designers, der notwendige Kompetenzen für die Gestaltung von Software-basierten Systemen bündelt und technischen Rollen des Software Engineering gegenüber gestellt ist. Er bemühte dafür insbesondere den Vergleich mit Architekten und Bauingenieuren.
Er prangerte an, dass die Informatik in der Ausbildung zu undifferenziert ist und setzt sich dafür ein, einen Ausbildungsweg zum Digital Designer zu etablieren.
Alexander Culum Driving Blockchain Adoption: The Challenges ahead
Alexander Culum positionierte die Blockchain als allgegenwärtigen Protagonisten, wenn über Digitalisierung gesprochen wird. In erfrischender Art betonte er, dass die Blockchain eben nicht die Lösung für alles ist, auch wenn der Begriff reflexartig in den Ring geworfen wird. Er differenzierte geschickt und erklärte fortgeschrittene Anwendungsszenarien und technische Eigenschaften und Implikationen der Blockchain.
Eric Wilde API-Economy: Who is in the Driver’s Seat?
Eric Wilde befasste sich mit der API-Economy. Seine Haupt-Message:
„Es geht nicht einfach darum, APIs zu monetarisieren, sondern es geht um Geschäftsmodelle, die Services und Inhalte über geeignete APIs den Kunden zur Verfügung stellen.“
Matthias Naab Caruso: Ökosystem und Plattform
Ich hielt einen Vortrag zum Thema Digitale Ökosysteme und Plattformen. Am Beispiel unseres Kunden Caruso Dataplace konnte ich viele Erfahrungen illustrieren und eine angeregte Diskussion initiieren. Der Vortrag gab einen Überblick über folgende Themen:
Einordnung von Digitalisierung, Digitaler Transformation, Plattformen, Ökosysteme
Was sind die Ideen hinter Caruso: Geschäftlich, technologisch, rechtlich?
Wie sieht das Caruso-Ökosystem, die Partnerlandschaft und die Plattform aus?
Welche Arten von Plattformen gibt es in der Branche und wie stehen diese in Bezug zu Caruso?
Erfahrungen aus dem Aufbau des Ökosystems und der Plattform
Matthias Naab führt die Themen des #accsocon-Tages – Digtiale Transformation, API-Economy und die Rolle(n) des IT-Architekten am konkreten Beispiel eines Service-Ökosystems zusammen pic.twitter.com/353vHrzbQD
Gunter Dueck hielt einen mitreißenden Vortrag, in dem er sarkastisch IT, deutsche Unternehmen, den aktuellen Stand der Digitalisierung, Management-Strategien und vieles weitere beleuchtete.
Er appelierte, Verantwortung zu übernehmen, einfach zu machen, schwachsinniges Vorgehen zu ignorieren und damit einen echten Beitrag zum Standort Deutschland und seiner Digitalisierung zu leisten.
Am 29. Juni findet in Köln der Bitkom Arbeitskreis Softwarearchitektur in Köln statt. Thema ist: „Microservices: Das neue Instrument für große Orchester“. Ich bin mit einem Vortrag zum Thema Modularität und Microservices mit dabei und freue mich auf spannende und kontroverse Diskussionen zum aktuell hoch gehandelten Thema Microservices.
Modularität: Schon immer gewollt und selten erreicht – Sind Microservices und Self-Contained Systems der Durchbruch?
Modularität war schon das erklärte Ziel, als noch niemand von Softwarearchitektur sprach. Daran hat sich bis heute nichts geändert und aufgrund der stetig wachsenden Größe von Software wird Modularität immer noch wichtiger, um Herr der Lage zu bleiben. Trotzdem hat man in der Praxis selten das Gefühl, dass Modularität wirklich erreicht wurde oder gar dauerhaft erhalten bleibt. Microservices und Self-Contained Systems sind nun die aktuellsten Paradigmen, die Modularität versprechen. Dieser Vortrag blickt auf zahlreiche Entwicklungs- und Renovierungsprojekte zurück, in denen auf Modularität hingearbeitet wurde. Er nimmt Modularität, die Ziele dahinter und die Probleme bei der Erreichung unter die Lupe. Microservices und Self-Contained Systems verdienen dabei als jüngste Hoffnungsträger hinsichtlich Modularität besondere Beachtung.
Shorter times for delivering new software products and updated versions are more and more common. Higher speed can provide substantial business value, but only if adequate quality can be delivered. In this article, we explain how the need for speed impacts your software’s quality requirements and why development time and operation quality requirements need strong improvement. Guidelines outline the areas where investment is needed to make high quality happen at short time-to-market. Finally, we will discuss applicable factors for significantly reducing release times.
Some years ago, it was quite normal to deliver a new release once or twice a year, or in even longer intervals. Today, updates are often released many times a week, sometimes even every few seconds. Internet companies are clearly the leaders of fast releases (e.g., Amazon made changes to production on average every 11.6 seconds in 2011, and many Google services are released several times a week, but more traditional companies like car manufacturers delivering safety-relevant products are following suit (e.g., Volvo cars).
When we say short time-to-market, we actually mean two things, but the focus is on the second one (because it is more challenging):
Delivering the first release within a short time between project start and first release
Delivering frequent subsequent updated releases within short times between start of increment and release
The key reason for short time-to-market is getting value earlier:
Customers can use your new features earlier – you can earn money earlier
You are on the market faster than your competitors – you can earn more money
You get faster feedback – you can further improve the software product or implement new feature requests from customers
You provide small updates instead of large ones – you can reduce the risk of providing the wrong software and you can reduce friction in development
This motivation to achieve shorter time-to-market is clearly business-driven (as it aims at providing business value), it is no end in itself, and you have to clearly identify the objectives to be achieved. Jan Bosch states this in drastic terms:
“No efficiency improvement will outperform cycle time reduction.”
On the other hand, short time-to-market should normally not cannibalize the quality of the software system. High quality is important to convince customers of the value of the software product. Throwing a new product or release onto the market without proper quality assurance, documentation, etc. can speed up time-to-market, but it is not sustainable at all and thus not in the focus of this article (although it might be the right thing to do in exceptional cases).
Optimizing either delivery time or quality is challenging in itself. High quality at short time-to-market (HQ@STTM) is even more challenging, and not every company benefits equally from high-frequency releases, or would have to change too many things so that the investment would not be worth the benefit. So you should start asking the following questions, describing your goals:
What are the key reasons in your market and for your product to release it with short time-to-market?
What is a reasonable time-to-market that you want to achieve?
What is the level of quality that should not be affected?
These business-related questions have to be answered roughly first, followed by technical and organizational questions aimed at realizing the identified goals and checking the feasibility of achieving these goals. Many new questions emerge when striving towards shorter time-to-market, e.g.:
What does an efficient release process look like for you?
What architecture do you need?
What is the necessary infrastructure you have to provide?
What is a reasonable team structure you have to create?
What tools support your fast delivery?
In this blog article, we will give answers to the following questions about HQ@STTM:
Why is HQ@STTM of any value at all? (see above)
What exactly does high quality mean in this context?
Where and how to invest for HQ@STTM?
What is the applicability of HQ@STTM?
The following figure illustrates the answers and the transition towards HQ@STTM.
What exactly does high quality mean in this context?
The key reason why we build software is the functionality it realizes. However, only if this functionality comes with an adequate level of quality in the software is it actually useful. When we talk about HQ@STTM, we need a more precise understanding of high quality and thus distinguish four categories of quality characteristics of a software product (see Figure 1):
The focus in development organizations is often on functionality, absence of bugs, and runtime qualities. This is quite natural because these quality characteristics are directly visible to the customer, while devtime quality and operation quality rather serve the development organization (in particular if it also operates the software). This is also backed by the ISTQB Worldwide Testing Practice Report from 2015 ), which revealed a focus on runtime qualities, such as performance, usability, or security.
If we talk about HQ@STTM, high quality thus also means absence of bugs and runtime quality. However, in order to be able to deliver these quality characteristics with high speed, it becomes inevitable to also increase devtime quality and operation quality!
Devtime quality is necessary to allow making additions and changes quickly (maintainability, extensibility, flexibility, …) and testing the changes with a high level of confidence within a reasonable period of time (which necessarily implies a large degree of automated testing).
Operation quality is necessary to enable reliable and fast releases with a high degree of automation and to quickly react to potential failures of the newly released software.
That is, the goal is to deliver absence of bugs and runtime quality to the customer, and the means for realizing this is to invest in devtime quality and operation quality. As functionality is available earlier, a slightly reduced amount of functionality might even be acceptable. Due to the ability to correct problems much faster than before, a bit more tolerance for bugs might exist. Figure 1 depicts this relationship. It is very important that all the people in a development organization have a clear picture of these different characteristics of quality and how they will change when they strive for more speed.
Where and how to invest regarding HQ@STTM?
HQ@STTM does not come for free. It is clearly a business value and a competitive advantage, and thus it is obvious that investments are needed. The previous section already pointed out two areas of quality that need strong improvement in order to realize HQ@STTM: devtime quality attributes and operation quality attributes.
In this section, we will broaden the view on areas of investment. We have identified four high-level areas that require investments in order to make HQ@STTM happen:
Culture / Organization: The people in the development organization have to be fully aware that fast releases have value and that everyone has to contribute. Changes to the organizational structure might be necessary to empower people to develop and release fast.
Architecture: The architecture of the software has to strongly support fast releases, that is, in particular the realization of development time and operation quality attributes (e.g., updateability, recoverability, testability, …) while maintaining the runtime quality attributes (e.g., performance, user experience, security, availability, …) at the same time.
Tools / Automation: Automation is key for fast releases with high quality: Only if quality assurance, build, and release are highly automated and reliable can releases be made with high confidence at high frequency.
Processes: Processes have to focus on full end-to-end coverage, from ideation of new features to putting them into production with low friction and delay.
The four areas that require investment are connected and overlap. In the following, we will provide more concrete topics and guidelines, which mostly touch several of these areas. (Take continuous delivery, for example: For continuous delivery, the software architecture has to cope with fast integration and deployment, and a full process needs to be defined with a high degree of automation.)
Concrete topics and guidelines supporting HQ@STTM:
Focus on customer and business value:
Focus on building the right software system that serves your customers and provides the highest value for your business.
Build as little as necessary; building less takes less time.
Consistently prioritize in requirements engineering.
Incorporate early feedback and data to enable continuous adjustment.
Focus on innovation and differentiation, use common features where possible:
Do not reinvent the wheel; do not invest your time into things that are already there.
Focus on the things that make your product and your business unique.
Use cloud-based technologies where possible.
Continuously renew: What is innovation today may be a common feature tomorrow.
Optimize release capability
Introduce continuous delivery, integration, and deployment for (partially) automated, and thus faster, releases.
Adopt DevOps practices; they aim at assuring smooth interplay between development and operation throughout the release step.
Design for updateability: provide the ability to run different software product versions; use effective API version management; migrate data; etc.
Modularize software to enable independent releases of features and software parts: Microservices are an architectural style that proposes many decisions supporting decoupled development and releases.
Make teams responsible for the development, release, and operation of their modules and create the ability to release independently (respect Conway’s law concerning the organizational structure).
Invest into high quality:
Do quality assurance early to avoid going in the wrong direction (prototyping, architecture evaluation, …).
Try out concepts and features early with a strong customer focus.
Design for high testability and, in particular, for a high degree of automated testing.
Design for robustness: provide the ability to keep failures local and to recover quickly in the case of failures.
Establish a culture of making even good things better over time.
Make the overall development organization agile
Establish a culture of speed and fast decisions.
Follow agile development principles and be responsive.
Utilize data to improve business and software
Perform A/B tests, for example, to get early feedback about alternative features and about the quality by gradually delivering the software to the customers.
Ask your users for (anonymous) feedback, respectively collect data from log files.
What is the applicability of HQ@STTM?
We believe that HQ@STTM will become more relevant for many industries and companies, as it offers a strong ability to create business value. HQ@STTM is nothing that can be bought out of the box. Rather, it is a deliberate business decision that comes with many consequences, changes, and investments. To make it happen, the company developing the software has to strongly adapt and invest into the areas of Culture/Organization, Architecture, Tools/Automation, and Processes.
The concrete manifestation differs from company to company, starting with different releases cycles and ending with the specific technologies being used. Such particular environmental factors have to be considered during the definition of a concrete migration and improvement strategy.
The following aspects have an impact on the applicability and the concrete definitions of HQ@STTM:
Adherence to quality standards and certifications: Whether high release cycles are possible can be determined by regulations concerning quality assurance and certification.
Customer expectations and ability to create value: Only if regular and fast updates are perceived to be accepted by customers and can result in business value are the investments into HQ@STTM justified.
Status of existing software: The age and overall quality of your software (in particular devtime quality and operation quality) have an impact on whether it is advisable to invest in HQ@STTM for the current software (or rather do it for a successor).
Control over execution environment: Companies offering software-as-a-service (SaaS) have the advantage that they have good control over the execution environment, while companies offering physical goods like cars might have to update their software in millions of hardware instances. However, even there, things might change as network capabilities are greatly improving, allowing more and more functions to be moved to a cloud-based environment.
If you want to move towards HQ@STTM, you should ask the following questions when you start your journey:
What does “high quality” mean for you? How do you interpret “short” in terms of time-to-market?
What is the respective improvement in value that you expect to gain?
What does this direction mean for your organization, your processes, your architecture, and your tools?
Which topics make the most sense to you to start with?
You should keep in mind that this is all about the balance between high quality and fast delivery, and you have to consider both and find the right balance. This means that it is about acceptable quality and acceptable release frequency. The guidelines presented in this article point out aspects to reason about, to prioritize, and to start introducing. They are deliberately not presented as a migration roadmap because your transition to HQ@STTM will be individual and thus requires your own individual migration roadmap.
Recommended literature for further reading:
Jan Bosch, „Speed, Data, and Ecosystems: Excelling in a Software-Driven World“
Len Bass, Ingo Weber, Liming Zhu „DevOps: A Software Architect’s Perspective“
„Thorough and continuous architecting is the key to overall success in software engineering, and architecture evaluation is a crucial part of it. This tutorial presents a pragmatic architecture evaluation approach and insights gained from its application in more than 75 projects with industrial customers in the past decade. It presents context factors, empirical data, and example cases, as well as lessons learned on mitigating the risk of change through architecture evaluation.
By providing comprehensive answers to many typical questions and discussing lessons learned, the tutorial allows the audience to not only learn how to conduct architecture evaluations and interpret its results, but also to become aware of risks such as false conclusions, manipulating data, and unsound lines of argument.
The target audience includes both practitioners and researchers. It encourages practitioners to conduct architecture evaluations. At the same time, it offers researchers insights into industrial architecture evaluations, which can inspire future research directions.“
Die Rolle des Softwarearchitekten wird je nach Unternehmen sehr unterschiedlich interpretiert und durch die jeweiligen Menschen noch unterschiedlicher ausgefüllt. Deshalb gibt es auch nicht DEN Softwarearchitekten.
Im Gegensatz zu anderen Rollen im Softwareengineering scheint jedoch die Bandbreite der unterschiedlichen Interpretationen viel größer zu sein. Deshalb verwundert es nicht, dass es zahlreiche Analogien aus anderen Bereichen gibt, um den Softwarearchitekten, das unbekannte Wesen, etwas greifbarer zu machen. In vielen Präsentationen zu Softwarearchitektur sieht man immer wieder solche Analogien. Gregor Hohpe und Rebecca Whirfs-Brock haben mich mit ihren Vorträgen bei der OOP 2017 inspiriert, eine (sicherlich unvollständige) Aufstellung von Charakterisierungen zu machen.
Architekt als Generalplaner: Der Architekt plant alles ganz genau voraus und macht dann den Entwicklern klare Vorgaben bezüglich der Umsetzung. Er ist als einzelne Instanz, die über die Integrität des Gesamtsystems wacht, unabdingbar. (Siehe Martin Fowler, Architectus Reloadus)
Architekt als Gärtner: Der Architekt gibt Leitplanken vor, wie ein Gärtner einen Garten strukturiert. Darin wächst dann alles eigenständig und der Architekt beobachtet den Fortschritt und greift korrigierend ein.
Architekt als Mentor und Coach: Der Architekt versteht sich als Kümmerer im Projekt und klinkt sich immer wieder an unterschiedlichen Stellen ein. Er hilft Kollegen und unterstützt sie, auch bei Implementierungsaufgaben. Dadurch hat er einen sehr guten Überblick über das gesamte System und ist sehr nah an der Entwicklung dran. (Siehe Martin Fowler, Architectus Oryzus)
Architekt als Reiseführer: Der Architekt nimmt andere Rollen in der Entwicklung mit auf eine Reise und kann zu allem etwas erläutern.
Architekt als Barkeeper: Der Architekt mixt verschiedene Dinge zusammen: Insbesondere Business und Technologie. Dabei versteht er das Business und zeigt durch die Technologie neue Möglichkeiten auf, die er dann auch realisieren kann.
Architekt im Aufzug, Architekt als Mediator: Der Architekt ist in einem Aufzug unterwegs, der zwischen verschiedenen Stockwerken eines Unternehmens fährt. Diese Stockwerke symbolisieren alles von der Entwicklung bis zum Vorstand. Ein Architekt wird dadurch charakterisiert, wie viele Stockwerke er fahren kann, das heißt auf welchen Ebenen er mit den Menschen sprechen kann und auch zwischen den verschiedenen Ebenen vermitteln. Das bezieht sich einerseits auf die Fähigkeit, zwischen Abstraktionsebenen zu springen und andererseits auf die Fähigkeit mit Menschen unterschiedlicher Profession in der Sprache zu sprechen.
Architekt als Verkäufer von Optionen, Architekt als Ökonom: Der Architekt betrachtet die Architektur als Menge von Entscheidungen mit ökonomischem Einfluss auf die Entwicklung und die Zukunft des Softwaresystems. Insbesondere ermöglicht der Architekt es, bestimmte Änderungen am System in der Zukunft kostengünstig machen zu können. Dadurch sind in der Gegenwart Investitionen nötig (ähnlich wie bei Optionsscheinen, die es einem erlauben, in der Zukunft bestimmte Geschäfte zu einem festgelegten Preis zu tätigen).
Architekt als Stammesältester: Der Architekt als Respektsperson, die aufgrund ihrer Historie und Verdienste einen hohen Einfluss und Anerkennung genießt.
Architekt als Pfadfinder: Der Architekt als Entdecker neuer Wege mit einem Sinn für gute Taten.
Architekt als Designer: Der Architekt als Gestalter eines Softwaresystems, der wichtige und weitreichende Entscheidungen über das System trifft.
Architekt als Phantombildzeichner: Der Architekt als „Extrahierer und Dokumentierer“ von existierender Softwarearchitektur. Wenn Zeugen einen Verbrecher gesehen haben, so können sie ihn oft zumindest grob beschreiben, obwohl sie nie in der Lage wären, ihn zu zeichnen. Diese Aufgabe kommt dem Phantombildzeichner zu, der fundiertes Wissen über die menschliche Anatomie hat und die Kunst versteht, Informationen den Menschen zu entlocken und zu dokumentieren. Die gleiche Rolle können gute Softwarearchitekten einnehmen. Mit ihrem fundierten Wissen über Architektur und Dokumentation können sie gemeinsam mit Entwicklern Informationen extrahieren und geeignet dokumentieren. Obwohl es nicht direkt zu erwarten ist, können viele Entwickler und sogar viele Softwarearchitekten ihre Architektur nicht gut visualisieren, dokumentieren und kommunizieren. Deshalb ist der Phantombildzeichner oft sehr hilfreich.
Gregor Hohpe @ OOP 2017: Architekt als Phantombildzeichner
Architekt als Technologieexperte: Der Architekt als Kenner von Technologien in einem bestimmten Technologiebereich. Diese Übersicht erlaubt ihm, Technologien zu identifizieren, zu bewerten und auszuwählen.
Architekt als Domänenexperte: Der Architekt als Kenner der Domäne, für die ein System entwickelt wird.
Architekt als Möwe: Der Architekt stürzt sich auf ein bestimmtes Thema herab, wirbelt dort einigen Staub auf und fliegt dann wieder von dannen J
Architekt als Astronaut: Der Architekt bewegt sich in ganz anderen Sphären und ist so weit von der Entwicklung weg, dass er kaum was über den System weiß, wenig Einfluss hat und bei den Entwicklern wenig Wertschätzung erfährt.
Architekt im Elfenbeinturm: Der Architekt ist eher wissenschaftlich angehaucht und schottet sich von der eigentlichen Entwicklung ab. Damit geht es ihm so ähnlich wie dem Astronauten.
Architekt als Powerpoint-Künstler: Der Architekt als Ersteller von schönen Powerpoint-Bildern, die mit der Realität (dem Code) häufig wenig zu tun haben und ihm deshalb bei Entwicklern wenig Respekt einbringen.
Diese Analogien greifen akzentuiert bestimmte (positive wie negative) Eigenschaften des Softwarearchitekten heraus und machen sie verständlich. Letztlich dürfte natürlich keine der Analogien einen Softwarearchitekten wirklich komplett beschreiben und sie schließen sich auch nicht gegenseitig aus. Sie erläutern aber sehr gut verschiedene Persönlichkeitstypen und verschiedene Arbeitsauffassungen.
Da es auch keine einheitliche Definition von Softwarearchitektur gibt, ist es natürlich kein Wunder, dass auch bei Softwarearchitekten keine einheitliche Auffassung existiert. Die Vielfalt der Analogien sollte aber sowohl Softwarearchitekten selbst helfen, über ihr Tun zu reflektieren und anderen Personen die Gelegenheit eröffnen, Softwarearchitekten besser zu verstehen.
Unabhängig von der Analogie scheint Softwarearchitekt aber ein toller Job zu sein. Zum wiederholten Male landete er bei „Best Jobs in America (CNN Money)“ auf dem ersten Platz :-).
CNN Money: Best Jobs in America (2015)
Die Liste mit Analogien für Softwarearchitekten ist bestimmt noch viel länger und darf gerne in den Kommentaren ergänzt werden!
Am 29. und 30. November 2016 findet das nächste Treffen der User Group Softwarearchitektur und Softwareentwicklung statt. Themenschwerpunkt ist: „Self-Contained Systems – Ein neuer Weg, um komplexe Anwendungen beherrschbar zu machen?“ Ich werde auch mit einem Vortrag dabei sein und freue mich schon auf viele intensive und spannende Diskussionen zu einem sehr aktuellen Thema.
Modularität: Schon immer gewollt und selten erreicht – Sind Microservices und Self-Contained Systems der Durchbruch?
Modularität war schon das erklärte Ziel, als noch niemand von Softwarearchitektur sprach. Daran hat sich bis heute nichts geändert und aufgrund der stetig wachsenden Größe von Software wird Modularität immer noch wichtiger, um Herr der Lage zu bleiben. Trotzdem hat man in der Praxis selten das Gefühl, dass Modularität wirklich erreicht wurde oder gar dauerhaft erhalten bleibt. Microservices und Self-Contained Systems sind nun die aktuellsten Paradigmen, die Modularität versprechen. Dieser Vortrag blickt auf zahlreiche Entwicklungs- und Renovierungsprojekte zurück, in denen auf Modularität hingearbeitet wurde. Er nimmt Modularität, die Ziele dahinter und die Probleme bei der Erreichung unter die Lupe. Microservices und Self-Contained Systems verdienen dabei als jüngste Hoffnungsträger hinsichtlich Modularität besondere Beachtung.
Neueste Kommentare