ITech Academy stellt 10 neue Trainings vor!

ITech Academy stellt 10 neue Trainings vor!

Neue Trainings in den Bereichen: Softwaremodellierung, Softwareentwicklung und Softwarearchitektur

Wenn Sie unsere ITech Academy bereits kennen, wissen sie bestimmt, dass Softwarearchitektur ein untrennbarer Teil unserer DNA und vor allem unsere Leidenschaft ist! Das spiegelt sich auch in unserem großen Angebot an iSAQB-akkreditierten Softwarearchitektur Trainings wider. Von den Grundlagen bis hin zu fortgeschrittenen Trainings sind alle relevanten und aktuellen Themen aus der Welt der Softwarearchitektur vertreten. Als IT-Beratungsunternehmen beraten wir unsere Kunden neben innovativen Architekturparadigmen wie Microservices und Cloud Architekturen seit über 17 Jahren auch in allen Phasen ihrer IT-Projekte, von der Konzeption über den Entwurf und die Implementierung bis hin zu Testing, Fertigstellung und Qualitätssicherung.

Wir als ITech Progress haben uns mit der ITech Academy einen Ort geschaffen, um genau diese langjährige Erfahrung in den Bereichen Softwaremodellierung, Softwareentwicklung und Softwarearchitektur in Form von theoretischem und praktischem Wissen weiterzugeben. Denn einer unserer Grundsätze lautet: Wissensmonopole sind für uns tabu!

Aus diesem Grund haben wir 10 neue Trainings und Workshops nach eigenem Lehrplan entwickelt, die jetzt ein Teil unseres Academy-Portfolios sind! In allen Trainings und Workshops steckt das Beste aus unserer Arbeit und Erfahrung mit komplexen Systemen, bewährten Tools, Technologien, Architekturen und den Best Practices der Softwareentwicklung und -architektur. Und all das: Immer auf dem neuesten Stand!

Das sind die neuen Trainings und Workshops:

Softwaremodellierung

Objektorientierter Softwareentwurf mit UML und Objektorientierung

Dieses 3-tägige Grund- und Aufbautraining richtet sich an alle Softwareentwickler:innen und –architekt:innen im objektorientierten Umfeld, die UML als effektives Entwurfs-, Planungs- und Kontrollinstrument einsetzen möchten.

Softwareentwicklung

SQL & DB Design (5 Tage inkl. Workshopzeit)

Java und OOP (5 Tage inkl. Workshopzeit)

html und CSS (3 Tage inkl. Workshopzeit)

JEE (3 Tage inkl. Workshopzeit)

Programmieren für Fortgeschrittene mit JAVA

Diese Trainings eignen sich ideal zur Mitarbeiterbefähigung, wenn in Ihrem Unternehmen beispielsweise noch Legacy-Systeme genutzt werden und der Umstieg auf zeitgemäße Technologien und Architekturen erfolgen soll.

Softwarearchitektur

Methodischer Fokus:

Enterprise Application Integration Patterns

In diesem 2-tägigen Training für Softwareentwickler:innen und -architekt:innen lernen sie Enterprise Application Integration (EAI) Patterns kennen, um Geschäftsfunktionen entlang der Wertschöpfungskette eines Unternehmens, die über diverse Applikationen auf verschiedenen Plattformen verteilt sind, zu integrieren.

Design Patterns

In diesem 2-tägigen Training für Softwareentwickler:innen und -architekt:innen lernen sie das Konzept und den Sinn von Entwurfsmusstern kennen.  Wir geben Ihnen aus unserer jahrelangen Projekterfahrung eine Auswahl wichtiger Entwurfsmuster an die Hand und führen sie mithilfe verschiedener Methoden in die praktische Anwendung.

Technologischer Fokus:

Clean Code

In diesem Training lernen Sie die Werte, Regeln und Prinzipien kennen, auf denen die Handwerkskunst der Softwareentwicklung fußt und können damit dem Sprichwort „Wie der Meister, so das Werk“ folgend, sauberen, änderbaren, testbaren und objektorientierten Code entwickeln.

Kommunikativer Fokus:

Führungskräfteentwicklung

In diesem 2-tägigen branchenübergreifenden Training geben wir Führungskräften das Know How für situationsgerechte Kommunikation, Reflexion und Verantwortungsdelegation als aktive Bestandteile einer effektiven und erfolgreichen täglichen Arbeit mit. Teilnehmer:innen erlernen, die eigenen Rollen und Ziele zu definieren und darauf aufbauend Ihr Verhalten auszurichten.

So nehmen Sie an unseren neuen Trainings und Workshops teil

Vorläufig ist das neue Portfolio nur in Form von Inhouse-Trainings (auch remote) buchbar, aber wir freuen uns auf Ihre direkte Rückmeldung, wenn Interesse an offenen Terminen besteht! Kommen Sie hierfür gerne über die unten angegebenen Kontaktmöglichkeiten auf uns zu oder melden Sie sich für unseren monatlichen Newsletter an, um keine Termine und Neuigkeiten zu verpassen. Aus unserer Erfahrung heraus wissen wir, dass eine Lernatmosphäre außerhalb des eigenen Standortes eine echte Bereicherung für das Team sein kann, weshalb wir Ihnen an unseren Standorten in Ludwigshafen und Nürnberg gerne auch großflächige, modern ausgestattete Schulungsräume zur Verfügung stellen.

