Autor: Matthias Naab Seite 1 von 2

On Tour: Bitkom Arbeitskreis Softwarearchitektur, Köln, 2017

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.

High Quality @ Short Time-to-Market: How the need for speed changes your software’s quality requirements and where you have to invest!

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.

I authored this article together with my colleague Frank Elberzhager from Fraunhofer IESE. It was originally published on the blog of Fraunhofer IESE.

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.”

Jan Bosch,

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:

  1. Why is HQ@STTM of any value at all? (see above)
  2. What exactly does high quality mean in this context?
  3. Where and how to invest for HQ@STTM?
  4. 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):

  • Absence of bugs
  • Runtime quality (e.g., performance, security)
  • Devtime (development time) quality (e.g., maintainability, testability)
  • Operation quality (e.g., updateability, recoverability).

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“

On Tour: Tutorial Architecture Evaluation @ ICSA 2017

Bei der ICSA 2017 in Göteborg halten Jens Knodel und Matthias Naab am 03. April ein Tutorial zur Bewertung von Softwarearchitekturen.

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.“

Das Tutorial basiert auf unserem Buch „Pragmatic Evaluation of Software Architectures“.

Wir freuen uns auf viele Teilnehmer und interessante Diskussionen.

Was ist eigentlich ein Softwarearchitekt?

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!

On Tour: Softwareforen Leipzig, User Group Softwarearchitektur und Softwareentwicklung

Leipzig

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.

IEEE Software: Piloting a Mobile-App Ecosystem for Smart Farming

IEEE-SW

In der aktuellen Ausgabe von IEEE Software erscheint unser Artikel zu einem mobilen App-Ökosystem für die intelligente Landwirtschaft. Der Artikel entstand zusammen mit Susanne Braun und Ralf Carbon. Hier die Einleitung der Editoren Olaf Zimmermann und Cesare Pautasso:

„As interconnected mobile applications plow their way into every possible application domain, they often require offline processing capabilities. Susanne Braun, Ralf Carbon, and Matthias Naab report from the  field that architects and developers must challenge traditional data management assumptions when they’re designing such mobile-app ecosystems. The authors designed a custom-solution architecture that balances conflicting quality attributes and harvested their architectural decisions on data replication and offline synchronization in the presence of unreliable network connectivity. We thank them for sharing this experience with us. —Cesare Pautasso and Olaf Zimmermann“

Mehr zu diesem Thema von uns: Never Again Offline?!? Video von SATURN 2015

Buch: Pragmatic Evaluation of Software Architectures

bookcover

In Kürze erscheint unser Buch Pragmatic Evaluation of Software Architectures, das ich zusammen mit meinem Kollegen Jens Knodel vom Fraunhofer IESE geschrieben habe.

Architekturbewertung leistet einen wesentlichen Beitrag zu Softwaresystemen mit hoher Qualität und zu fundierten Entscheidungen im gesamten Lebenszyklus eines Softwaresystems. Unser Buch stellt einen pramatischen Ansatz zur Architekturbewertung vor und präsentiert Erkenntnisse aus mehr als 75 Architekturbewertungsprojekten für Kunden aus unterschiedlichsten Branchen und Ländern, die wir in den letzten 10 Jahren durchgeführt haben. Wir zeigen neben der Methode auch zahlreiche Beispiele und Lessons Learned.

Das Buch ist entlang häufig gestellter Fragen aufgebaut und zeigt auch in der Praxis häufig gemachte Fehler und wie diese vermieden werden können. Das Buch wendet sich insbesondere an Praktiker in der Softwareentwicklung und gibt ihnen einen Leitfaden zur erfolgreichen Bewertung von Softwarearchitekturen an die Hand. Außerdem zielt das Buch darauf ab, Wissenschaftlern empirisch fundierte Einblicke in die praktische Bewertung von Architekturen zu geben und Inspiration für zukünftige Bewertungsmethoden und -werkzeuge zu sein.

Pragmatic Architecting – Webseite zum Buch

Vom 22.05. bis 22.06.2016 gibt es das Buch mit 20% Rabatt zur Vorbestellung bei Springer: Dazu einfach den Code NcB72JwXp22Y3Bg verwenden.

Buch bestellen bei Springer

Buch bestellen bei Amazon

On Tour: OOP 2016, München

OOP 2016 in München

Die OOP feiert 25-jähriges Jubiläum. Zusammen mit Susanne Braun und Ralf Carbon (John Deere) habe ich einen Vortrag mit dem Thema:

Offline-Fähigkeit für mobile Apps – Wie sehr sich Architekten um Daten kümmern müssen

Abstract: Softwarearchitektur muss sich natürlich um Daten kümmern. Trotzdem werden Daten und ihr Einfluss auf Qualitätseigenschaften oft stiefmütterlich behandelt. Wir berichten über Erfahrungen, die wir bei der Pilotierung eines Mobile App Ecosystems für die Landwirtschaft gemacht haben. Zentrale Anforderungen waren User Experience und Performance. Das erfordert, die richtigen Daten zur richtigen Zeit am richtigen Ort zu haben. Wir zeigen für konkrete Qualitätsanforderungen wie Offline-Fähigkeit, welche Entscheidungen geeignet waren und welche nicht.

OOP

 

On Tour: CSD&M Workshop – What is IoT for your Organization? Paris

Paris

Vom 23. bis zum 25. November findet in Paris die Konferenz Complex System Design & Management (CSD&M)  statt. Ein Teil der Konferenz ist der Workshop CSD&M for IoT: What is IoT for your Organization?

Im Rahmen dieses Workshops halte ich einen Vortrag „How IoT and Smart Ecosystems Impact Your Software Engineering“.

On Tour: STI-Jahrestagung 2015 – DevOps, Kaiserslautern

Kaiserslautern

DevOps ist in aller Munde. Während sich die einen enthusiastisch Wunder erhoffen, sind andere desillusioniert und sehen den nächsten Aktionismus über sich hereinbrechen.
Software schneller zu releasen und trotzdem hohe Qualität zu erreichen ist nicht einfach und erfordert eine vielfältige Abstimmung zwischen Entwicklung und Betrieb.

Am 23.11.2015 steht die STI-Jahrestagung am Fraunhofer IESE unter dem Motto „DevOps – Zwischen Euphorie und Realismus“.

Ich werde einen Vortrag mit dem Titel 4 Fragen, die Sie beantworten müssen, bevor Sie DevOps einführen halten. Dabei geht es um grundsätzliche Fragen, die man bei allem Optimismus klären sollte und die jedem helfen, die vielfältigen Optionen und Möglichkeiten, die das Paradigma DevOps bietet, besser gedanklich zu sortieren.

Das Veranstaltungsprogramm gibt es hier.

ältere Beiträge

© 2017 mibinu

Theme von Anders NorenNach oben ↑