Agile - JAX https://jax.de/tag/agile/ Java, Architecture & Software Innovation Fri, 18 Oct 2024 13:00:04 +0000 de-DE hourly 1 https://wordpress.org/?v=6.5.2 Was Software-Architekten von der Soziologie lernen können https://jax.de/blog/was-software-architekten-von-der-soziologie-lernen-koennen/ Wed, 11 Mar 2020 12:12:47 +0000 https://jax.de/?p=75395 Software wird von Menschen gemacht – Gruppen von Menschen meist, die miteinander kommunizieren. Nun ist die Wissenschaft, die sich mit Gruppen von Menschen beschäftigt, die Soziologie. Doch wie kann die junge Disziplin der Software-Entwicklung von den gesammelten Erkenntnissen der Soziologie profitieren? Die Software-Architekten Dr. Christian Mennerich und Frederick Meseck (synyx GmbH & Co KG) wagen auf der JAX 2020 den Blick über den Tellerrand. In ihrer Session Softwareentwicklung – systemisch-agil gedacht bringen sie die soziologische Systemtheorie nach Luhmann mit Software-Entwicklungsthemen wie Agilität, DevOps und Domain-driven Design zusammen. Wir haben nachgehakt!

The post Was Software-Architekten von der Soziologie lernen können appeared first on JAX.

]]>
 

Redaktion: Hallo Christian! Ihr bringt in eurem JAX Talk die Systemtheorie nach Luhmann mit Softwareentwicklung und -architektur zusammen. Was können Entwickler von der Systemtheorie lernen?

Es gibt eine starke Analogie zwischen der Kommunikation, die in sozialen Systemen stattfindet, und der Kommunikation innerhalb von Softwaresystemen.

Dr. Christian Mennerich: Den Vortrag halte ich ja zusammen mit Freddy Meseck, der bei uns als systemischer agiler Coach arbeitet und sich von daher mit der Systemtheorie sehr gut auskennt. Bei synyx arbeiten wir in den Softwareentwicklungsprojekten u.a. nach den Prinzipien des Domain-driven Design (DDD), folglich ist eine große gemeinsame Aufgabe das Finden der relevanten abgeschlossenen Kontexte (Bounded Contexts).

Freddy und ich sind nun schon ein paar Jahre zusammen in verschiedenen Projekten und Teams unterwegs und waren uns einig, dass ein guter soziologischer Ansatz fehlt, um diese Kontexte systematisch zu finden und zu beschreiben. Die sozialen Systeme gemäß der Systemtheorie nach Luhmann, so wie wir sie interpretieren, sind unserer Meinung nach hierzu gut geeignet.

Für Entwickler*innen in einem agilen Projekt ist die Systemtheorie, insbesondere der darin enthaltene konstruktivistische Ansatz, unserer Meinung nach ein geeignetes Werkzeug um zu verstehen, warum es in Softwareprojekten immer wieder zu Missverständnissen kommen wird. Aus diesem Bewusstsein heraus lässt sich das gemeinsame Verständnis mit POs, Stakeholdern und Endanwendern erhöhen.

Die Systemtheorie liefert noch einmal eine andere Sichtweise auf iteratives Vorgehen und motiviert zu kleinen Inkrementen in einem kontinuierlichem Ausrollprozess, experimentellem Lernen, “fail fast” und anderen agilen Elementen. Weiter verändert Software ja auch die “Gesellschaft” der Anwender. Für Entwickler*innen ist das eine wichtige Erkenntnis. Es gibt eine starke Analogie zwischen der Kommunikation, die in und zwischen sozialen Systemen stattfindet, und der Kommunikation innerhalb und zwischen Softwaresystemen. Dies legt eine nachrichtengetriebene Systemarchitektur nahe, und die Kommunikation über Domänen-Events.