Sie haben Interesse an den neuen Trainings oder eine Frage?

Dann rufen Sie uns bitte unter +49 621 595702 41 an, schreiben Sie eine E-Mail an training@itech-progress.com oder schicken Sie uns über das Kontaktformular eine schriftliche Anfrage:

6 + 6 =

Anpassungsfähigkeit bei Softwarearchitekten

Anpassungsfähigkeit bei Softwarearchitekten

Axel Feix spricht im Interview darüber, was Anpassungsfähigkeit für ihn als Softwarearchitekten bedeutet, warum sie für den Projekterfolg so wichtig ist und welcher Druck damit auch verbunden sein kann.

Axel Feix hat langjährige Projekterfahrung als Analyst und Softwarearchitekt. Er unterstützt Kunden als Senior Consultant und Trainer bei der Einführung und Umsetzung von Software-Engineering, Requirements-Engineering, Softwarearchitektur-Management und Architekturdokumentation. Er interessiert sich für was fliegt, alles was man visualisieren und spielen kann, und was die Welt zusammenhält.

Was bedeutet es für dich als Softwarearchitekt anpassungsfähig zu sein?

Feix: Nachdem die Definitionsphase im Projekt abgeschlossen ist und feststeht, wie die Softwarearchitektur grundsätzlich aussehen soll, sind die Leitplanken für den Softwarearchitekten vorgegeben. Wenn die Entscheidung auf eine Web-Anwendung gefallen ist, dann wird daraus keine Embedded-Anwendung mehr. Die Softwarearchitektur muss in dem festgelegten Rahmen aber trotzdem verhandelbar bleiben, ohne dabei den Blick auf das Endprodukt zu verlieren. Welches Framework wird in welcher Version verwendet? Welche API wird eingesetzt? Das sind Fragen, über die noch diskutiert werden kann und muss.

Als Softwarearchitekt finde ich es wichtig, mir darüber im Klaren zu sein, dass ich nicht die Weisheit mit Löffeln gefressen habe. Lösungen werden nicht nur fachlich, sondern auch technisch im Team entschieden und das heißt, sich auf gute Argumente einzulassen und aufgeschlossen zu sein. Wenn ein Entwickler oder eine Entwicklerin etwas Cleveres auf die Beine gestellt hat, dann sollte das innerhalb der Leitplanken auch umgesetzt werden. Nur so entsteht am Ende eine gute und vor allem langlebige Softwarearchitektur.

Warum ist die Anpassungsfähigkeit für einen Softwarearchitekten so wichtig?

Feix: Anpassungsfähigkeit für mich als Softwarearchitekt ist wichtig, weil heutzutage alles agil entwickelt wird. Dabei kommt es immer wieder vor, dass Dinge wichtig werden, an die anfangs nicht gedacht wurde oder die keinen hohen Stellenwert hatten. Da denke ich zum Beispiel an die neuen Anforderungen, die es seit der Pandemie in Bezug auf Behörden gibt. Diverse Angelegenheiten, die Bürgerinnen und Bürger immer vor Ort geregelt haben, müssen jetzt auch auf den mobilen Endgeräten funktionieren.

Der technische Wandel ist schnell. Es heißt, etwa alle zwei Jahre werden die alten Technologien durch neue Technologien ersetzt und das Know-how bedarf einer Auffrischung. Wer sich bemüht, immer vorne auf der Buchwelle mitzuschwimmen, um auf dem neuesten Stand zu bleiben, der kann auch anpassungsfähig auf den technischen Wandel reagieren. Neu ist aber nicht immer besser. Anhand von Erfahrungswerten sollte kritisch hinterfragt werden, ob und wie neue Technologien zum eigenen Vorhaben passen und wie sie gewinnbringend eingesetzt werden können. Was heute gehypt wird, kann in wenigen Jahren schon wieder von der Bildfläche verschwinden.

Deshalb müssen Softwaresysteme von Anfang an anpassungsfähig gebaut werden, aber auch als Softwarearchitekt sollte ich mich auf neue Entwicklungen einlassen. Anpassungsfähigkeit ist ein lebenslanger Lernprozess.

In welchen Phasen des Projekts oder in welchen Situationen braucht ein Softwarearchitekt besonders viel Anpassungsfähigkeit?

Feix: Als Softwarearchitekt brauche ich zu Beginn des Projekts besonders viel Anpassungsfähigkeit, bis die Softwarearchitektur durch das Board genehmigt ist. Im Board gibt es viele Stakeholder und alle Interessen sollten angemessen berücksichtigt oder wegdiskutiert werden. Wenn die Softwarearchitektur dann auf die Projektwirklichkeit trifft und das umgesetzt werden soll, was konzipiert wurde, dann müssen die nicht-funktionalen Anforderungen wie Barrierefreiheit, Skalierbarkeit und IT-Sicherheit bedacht werden. Dazu sind eine Reihe von Workshops notwendig, um die Entwicklungsteams auf ihre Aufgaben vorzubereiten und für die Herausforderungen zu sensibilisieren. Gute Ideen vonseiten des Teams sollten in die Detaillierung der Softwarearchitektur einfließen und in der Architekturdokumentation dokumentiert werden. Außerdem kann es Überraschungen organisatorischer Art geben, weil ein Framework oder eine API nicht mehr verfügbar ist, auf die man gesetzt hat. Oder Vertragspartner wurden gewechselt, sodass mit neuen Datenbanken und Produkten gearbeitet werden muss.

