Um Teamarbeit bei der Softwareentwicklung geht es im Interview mit Christian Kranert in der einhundertachtundachzigsten Episode des IT-Berufe-Podcasts.
Inhalt
Vorstellung Christian Kranert
Christian hat sich schon in Episode 164 des Podcasts über Softwarequalität ausführlich vorgestellt, aber hier noch einmal die wichtigsten Eckdaten.
Christian Kranert
seit 17 Jahren in der IT und Softwareentwicklung tätig
angefangen mit Visual Basic 6 auf Windows 95
Ausbildung zum Fachinformatiker für Anwendungsentwicklung absolviert
viel im SAP-Umfeld mit ABAP entwickelt
inzwischen hauptsächlich mit C# unterwegs
lebt und arbeitet in Nürnberg bei Head On Solutions GmbH
entwickelt dort Cloud-Software für lokale Geschäfte wie Friseur-Studios zum Planen von Terminen, Kassieren, Buchhaltung usw.
ist Abteilungsleiter mit eigenem Team
Teamarbeit in der Softwareentwicklung
Warum brauchen wir Teamarbeit bei der Softwareentwicklung?
bei der Komplexität heutiger Software ist es fast undenkbar, diese alleine zu entwickeln
heutige Webanwendungen enthalten z.B. sehr viel UI-Entwicklung und sind im Backend und Frontend sehr komplex, Stichwort: Full Stack
Christians Unternehmen hat ein eigenes Team ausgelagert nur für VueJS im Frontend
durch das Team entsteht auch bessere Software
wir wollen doch die "echte Welt" übersetzen in Code und dort gibt es auch mehr als einen Benutzer
gemeinsam zu entwickeln macht mehr Spaß, ist sozial, man kann voneinander lernen, man kann sich weiterentwickeln
die interdisziplinäre Zusammenarbeit mit dem Fachbereich bzw. Kunden ist auch extrem wichtig
Wie sieht erfolgreiche interdisziplinäre Zusammenarbeiten zwischen dem IT-/Entwicklungs-Team und anderen Abteilungen aus?
der Fachbereich erklärt den Entwickler:innen die Fachlichkeit
Entwickler:innen dürfen/müssen das aber auch hinterfragen und ggfs. bessere Lösungen vorschlagen
man sollte erst über das Problem reden und nicht schon über Lösung
es muss die generelle Bereitschaft zur Teamarbeit vorhanden sein und eine entsprechende Kultur
Welche Prozessmodelle (z.B. Wasserfall, Scrum) unterstützen/behindern die Teamarbeit?
das klassische Wasserfallmodell ist eher hierarchisch aufgebaut mit Lasten-/Pflichtenheft und passt nicht so gut zur Teamarbeit
Scrum ist aber auch kein Allheilmittel
das Daily ist sehr wichtig, denn Kommunikation ist der Schlüssel zu erfolgreicher Teamarbeit
Wie sieht richtig gute Teamarbeit in der Softwareentwicklung aus?
Kommunikation ist das A und O, z.B. wenn ein Feature fertig ist, damit die Kolleg:innen darauf aufsetzen können
alle Teammitglieder:innen sollten auch aktiv Hilfe anbieten und einfordern
die gesamte Softwareentwicklung ist Teamarbeit und die geht schon mit der Produktidee los
dabei kann es helfen, verschiedene Perspektiven einzunehmen, um ein besseres Bild der Anforderungen zu bekommen
auch weitere Aufgaben lassen sich besser im Team lösen: Risiken abschätzen, Prioritäten ableiten, Product Backlog füllen
wenn das Verhältnis von Kosten und Nutzen passt, startet die Implementierung und Aufgaben werden im Team verteilt
in Christians Team werden Konzepte z.B. gemeinsam erarbeitet, ganz einfach in OneNote*
das Team startet mit einem Datenmodell als Diskussionsgrundlage und legt dann die Datentypen fest
außerdem werden Mockups erstellt, um darüber gemeinsam zu diskutieren
sehr wichtig ist auch das gemeinsame Festlegen von Namen im Team, denn viele Köpfe haben mehr (fachliches) Wissen als einer alleine
der große Vorteil bei dieser Vorgehensweise ist, dass früh erkannte Fehler bei Anpassungen wenig kosten im Vergleich zu späteren Projektphasen, wenn alles schon umgesetzt ist
Warum ist die Teamkultur nicht nur beim Code Review wichtig und wie sieht sie aus?
Christians Team entwickelt oft im Pair Programming zusammen und führt danach noch Code Reviews durch
hier war oft insb. beim Testen die Einstellung, dass das doch jemand anders macht und nicht die Aufgabe der Softwareentwickler:innen sei