Die Herausforderungen, die nachrichtengetriebene verteilte Systeme mit sich bringen (wie die Fragen nach Zeiten, Reihenfolgen, Zustellhäufigkeiten usw.), erhalten so eine starke fachliche Komponente, da Kommunikation zwischen sozialen Systemen oft ebenso “unvorhersagbar” stattfindet. Für Entwickler*innnen wird es so natürlicher, diese Herausforderungen auch im Code anzugehen und gegenüber POs und Stakeholdern zu motivieren.

Redaktion: Ihr schreibt in eurem Abstract zum Talk, dass es darauf ankomme, “die Realitätskonsense der beteiligten sozialen Systeme isomorph zur Deckung zu bringen, um ein für alle zufriedenstellendes Softwareprodukt zu erhalten.“ Kannst du das einmal anhand eines Beispiels erläutern?

Dr. Christian Mennerich: Ja klar, die Systemtheorie ist als solche ja sehr abstrakt und als Universaltheorie ja nicht so ganz trivial. Unserer Meinung nach ist an dem Ansatz aber nichts Esoterisches! In unserem Vortrag bringen wir ganz konkrete Beispiele aus einem unserer Kundenprojekte, in dem es um die Digitalisierung von Prozessen an Containerterminals im Hinterland geht.

Schauen wir zum Beispiel auf das Terminalgate, den Ort, an dem LKWs, die Container bringen oder abholen, kontrolliert und eingelassen oder abgewiesen werden. Wir können das Gate als ein soziales System verstehen (einen Bounded Context), den wir in Software abbilden wollen. Die Mitarbeiter am Gate arbeiten schon seit langem zusammen, sind abgestimmt und haben einen “Konsens”, ein gemeinsames Verständnis über ihre Arbeitsweisen und -prozesse: Wie wird mit LKWs im “Normalfall” umgegangen? Wie mit welchen, die nicht angemeldet sind, die trotz Anmeldung nicht kommen usw.? In der Sprache Luhmanns spricht man hier von “anschlussfähiger Kommunikation”, von “Mustern” und “Prozessen”.

Nun soll das Gate durch eine Software unterstützt werden. Ein Requirements Engineer “verzerrt” diesen Konsens bei der Anforderungserfassung, da er das soziale System “Gate” verändert und zusätzlich seine Sichtweise unvermeidlich mit einbringt (seine “Konstruktion der Realität”). Das Ergebnis soll dann von einem Entwicklerteam umgesetzt werden. Die Entwickler sind aber auch ein soziales System, das eine eigene Konstruktion und Interpretation der Anforderungen ausbildet, sich also einen “Konsens” darüber bildet, was es umsetzen soll und was das bedeutet.

Um bei den Mitarbeitern am Terminal eine hohe Akzeptanz zu schaffen und sie bestmöglich in ihrem Prozessen zu unterstützen, sollten Mitarbeiter und Entwickler die Prozesse möglichst gleich verstehen. Das meinen wir damit, wenn wir davon sprechen, dass die Konsense zur Deckung kommen sollen. Für uns ist eine hohe Übereinstimmung der Konsense eine Art Maß dafür, dass die Software leistet, was sie soll und auch akzeptiert ist.

Verschaffen Sie sich den Zugang zur Java-Welt mit unserem kostenlosen Newsletter!

Software-Architektur Trends

Redaktion: Software-Architektur ist allgemein ein breit gefächertes Gebiet – ebenso unterschiedlich ist das Rollenverständnis unter Software-Architekten. Worin siehst du persönlich in deiner Position als Software-Architekt deine Hauptaufgabe? Was ist dir besonders wichtig?

Mir persönlich ist es wichtig, dass die Architektur-Entscheidungen fachlich getrieben sind.

Dr. Christian Mennerich: Mir persönlich ist es wichtig, dass die Architekturentscheidungen fachlich getrieben sind, das heißt, dass die Entwicklung Business-zentriert stattfindet, nicht technisch. Dies gilt für alle Ebenen der Softwarearchitektur, von den groben Systemschnitten bis hin zur konkreten Implementierung der einzelnen Services.