Wann herrscht ein ‚zu viel‘ an Anpassungsfähigkeit und wie lässt sich dieses Problem in der Praxis vermeiden?

Feix: Ein „zu viel“ an Anpassungsfähigkeit in der Softwarearchitektur herrscht dann, wenn es keine klaren Strukturen und Verantwortlichkeiten mehr gibt. Wenn es mehrere APIs gibt, die das Gleiche tun, nur an anderen Stellen in der Softwarearchitektur. Das verschlammt die ganze Struktur. Bei Problemen sollte der Softwarearchitekt meiner Meinung nach immer auf das Team zurückgreifen. Er ist bestenfalls Teil eines Querschnittteams oder einer Community of Practice (COP) mit den wichtigsten Vertretern aus Entwicklung, UX-Design, Test und so weiter. Insbesondere die Lead Entwickler spielen eine wichtige Rolle. Die Softwarearchitektur sollte vorgestellt werden, sodass das Team Feedback geben kann und Kompromisse gefunden werden, die die Entwickler und den Architekten zufriedenstellen. Dabei kann dann auch mal klassisch über Optionen abgestimmt werden. Auch hier ist wichtig: Immer im Rahmen der Leitplanken und das vereinbarte Endprodukt nicht vergessen!

Ich finde es generell wichtig, dass man sich auf eine gemeinsame Softwarearchitektur einschwört und das Architekturmanagement im Team am Leben erhält. Wenn dann mal neue Leute dazukommen, lassen sich schnell mithilfe des Teams und der Architekturdokumentation alle auf den gleichen Wissensstand bringen. So gibt es nicht nur einen gemeinsamen Code, sondern auch eine gemeinsame Softwarearchitektur. Wenn ich als Entwicklungsteam an der Entstehung und der Entwicklung von etwas beteiligt bin, kann ich mich auch besser daranhalten.

Die Welt verändert sich immer schneller. Verspüren Softwarearchitekten einen Druck anpassungsfähig zu sein und wenn ja, ist dieser über die letzten Jahre gewachsen?

Feix: Ich glaube, dass der Druck gewachsen ist, weil das IT-Management gerne sagt, dass Softwarearchitekten nur im ersten Teil eines Projekts notwendig sind. Wenn die Softwarearchitektur erst mal steht, haben sie nichts mehr zu tun, aber das stimmt natürlich nicht. Bis das Projekt live geht, gibt es ständig neue Anpassungen, die Prüfungsbedarf haben. Neben Frameworks, die evaluiert und Architekturentscheidungen, die getroffen werden müssen, achtet der Softwarearchitekt im Sprint darauf, dass nicht nur fachliche, sondern auch technische Anforderungen umgesetzt werden. Gerade das Refactoring ist wichtig, damit eine Softwarearchitektur klar bleibt und nicht versumpft. Mit jedem Sprint lagert sich ein kleines bisschen Bodensatz an, der aus neuen Anforderungen und neuen Funktionalitäten besteht. Der Softwarearchitekt schöpft diesen Bodensatz ab, damit neue Anforderungen umgesetzt werden können. Neue Anforderungen vom Fachteam müssen zusammen mit dem PO und dem Entwicklungsteam natürlich auch auf Umsetzbarkeit und notwendige Änderungen an der Architektur geprüft werden.

Bei all diesen Aufgaben ist es von großem Vorteil, als Softwarearchitekt anpassungsfähig zu sein, um verschiedene Rollen einnehmen zu können. Für das Team ist es beispielsweise wichtig, den Softwarearchitekten als starken Fürsprecher zu haben, wenn es um technische Schulden geht und der dann auch vor der Projektleitung dafür eintritt, die Softwarearchitektur sauber zu halten.

 

Vielen Dank an Axel Feix für dieses Interview.

 

Was sagen Sie zum Thema Anpassungsfähigkeit bei Softwarearchitekt:innen?

Wie würden Sie auf die Fragen antworten? Wir freuen uns auf den Austausch in den Kommentaren!

Bounded Context trifft auf Microservice: Wie passt der Deckel auf den Topf?

Bounded Context trifft auf Microservice: Wie passt der Deckel auf den Topf?

Feix

Axel Feix

Axel Feix hat langjährige Projekterfahrung als Analyst und Softwarearchitekt. Er unterstützt Kunden als Senior Consultant und Trainer bei der Einführung und Umsetzung von Software-Engineering, Requirements-Engineering, Softwarearchitektur-Management und Architekturdokumentation. Er interessiert sich für was fliegt, alles was man visualisieren und spielen kann, und was die Welt zusammenhält.

Microservices und Domain Driven Design (DDD) zählen nach wie vor zu den Hype-Themen der IT-Szene. Ein paar Sekunden Google-Suche reichen aus, um gleich Dutzende Artikel ausfindig zu machen, die wahre Loblieder auf die „Liebesbeziehung“ von Microservices und Bounded Contexts singen. Aber ist das wirklich so? Passen Microservices und Bounded Contexts wie Topf und Deckel zusammen oder wird das Thema vielleicht doch zu sehr durch die rosa Brille findiger Consultants betrachtet?

