Kürzlich ist uns auf LinkedIn die folgende Anzeige in den Feed gespült worden:

Das sorgte bei uns für einige Verwunderung und Diskussionen, primär weil es überhaupt nicht zur Realität in unseren Projekten passt, wo wir so gar nicht den Eindruck haben, dass zu viel Konzeptarbeit ein vorherrschendes Problem ist.
Im Gegenteil. In ganz vielen Projekten läuft es so: Eine neue Iteration beginnt, es wird besprochen, was man erreichen will. Dann werden User Stories geschrieben und los geht’s. Vielleicht noch kurz drüber nachdenken, aber eigentlich möglichst zeitnah in die Tasten hauen. Wir haben ja keine Zeit. Insgesamt wird nach unserer Erfahrung durch die Bank weg viel, viel zu wenig konzipiert. Und wenn mal explizit Konzepte entwickelt werden, sind sie im Allgemeinen viel zu wenig durchdacht und detailliert.
Coden sorgt für kurzfristige Glücksgefühle
Irgendwie ist es ja auch verständlich: Konzepte zu entwickeln ist als Aufgabe (gefühlt) nicht so dankbar wie coden. Es kommt nichts heraus, was man direkt anfassen oder ausführen kann. Damit bekommen wir weniger direktes Feedback und so macht es vielen Menschen einfach weniger Spaß. Aber es hilft ja nix: auf intensives Nachdenken zu verzichten macht die Situation nicht besser (siehe auch unser Artikel „Wie Agilität den Blick auf den letzten vernünftigen Moment verschleiert“).
Die Folgen von ”Weniger Konzepte” kommen schleichend und dann heftig

Sich ganz aufs Coden zu konzentrieren, fühlt sich vielleicht erstmal gut an, weil man das Gefühl hat, total schnell voranzukommen. Das ist aber trügerisch und später rächt sich das ohne Zweifel.
Das System wird insgesamt weniger durchdacht und insgesamt uneinheitlich umgesetzt. Deswegen müssen ständig Anpassungen vorgenommen werden, um neu entdeckten Sachverhalten gerecht zu werden. Das System ist schwieriger zu verstehen, gerade für Personen, die neu ins Team oder Projekt kommen. Häufig haben Änderungen unerwartete Auswirkungen und die Implementierung neuer Features dauert länger als ursprünglich erwartet. Insgesamt werden die Weiterentwicklung und Wartung des Systems zunehmend langsamer und schwieriger.
Wie die Anzeige wahrscheinlich (oder hoffentlich!) gemeint ist
„Weniger Konzept“ ist so gesehen also keine besonders gute Idee. Aber natürlich können wir uns gut vorstellen, was unsere Kolleg:innen im Sinn hatten, als sie diese Anzeige konzipiert haben und wie sie gemeint ist. Natürlich kennen wir auch die Berater, die nur Folien und heiße Luft produzieren, die sich im Elfenbeinturm wohl fühlen und keinen Bedarf sehen, sich die Hände schmutzig zu machen und sich um die Umsetzung zu kümmern. Dagegen möchten sich die Ersteller der Anzeige positionieren und zeigen, dass sie die Umsetzung konkret und im Detail begleiten. Ihnen ist es wichtig, anzupacken und etwas zu schaffen.
Mehr Konzept, aber gut gemacht

Wir wollen auch anpacken und etwas schaffen. Aber wir wollen uns dagegen verwehren, Konzept gleichzusetzen mit theoretischem Geschwafel ohne Mehrwert. Wir brauchen nicht weniger Konzepte, sondern mehr gute Konzepte. Konzepte, mit denen wir das, was wir bauen wollen, vorher sauber gestalten und präzise entwerfen. Konkret, pragmatisch und mit Bodenhaftung. Damit hat Konzeptarbeit einen echten Mehrwert und ist ein integraler Teil von Machen, Umsetzung und Fortschritt.
Konzeptarbeit hilft uns in quasi allen Disziplinen und Bereichen der Softwareentwicklung, sei es Architektur, UI-Design, Betrieb, Security oder Testen. Es ist immer sinnvoll, sich vorher genau zu überlegen, was man eigentlich genau erreichen will und wie die dafür geeignetste Lösung aussieht. Und das sollte keine Aktivität sein, die wir nur einmal zu Beginn des Projektes ausführen. Es wäre wenig sinnvoll, zu versuchen, alle Konzepte, die wir für das System brauchen, am Anfang zu entwickeln. Stattdessen müssen wir Konzeptarbeit als kontinuierliche Aktivität im Projekt verankern:
Bei jeder neuen Iteration legen wir die Ziele fest, die wir erreichen wollen und definieren jeweils Anforderungen. Dafür entwickeln wir ein Konzept und schreiben es auf. Darin beantworten wir alle zentralen Fragen zur Funktionsweise und der zentralen Entscheidungen zu diesem Thema. Hier dürfen wir auch nicht zu schnell zufrieden sein; Präzision und Detail sind wichtig, sonst nutzen wir die Möglichkeiten von Konzeptarbeit nicht aus. Das heißt, wir müssen die Kernfälle gut erfassen, aber auch Sonder- und Randfälle berücksichtigen, Irrwege ausschließen und über mehrere Iterationen die Lösung einfacher und eleganter machen. Hier haben wir also wirklich die Möglichkeit, zu gestalten und eine coole Lösung zu entwickeln. Das darf auch etwas Zeit brauchen, denn die zahlt sich bei der Implementierung mehrfach aus. Damit haben wir dann auch die Grundlage geschaffen, um ein team-basiertes Review durchzuführen, um offene Punkte aufzudecken und Verbesserungen zu integrieren. Aus dem Konzept können wir dann Umsetzungstasks ableiten, die wir dann strukturiert und fokussiert abarbeiten können.
Früher und günstiger auf dem richtigen Weg
Konzepte haben einen enormen Vorteil: sie lassen sich viel leichter ändern als schon entwickelter Code. So können wir früher andere mit draufschauen lassen, Fehler erkennen und Verbesserungen einbauen. Wenn wir also in der beschriebenen Weise an Konzepten als Grundlage für die Entwicklung arbeiten, haben wir den Vorteil, dass wir zu besser durchdachten und besser passenden Lösungen kommen, die häufig viel einfacher sind und die wir auch nicht ständig wieder umbauen müssen. Aus unserer Sicht ist „Konzept“ ein Teil der Umsetzung, von dem wir nicht weniger brauchen, sondern mehr und in gut. Unsere Anzeige würde daher lauten: „Mehr Konzept, mehr Umsetzung.“ 🦩
Dominik & Matthias

0 Kommentare