Hier achten wir verstärkt auf DDD, nachrichtenorientiertes Denken von Beginn an, das Einhalten hexagonaler Architektur-Pattern und ähnliches. Hier ist es meiner Meinung nach unerlässlich, iterativ zu arbeiten und die Teams von vorne herein mit möglichst breit gefächertem Wissen aufzustellen.

Redaktion: Welchen Architektur-Trend findest du momentan besonders spannend?

Dr. Christian Mennerich: Streng nachrichtenorientiertes Design in verteilten Systemen, vor allem den Gedanken der Domänen-Events konsequent anzuwenden, finde ich spannend. Wenn wir fachlich getrieben kleine abgeschlossene Services auch in verteilten Teams entwickeln lassen, dann bekommt auch die Kommunikation über Nachrichten und deren unterschiedliche Interpretation durch verschiedene Services eine fachliche Entsprechung. Das wirft eine gute neue Perspektive auf Diskussionen über Garantien in solchen verteilten Systemen (wie Zustell-Reihenfolgen und -zeiten, exactly-once delivery usw.).

Redaktion: Und welches Thema im Bereich der Software-Architektur ist deiner Meinung nach im aktuellen Diskurs etwas unterbelichtet?

Dr. Christian Mennerich: Was mich brennend interessiert, ist die Frage, was die neuen Architekturstile genau bedeuten und mit der Anwenderschaft machen. Wenn wir in Microservices (oder noch kleineren Einheiten) entwickeln, was bedeutet das dann beispielsweise für Bounded Contexts nach DDD und Conways Law, wie können wir diese Konzepte dann noch verstehen?

Das ist auch eine Frage, die Freddy und mich angetrieben hat, Luhmanns Systemtheorie und Softwareentwicklung zusammen zu bringen; Software und Digitalisierung machen ja etwas mit der Gesellschaft, und umgekehrt. An dieser Stelle fände ich eine breitere Diskussion spannend, wie sie beispielsweise momentan anläuft, wenn es um ML und moralische Fragestellungen geht.

Redaktion: Was ist die Kernbotschaft eurer Session, die jeder Besucher mit nach Hause nehmen sollte?

Dr. Christian Mennerich: Wir wünschen uns klar zu machen, dass eine objektive Realität keine Relevanz hat, da die Realität nicht objektiv beschrieben werden kann! Beschreibung ist immer Konstruktion des Beobachters. Um gute Software zu bauen, gilt es, gut und viel zu kommunizieren, um die richtigen Konsense zu finden. Denn alle am Softwareentwicklungsprozess beteiligten sozialen Systeme haben jeweils einen “eigenen Konsens”. Diese Konsense gilt es dann gemeinschaftlich zu harmonisieren, und da hilft nur das gemeinsame Ausprobieren kleiner Änderungen, um beweglich zu bleiben.

Redaktion: Vielen Dank für dieses Interview!

Das Interview führte Hartmut Schlosser.

The post Was Software-Architekten von der Soziologie lernen können appeared first on JAX.

]]>
Passt Agilität zu introvertierten Menschen? https://jax.de/blog/passt-agilitaet-zu-introvertierten-menschen/ Wed, 09 Oct 2019 11:11:54 +0000 https://jax.de/?p=73105 "Introvertiert und agil? Na klar!" - so heißt die Session von Katrin Rabow auf dem Agile Day der W-JAX 2019. Im Interview hält sie ein Plädoyer für die Schaffung eines Arbeitsumfelds, das allen - ob introvertiert oder extravertiert - gerecht wird.

The post Passt Agilität zu introvertierten Menschen? appeared first on JAX.

]]>
Ist Agile nur was für Schwätzer?

Redaktion: In der Agilen Software-Entwicklung ist Kommunikation ein zentraler Bestandteil. Was nun aber, wenn man von der Persönlichkeit her eher nicht wirklich der Mitteilsambedürftigste ist? Oder anders gefragt: Ist Agile nur was für Schwätzer?

Mir ist wichtig, dass alle, die etwas beitragen wollen, den nötigen Raum dazu finden.

 