Bounded Context und Ubiquitous Language

Domain Driven Design (DDD) ist als ein Konzept entstanden, um die Distanz zwischen den Domänen-Experten und dem Software-Entwicklungsteam und die daraus resultierenden Projektrisiken nachhaltig zu verringern. Eric Evans hat das in seinem Standardwerk „Domain-Driven Design: Tackling Complexity in the Heart of Software“ präzise beschrieben. Ein zentrales Element ist dabei eine gemeinsame Fachsprache, die „Ubiquitous Language“, die aus der Domänen-Story entwickelt und auf allen Ebenen vom Grobkonzept bis in den Quellcode hinein als Vokabular angewendet wird. In den meisten Fällen zeigen sich bei der Herleitung der Domain-Story einige Begriffe, die in unterschiedlichen Zusammenhängen (z. B. Fach-Abteilungen) andere Bedeutungen haben. Im Domain Driven Design (DDD) wird in diesem Fall keine sprachliche Lösung geschaffen, sondern eine Grenze um den maximalen Raum innerhalb der Domäne gezogen, in dem jeder Fachbegriff eine eindeutige Bedeutung hat. Dieser abgegrenzte „Sprachraum“ ist der Bounded Context.

Ein Bounded Context ist kein Microservice

Aus dieser Perspektive wird klar, dass ein Bounded Context – je nach Komplexität der Domäne – ganz unterschiedliche Dimensionen annehmen kann. Die Spanne erstreckt sich von einem sehr kleinen Kontext, der sich durchaus zur Abgrenzung eines Microservice eignen kann, bis hin zu einem gewaltigen, als Microservice untauglichen Kontext-Monolithen. In den meisten Fällen sind Microservice und Bounded Context folglich ein ausgesprochen ungleiches Paar. Der Bounded Context beschreibt die maximale Ausdehnung, die ein Microservice logisch annehmen kann, und steht damit geradezu im Widerspruch zu dessen Anforderungen an reduzierte Komplexität und Größe. Es ist aber deutlich zu sagen: Ein Bounded Context ist kein Microservice. Ein Microservice ist technisch und stelle eine Deployment Grenze dar. Ein Bounded Context ist dagegen eine fachliche Sprachgrenze mit einer klaren Definition für jeden Begriff. Die Größe und Form eines solchen Contexts wird durch die strategische Planung, die Komplexität des Modells und die Teamstruktur bestimmt.

Bounded Contexts sind eine Möglichkeit, erste Schnitte im Projekt anzusetzen und bieten damit zumindest eine Annäherung. Zum anderen ist jeder Bounded Context ein Cluster, in dem mehrere zu definierende (Micro-)Services durch die Ubiquitous Language logisch verbunden sind. Auch das kann bis hin zur Evolution der Microservice-Landschaft eine Menge Vorteile bringen.

Das richtige Werkzeug für den Einsatz von DDD und Microservices

Die DDD bietet einen ganzen Baukasten an Werkzeugen an, um strategisches und taktisches Domain Driven Design zu betrieben. Beim strategischen DDD sind das z. B. Dave Snowdens  Komplexitätsanalyse nach Cynefin, Domänenmodelllierung mit Aberto Brandolinis Event Storming, Exploration mit Hilfe von Simon Wardleys Wardley Mapping, Strategische Entkopplung durch Eric Evans Bounded Context Mapping oder System Thinking nach Donella Meadows. Diese Werkzeuge zu kennen und erfolgreich einzusetzen ist essenziell für den erfolgreichen Einsatz DDD und Microservices.

Für die Microservices selbst und deren Abgrenzung stellt Domain Driven Design das Konzept der internen Bausteine (Internal Building Blocks) mit vielen nützlichen Patterns zur Verfügung. Das vielleicht wichtigste dabei sind die Aggregates, die als kleinste sinnvolle Einheit für einen Microservice sozusagen den Gegenpol zu den Bounded Contexts bilden.

Fazit

Anhand dieser Betrachtungen lässt sich klar sagen: Auf der Ebene von Microservices und Domain Driven Design passt der Deckel ganz klar auf den Topf! Bounded Contexts sind für diesen Bund ein wertvoller Beitrag – unter vielen anderen.

Sie möchten mehr zu dem Thema erfahren?

Einen tieferen Einblick in Microservice-Architekturen und Domain Driven Design vermitteln die beiden Trainings „Flexible Architekturmodelle (FLEX)“ und „Domain Driven Design (DDD)“. Wenn Sie die Zertifizierung zum Certified Professional for Software Architecture-Advanced Level (CPSA-A ®) anstreben, erhalten Sie mit diesem perfekten Trainings-Doppelpack Credit Points in den Kompetenzbereichen Technik, Methodik und Kommunikation.

Soft Skills in der IT: Feedback und Konfliktfähigkeit in agilen Teams

Soft Skills in der IT: Feedback und Konfliktfähigkeit in agilen Teams

Softwareentwicklung in agilen Teams stellt hohe Anforderungen an jedes einzelne Teammitglied. Während den fachlichen und technischen Skills für gewöhnlich die höchste Aufmerksamkeit gewidmet wird, fallen die Soft Skills naturgemäß mit schöner Regelmäßigkeit unter den Tisch. Das ist gleich aus mehreren Gründen paradox: Scrum dient nicht in erster Linie der Verwaltung von Tasks und deren termingerechter Umsetzung, sondern der Organisation des Teams, das mit der Umsetzung betraut ist. Das bringt zwangsläufig den Faktor „Mensch“ ins Spiel.

Im „Daily Scrum“ bleiben oft nicht mehr als fünfzehn Minuten, um die Befindlichkeit der Kollegen, schwelende Konflikte und Unstimmigkeiten im Team zu erfassen. Wer hier nicht eine gehörige Portion Empathie mitbringt, kann schnell mit Problemen konfrontiert werden. Zusammenarbeit ermöglicht erst wahre Teamfähigkeit und dazu gehören zielgerichtetes Feedback sowie Konfliktfähigkeit. Das sind die Themen für diesen zweiten Artikel aus unserer Soft Skills Reihe. Im ersten Teil ging es um Best Practices in der Kommunikation und Gesprächsführung.

Der Ursprung aller Konflikte zwischen mir und meinen Mitmenschen ist, dass ich nicht sage, was ich meine, und dass ich nicht tue, was ich sage.

Martin Buber

Die Fähigkeit, sich einer Gruppe anderer Menschen nicht nur anzuschließen, sondern auch, sich in angemessenem Umfang in eine Gruppe einzuordnen, ist von zentraler Bedeutung für eine erfolgreiche Zusammenarbeit. Dabei geht es darum, mit anderen Teammitgliedern und Stakeholdern zusammen sozial zu agieren und sich und sein Können im Sinne einer Gruppenaufgabe optimal einzubringen, egal ob Sie Softwarearchitekt:in, Entwickler:in, Scrum Master, Manager oder Product Owner (alle Geschlechter) sind. Eine Kultur der Zusammenarbeit sollte gefördert werden, in der fachliche und persönliche Auseinandersetzungen konstruktiv möglich sind.

Reflektion fördert erfolgreiche Zusammenarbeit

Zu einer erfolgreichen Zusammenarbeit gehört es seinem Gegenüber ein offenes und ehrliches Feedback zu geben. Feedback ist ein wichtiger, entscheidender Teil der Kommunikation. Außerdem ist es wichtig, zwischen der Person und ihrer Rolle zu unterscheiden. Dadurch fühlt der Angesprochene sich nicht persönlich verletzt, sondern realisiert durch eine Reflexion, dass nicht er persönlich angegriffen wird, sondern die Rolle, die er gerade innehat.

Durch Feedback fördert man die Reflexion aus sich selbst und der Gruppe und verbessert so die Zusammenarbeit im Team. Man selbst teilt einem anderen mit, wie man ihn sieht und wie man ihn versteht. Feedback stellt aber auch einen Lernprozess dar. Durch das Feedback kann man selbst lernen und verstehen, wie andere einen wahrnehmen, wie man auf sie wirkt. Es ist somit zu unterscheiden zwischen Feedback geben und Feedback erhalten. Bei beiden Feedbackarten sind Regeln zu berücksichtigen.

Wie Sie richtig Feedback geben – und Feedback nehmen

Beim Feedback geben ist zunächst einmal zu festzustellen, ob das Feedback überhaupt erwünscht ist. Ist dies der Fall, dann sollte der Feedback-Nehmer bei den getroffenen Aussagen wertgeschätzt werden und die eigenen Empfindungen sollten als „Ich-Botschaft“ z. B. mit „Ich habe gesehen, dass…“ ausgedrückt werden. Hierbei gilt es zu beachten, niemals persönlich oder beleidigend zu werden und Verbesserungsvorschläge sowie Alternativen zum Verhalten des Feedbacknehmers anzubieten, die sich auch tatsächlich umsetzen lassen.

Der Feedbacknehmer muss sich im Vorfeld auch über einige Prinzipien bewusst sein. Er muss sich im Klaren sein, ob er für ein Feedback bereit ist. Ist dies der Fall, dann sollte er dem Feedback-Geber in aller Ruhe zuhören und ihm nicht ins Wort fallen. Lediglich Verständnisfragen sind erlaubt. Außerdem ist die Bereitschaft erforderlich, sich über das Gehörte Gedanken zu machen und danach zu entscheiden, was davon zukünftig im eigenen Verhalten umgesetzt werden soll. Als Feedbacknehmer sollte man auch immer seine Dankbarkeit dem Gesprächspartner gegenüber zum Ausdruck bringen.

Kühlen Kopf bewahren mit guter Konfliktfähigkeit

Konfliktfähigkeit – das heißt der Mut, Konflikte auszutragen, statt ihnen aus dem Weg zu gehen, und die Fähigkeit, sie zu einer tragfähigen Lösung zu führen. Sie sind als Softwarearchitekt:in, Teil des Entwicklungsteams oder Stakeholder in IT-Projekten aufeinander angewiesen und Ihre Soft Skills zur Konfliktlösung werden täglich gefordert. Dabei ist es wichtig, die eigene Wahrnehmung nicht als die alleinige „richtige“ Wahrheit anzusehen.