Katrin Rabow: Ich glaube, ein gutes Team entsteht gerade durch die Mischung der „Schwätzer“ (im positivsten Sinne!) und der ruhigeren Mitglieder. Während die einen schnell viele Ideen in den Raum werfen – und viele auch wieder VERwerfen – lassen die anderen sich Zeit, denken in Ruhe nach und bringen dann oft nochmal ganz andere Aspekte in die Diskussion ein. Mir ist wichtig, dass alle, die etwas beitragen wollen, den nötigen Raum dazu finden und in ihrem eigenen Tempo agieren können.

Redaktion: Du greifst in deiner Session ja ein wichtiges Thema auf, nämlich, wie sich Introvertiertheit und Agilität miteinander vereinen lassen. Ist es aus deiner Sicht schlicht ein Vorurteil, dass Agilität und Introvertiertheit Gegensätze sind? Oder gar: Sind Introvertierte nicht vielleicht sogar die besseren Agilisten?

Katrin Rabow: Die Beschäftigung mit dem Thema begann für mich tatsächlich mit der Frage, wie die klassischen Nerds (große Vorurteilsschublade auf!), die sich vermeintlich mit einer Pizza an einem Rechner im Keller verschanzen, damit umgehen, dass sie nun immer mit ihrem Team zusammensitzen und auch noch kommunizieren sollen. Ich habe aber schnell gemerkt, dass starre Definitionen und der Versuch, Menschen irgendwo einzuordnen, nicht zielführend sind. Am Ende geht es nicht darum, introvertierte und extravertierte Menschen miteinander zu vergleichen oder gar zu entscheiden, wer der bessere Agilist ist. Das Ziel sollte vielmehr sein, ein Arbeitsumfeld zu entwickeln, das allen gerecht wird.

Lesen Sie auch: IT-Forensik: „Software kann Tatort oder Tatmitttel sein”

Redaktion: Wie schafft man es, in einer gemischten Gruppe mit gemischten Persönlichkeiten ein solches Arbeitsumfeld zu erzeugen?

Diese Vielfalt ist auch eine große Herausforderung an die Unternehmen.

 

Katrin Rabow: Leider ist es in der Realität oft schwierig, all das umzusetzen, was ich mir wünschen würde. Und natürlich gibt es auch nicht DIE perfekte Umgebung, sondern immer nur eine mögliche Welt, die einem bestimmten Team gut tut. In meiner Session werden wir gemeinsam so eine Welt entwerfen – in der nächsten Session mit anderen Teilnehmern kann sie schon wieder ganz anders aussehen. Und genau diese Vielfalt ist natürlich auch eine große Herausforderung an die Unternehmen.

Redaktion: Welcher Trend oder welche Praktik im Bereich der Agilität findest du momentan besonders spannend? Hast du da vielleicht einen Tipp, womit man sich einmal etwas genauer beschäftigen könnte?

Katrin Rabow: Leider finde ich jede Woche ein neues spannendes Thema und würde mich gerne mit sehr vielen Ideen viel intensiver beschäftigen. Momentan steht aber vor allem die Beschäftigung mit dem “Domain Storytelling” ganz oben auf meiner Liste.

Redaktion: Was ist die Kernbotschaft deiner Session, die jeder Teilnehmer mit nach Hause nehmen sollte?

Katrin Rabow: Teams leben von ihrer Vielfalt. Wir sollten nicht versuchen, die einzelnen Mitglieder in Schubladen zu stecken, aber Verständnis für unterschiedliche Bedürfnisse entwickeln, damit jeder entsprechend seiner Persönlichkeit zum Teamerfolg beitragen kann.

Redaktion: Vielen Dank für dieses Interview!

 

Quarkus-Spickzettel


Quarkus – das Supersonic Subatomic Java Framework. Wollen Sie zeitgemäße Anwendungen mit Quarkus entwickeln? In unserem brandaktuellen Quarkus-Spickzettel finden Sie alles, was Sie zum Loslegen brauchen.

 

Jetzt herunterladen!

The post Passt Agilität zu introvertierten Menschen? appeared first on JAX.

]]>