Die Einschränkung einer differenzierten Wahrnehmungsfähigkeit ist ein typisches Kennzeichen von eskalierenden Konflikten. Deshalb ist es notwendig, die eigene Wahrnehmung und damit auch verbunden die Interpretation der Ereignisse nicht absolut zu setzen, sondern einer Überprüfung und Korrektur zu unterwerfen und damit auch die eigenen Anteile am Konflikt zu erkennen. Die Bereitschaft hierfür ist bereits ein wichtiger Schritt zur Anerkennung von Rechten der anderen Konfliktpartei. Zusätzlich sollte die Lösung des Konflikts sich an den Interessen aller Beteiligten und allen Betroffenen orientieren. Es sollten Vorteile für möglichst alle Parteien geschaffen werde und großen Wert auf eine rationale Konfliktaustragung ohne Kontrollverlust gelegt werden. Außerdem ist es ratsam, eine dritte Partei mit einzubeziehen, wenn die Verhandlungen ins Stocken geraten und kein Fortschritt erkennbar ist.

Doch mit kühlem Kopf und guter Konfliktfähigkeit werden sie diese täglichen Herausforderungen meistern, denn wie schon der französischer Moralist Joseph Joubert sagte: „Das Ziel eines Konflikts oder einer Auseinandersetzung soll nicht der Sieg, sondern der Fortschritt sein.“

Was ist Ihre Meinung?

Welche weiteren Praxis-Tipps haben Sie zum Thema Feedback und Konfliktfähigkeit? Welches Thema darf auf keinen Fall in unserer Soft Skills Reihe fehlen? Schreiben Sie es gerne in die Kommentare. Wir freuen uns auf den Austausch!

Sie möchten Ihre Soft Skills auf ein neues Level bringen?

Dann empfehlen wir Ihnen unser 3-tägiges Training ‚Soft Skills für Softwarearchitekten (SOFT)‘. Wenn Sie die Zertifizierung zum Certified Professional for Software Architecture-Advanced Level (CPSA-A ®) anstreben, erhalten Sie mit diesem Soft Skills Training 30 Credit Points im Kompetenzbereich Kommunikation. Zum Soft Skills Training

Die Ubiquitous Language der Softwareentwicklung

Die Ubiquitous Language der Softwareentwicklung

Erste Versionen des Cartoons stammen aus den 1960ern. (Illustrator unbekannt)

Feix

Axel Feix

Axel Feix hat langjährige Projekterfahrung als Analyst und Softwarearchitekt. Er unterstützt Kunden als Senior Consultant und Trainer bei der Einführung und Umsetzung von Software-Engineering, Requirements-Engineering, Softwarearchitektur-Management und Architekturdokumentation. Er interessiert sich für was fliegt, alles was man visualisieren und spielen kann, und was die Welt zusammenhält.

Vor vielen Tausend Jahren bestrafte Gott die Menschen in der Stadt Babylon dafür, dass sie sich erdreisteten, einen Turm bis in den Himmel zu bauen. Er sorgte dafür, dass die Menschen sich untereinander nicht mehr verstanden und so musste das Turmbauprojekt eingestellt werden. Seitdem spricht man von der babylonischen Sprachenverwirrung.

Der Turmbau zu Babel als Auslöser der babylonischen Sprachverwirrung

„Ein Redner kann sehr gut informiert sein, aber wenn er sich nicht genau überlegt hat, was er heute diesem Publikum mitteilen will, dann sollte er darauf verzichten, die wertvolle Zeit anderer Leute in Anspruch zu nehmen.“

(Lee Iacocca *1924).

Wenn im IT-Team aneinander vorbeigeredet wird

IT-Teams sind schon ein Volk für sich, und das ist durchaus positiv gemeint. Die ITler bilden oft einen „fachlichen Mikrokosmos“ in einem Unternehmen und bleiben gerne unter sich. Das heißt aber noch lange nicht, dass Entwickler:innen, Softwarearchitekt:innen, Tester:innen, Projektmanager:innen, Scrum Master und Deployment Manager (alle Geschlechter) auch nur ansatzweise eine gemeinsame Sprache sprechen – von Abteilungsleitung, Fachabteilungen und Management einmal ganz abgesehen. Unterschiedliche Ausbildungswege und fachliche Schwerpunkte, aber auch individuelle Unternehmens- und Projekterfahrungen führen in der Regel dazu, dass Fachtermini und Domänenbezeichner nicht durchgängig bekannt sind oder von Mitarbeiter:in zu Mitarbeiter:in anders verstanden werden. Die resultierenden Missverständnisse können gravierende Auswirkungen auf Effizienz und Projekterfolg haben und im Zweifel eine Menge Geld kosten. Was dabei herauskommen kann, sieht man in dem obigen Bild. Aber was tun?

Und die Lösung heißt: Domain-Driven Design (DDD)

Seit Anfang der 2000er-Jahre gibt es mit dem Domain-Driven Design (DDD) eine ganzheitliche Vorgehensweise zur Modellierung komplexer Software. Im DDD geht man dabei von zwei Grundgedanken aus:

  1. Fachlichkeit und Fachlogik sollten den Schwerpunkt im Softwaredesign bilden
  2. Ein Modell der Anwendungsdomäne sollte die Grundlage für den Entwurf komplexer Fachlichkeit bilden

Im Domain-driven Design (DDD) führt die Fachlichkeit und nicht die Technik

Die Anwendungsdomäne soll also die Grundlage für den Softwareentwurf bilden. Um diese adäquat zu beschreiben, sollte eine Ubiquitous Language in allen Stufen der Softwareerstellung, d. h. von der Modellierung über die Implementierung bis zum Softwaretest verwendet werden. Objekte und Beziehungen aus den Objekten und Beziehungen im Domänenmodell finden sich also im Sourcecode und Testcode wieder und alle Projektbeteiligten sprechen innerhalb des Projekts dieselbe (Fach-) Sprache. Diese Sprache wird aber nicht einmalig im Domänenmodell entwickelt und dann überall verwendet. Sie wird evolutionär weiterentwickelt und bei Änderungen in der Implementierung hat dies gegebenenfalls auch Auswirkungen auf das Domänenmodell (und alle anderen Artefakte). Damit ist jeder Stakeholder in der Lage, sich in allen Projektartefakten (Modell, Implementierung, Tests, Datenbank etc.) zurechtzufinden und sich an Diskussionen zu beteiligen.

Wenn Sie mehr zu Domain-driven Design (DDD) lernen möchten

Einige Vorzüge einer gemeinsamen Sprache zur Beschreibung des Problemraums und der Anwendungsdomäne haben Sie jetzt kennengelernt. Wenn Ihnen als Softwarearchitekt:in nun noch das nötige Rüstzeug fehlt, um DDD im Umgang mit Stakeholdern und dem Entwicklungsteam einzuführen, empfehlen wir Ihnen unser 3-tägiges Softwarearchitektur-Training ‚Domain Driven Design (DDD)‘. Wenn Sie die Zertifizierung zum Certified Professional for Software Architecture-Advanced Level (CPSA-A ®) anstreben, erhalten Sie mit diesem DDD Training 20 Credit Points im Kompetenzbereich Methodik und 10 Credit Points im Kompetenzbereich Kommunikation.

Was ist Ihre Meinung?

Schon Wilhelm von Humboldt wusste: Die gemeinsame Sprache ist der Schlüssel zur Welt. Wie gehen Sie in Ihren Projekten mit den Fachsprachen der jeweiligen Experten um? Schreiben Sie es uns in die Kommentare. Wir freuen uns auf den Austausch!

Soft Skills in der IT: Jeder hat sie, fast keiner schöpft ihr volles Potenzial aus

Soft Skills in der IT: Jeder hat sie, fast keiner schöpft ihr volles Potenzial aus

Neben den Hard Skills, also dem fachlichen Know-how, sind auch die richtigen Soft Skills eine wichtige Fähigkeit am Arbeitsplatz. Gerade im Projektmanagement sind “weiche” Fähigkeiten wie Moderation und Empathie entscheidend, da sowohl Projektleiter:innen als auch Softwarearchitekt:innen und -entwickler:innen stets mit anderen Abteilungen verbunden sind und effektiv kommunizieren müssen. In drei Teilen möchten wir Ihnen wichtige Soft Skills an die Hand geben, damit Sie Ihr Kommunikations- und Konfliktmanagement auf ein neues Level bringen! Im ersten Teil geht es um Best Practices in der Kommunikation und Gesprächsführung. Dabei ist es egal, ob sie Java-Entwickler:in, Scrum Master, Manager oder Product Owner (alle Geschlechter) sind: gerade im Hinblick auf agile Vorgehensweisen in der IT ist heute jedes Teammitglied kommunikativ gefordert.

„Ein Redner kann sehr gut informiert sein, aber wenn er sich nicht genau überlegt hat, was er heute diesem Publikum mitteilen will, dann sollte er darauf verzichten, die wertvolle Zeit anderer Leute in Anspruch zu nehmen.“

(Lee Iacocca *1924).

Kommunikationsfähigkeit: nonverbal und verbal

Die Wirkung der Mimik, Gestik und Körpersprache wird oftmals unterschätzt, obwohl nonverbale Kommunikation mit über 90 % ein wesentlicher, erfolgsabhängiger Bestandteil unseres täglichen Lebens ist. Glaubwürdigkeit entsteht dadurch, dass die verbale und nonverbale Kommunikation miteinander übereinstimmen.

In Bezug auf die Gestik und die dazugehörige Körpersprache ist bei Meetings von mehreren Personen im Projekt darauf zu achten, dass die Positionierung der Teilnehmer:innen auf gleicher Augenhöhe stattfindet. Dadurch wird unnötiges Konfliktpotenzial, das sich aufgrund der ungleichberechtigten Positionierung der Gesprächspartner:innen ergibt, verhindert. Es sollte darauf geachtet werden, den persönlichen Raum aller Person nicht zu verletzen. Wenn Sie mit allen Gesprächspartner:innen an einem Tisch sitzen, achten Sie drauf, dass die relevanten Dokumente in der Mitte liegen. Noch besser ist es, Besprechungen vor einem Whiteboard durchzuführen, da hierdurch die gleiche Augenhöhe garantiert wird. Bei elektronischen Dokumenten sind Beamer und Flipchart als Präsentationsmedien zu bevorzugen.

Gruppengespräche

In der Gruppe zu sprechen, bedeutet auch, die Gruppe in Ihrer Gesamtheit zu integrieren. Wenn Ihnen eine Frage eines Gruppenmitglieds gestellt wurde, antworten Sie bitte immer in die Gruppe hinein. Führen Sie keine Einzelgespräche mit Gruppenmitgliedern. Gruppengespräche zeichnen sich durch Teamfähigkeit aus und das bedeutet konstruktiv zusammenarbeiten, Ideen durchsprechen und Meinungen diskutieren! Neben der Arbeitskoordination können in Gruppensitzungen anstehende Probleme gemeinsam gelöst und allgemein relevante Informationen ausgetauscht werden.

Einzelgespräche

Bei Einzelgesprächen ist es besonders wichtig, die Person direkt gegenüber anzusehen. Bei einer Frage direkten Blickkontakt zu suchen und die Körpersprache seines Gesprächspartners zu beobachten. Die Körpersprache sollte auch vor, während und nach der Antwort intensiv beobachtet werden, denn der Köper lügt nie.

Ein paar Hinweise, wie ein Gespräch gut gelingt:

  • Bereiten Sie sich auf die Inhalts- und Beziehungsebene des Gesprächs gut vor.
  • Behalten Sie das Gesprächsziel immer im Blick.
  • Bringen Sie immer Ihre Wertschätzung zum Ausdruck.
  • Bemühen Sie sich, ihre Gesprächspartner:innen zu verstehen und selbst verstanden zu werden

Stellen Sie Fragen, die das Gespräch vertiefen:

  • Wie kann ich das verstehen?
  • Was kann ich mir konkret darunter vorstellen?
  • Warum ist das so?
  • Klären Sie sofort Unklarheiten.
  • Benutzen Sie eine klare und anschauliche Sprache mit Beispielen.
  • Lassen Sie sich nicht unterbrechen, aber unterbrechen Sie einseitige Monologe.
  • Fassen Sie sich kurz!

Aktives Zuhören

Das aktive Zuhören ist eine zentrale Gesprächsführungstechnik, um von der Empfängerseite aus das Gespräch zu verbessern. Aktives Zuhören ist ein Basic für alle Softwarearchitekt:innen. Es hilft, Vertrauen aufzubauen, Missverständnisse zu vermeiden und durch non-direktives Feedback zu lernen. Aktives Zuhören zeichnet sich durch die offene und empathische Grundeinstellung, das authentische und gleichbleibende Auftreten und durch die positive Bewertung des Gesprächspartners oder der Gesprächspartnerin aus. Dabei wird nach Carl R. Rogers das Verstehen des Sprechers unterstützt durch:

  • Auf das Gegenüber einlassen, konzentrieren und dies durch die eigene Körperhaltung ausdrücken
  • Mit der eigenen Meinung zurückhaltend umgehen
  • Nachfragen bei Unklarheiten
  • Zuhören heißt nicht gutheißen
  • Pausen sind auszuhalten, sie können ein Zeichen sein für Unklarheiten, Angst oder Ratlosigkeit
  • Auf die eigenen Gefühle achten
  • Die Gefühle des Gegenübers erkennen und ansprechen
  • Bestätigende kurze Äußerungen
  • Geduld haben und den Gesprächspartner nicht unterbrechen, sondern ausreden lassen
  • Blickkontakt halten
  • Sich durch Vorwürfe und Kritik nicht aus der Ruhe bringen lassen
  • Empathie ausüben und sich innerlich in die Situation des Sprechers versetzen

Erfolgsrezepte für Ihr nächstes Gespräch

Daraus lassen sich eine ganze Reihe von Best Practices für Ihr nächstes Gespräch ableiten:

  • Paraphrasieren Sie die Aussage, also wiederholen diese mit Ihren eigenen Worten
  • Sprechen Sie direkt die Gefühle des Gegenübers an, indem Sie diese und somit auch ihn/sie widerspiegeln
  • Stellen Sie mehrfach Fragen zu den Inhalten
  • Ist Ihnen etwas unklar, bitte sofort nachfragen, um sich zu vergewissern
  • Im Anschluss zum Fortfahren animieren
  • Wägen Sie Inhalte für sich ab

Was ist Ihre Meinung?

Welche weiteren Praxis-Tipps haben Sie zum Thema Kommunikation und Gesprächsführung? Welches Thema darf auf keinen Fall in unserer Soft Skills Reihe fehlen? Schreiben Sie es gerne in die Kommentare. Wir freuen uns auf den Austausch!

Sie möchten Ihre Soft Skills auf ein neues Level bringen? Dann empfehlen wir Ihnen unser 3-tägiges Training ‚Soft Skills für Softwarearchitekten (SOFT)‘. Wenn Sie die Zertifizierung zum Certified Professional for Software Architecture-Advanced Level (CPSA-A ®) anstreben, erhalten Sie mit diesem Soft Skills Training 30 Credit Points im Kompetenzbereich Kommunikation. Zum Soft Skills Training

 

Im zweiten Teil unserer Soft Skills Reihe geht es um Feedback und das richtige Konfliktmanagement.