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 Kranertseit 17 Jahren in der IT und Softwareentwicklung tätigangefangen mit Visual Basic 6 auf Windows 95Ausbildung zum Fachinformatiker für Anwendungsentwicklung absolviertviel im SAP-Umfeld mit ABAP entwickeltinzwischen hauptsächlich mit C# unterwegslebt und arbeitet in Nürnberg bei Head On Solutions GmbHentwickelt dort Cloud-Software für lokale Geschäfte wie Friseur-Studios zum Planen von Terminen, Kassieren, Buchhaltung usw.ist Abteilungsleiter mit eigenem TeamTeamarbeit in der Softwareentwicklung
Warum brauchen wir Teamarbeit bei der Softwareentwicklung?
bei der Komplexität heutiger Software ist es fast undenkbar, diese alleine zu entwickelnheutige Webanwendungen enthalten z.B. sehr viel UI-Entwicklung und sind im Backend und Frontend sehr komplex, Stichwort: Full StackChristians Unternehmen hat ein eigenes Team ausgelagert nur für VueJS im Frontenddurch das Team entsteht auch bessere Softwarewir wollen doch die „echte Welt“ übersetzen in Code und dort gibt es auch mehr als einen Benutzergemeinsam zu entwickeln macht mehr Spaß, ist sozial, man kann voneinander lernen, man kann sich weiterentwickelndie interdisziplinäre Zusammenarbeit mit dem Fachbereich bzw. Kunden ist auch extrem wichtigWie sieht erfolgreiche interdisziplinäre Zusammenarbeiten zwischen dem IT-/Entwicklungs-Team und anderen Abteilungen aus?
der Fachbereich erklärt den Entwickler:innen die FachlichkeitEntwickler:innen dürfen/müssen das aber auch hinterfragen und ggfs. bessere Lösungen vorschlagenman sollte erst über das Problem reden und nicht schon über Lösunges muss die generelle Bereitschaft zur Teamarbeit vorhanden sein und eine entsprechende KulturWelche 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 TeamarbeitScrum ist aber auch kein Allheilmitteldas Daily ist sehr wichtig, denn Kommunikation ist der Schlüssel zu erfolgreicher TeamarbeitWie 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önnenalle Teammitglieder:innen sollten auch aktiv Hilfe anbieten und einforderndie gesamte Softwareentwicklung ist Teamarbeit und die geht schon mit der Produktidee losdabei kann es helfen, verschiedene Perspektiven einzunehmen, um ein besseres Bild der Anforderungen zu bekommenauch weitere Aufgaben lassen sich besser im Team lösen: Risiken abschätzen, Prioritäten ableiten, Product Backlog füllenwenn das Verhältnis von Kosten und Nutzen passt, startet die Implementierung und Aufgaben werden im Team verteiltin 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 festaußerdem werden Mockups erstellt, um darüber gemeinsam zu diskutierensehr wichtig ist auch das gemeinsame Festlegen von Namen im Team, denn viele Köpfe haben mehr (fachliches) Wissen als einer alleineder 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 istWarum 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 durchhier war oft insb. beim Testen die Einstellung, dass das doch jemand anders macht und nicht die Aufgabe der Softwareentwickler:innen seiaber gerade beim Testen ist die Abstimmung mit den Tester:innen wichtig, damit man nicht den kompletten Code umschreiben muss, wenn man am Test vorbei entwickelt hatWie stellt man sicher, dass alle Teammitglieder:innen sich aktiv einbringen und wie kann eine Führungskraft Teamarbeit fördern/behindern?
die Führungskraft ist sehr wichtig, denn ihre zentrale Aufgabe ist die Pflege der Teamkulturdie häufig anzutreffene Skepsis bei Entwickler:innen gegenüber Meetings muss von der Führungskraft abgebaut werdenMeetings müssen aber natürlich auch einen Mehrwert für alle Teilnehmer:innen bieten und müssen vernünftig geplant und vorbereitet werdenauch für Entwickler:innen sind Meetings wichtig, da sie helfen, offene Fragen zu klären und Entscheidungen herbeizuführenTeamarbeit kann die Teammitglieder:innen motivieren, wenn man gemeinsam eine gute Lösung findet und z.B. eine „harte Nuss“ knacktBraucht ein Team eine Leitung?
das kommt stark auf das Team anStorming, Forming, Norming, Performing: gibt es das wirklich in der Praxis?
Christian hat das mal in einem Buch gelesen, aber nur dunkel in Erinnerungin der Praxis durchlaufen die Teams diese Phasen wohl tatsächlich, aber intuitiv verhalten sich die Mitglieder:innen meist den Phasen entsprechendWie sieht häufig die (negative) Realität in Sachen Teamarbeit aus bzw. an welchen Fehlern scheitert Teamarbeit häufig?
Juniors werden vernachlässigt und bekommen keine oder zu wenig UnterstützungHierarchiedenken, gerade wenn Softwareentwicklung nicht das Kerngeschäft des Unternehmens istIntrovertiertheit der Teammitglieder:innenaber auch Extrovertiertheit bzw. Egozentrik bei Teammitglieder:innenMangel an Diversität im TeamWie wird man als Entwickler:in „teamfähig“?
Persönlichkeitsentwicklung! dazu gibt es viele gute Büchereine fördernde und fordernde Führungskraft ist wichtig für das Empowerment der Teammitglieder:innendie Führungskraft sollte z.B. One-on-Ones mit Mitarbeitenden führen, immer wieder nachfragen und auch die eigene Entwicklung aufzeigenloben und wertschätzen sollten bei jeder Führungskraft dazu gehörenEmpathie ist auch wichtigKonflikte sollten schnell gelöst werdenWie wichtig ist eine gute Fehlerkultur?
sehr wichtigFehler müssen erlaubt sein und dürfen nicht „geahndet“ werdenaber was ist eigentlich ein Fehler? Schludrigkeit ist sicherlich kein FehlerChecklisten können helfen, eine gewisse Basisqualität sicherzustellenWie können schon Azubis in die Teamarbeit integriert werden?
einfach mal loslegen und sie an die Hand nehmenAzubis direkt in echte Projekte einbinden, aber ohne harten Deadlines oder großes Fehlerpotentialviel lobenChecklisten helfen auch hier beim EinstiegWas sind die Folgen, wenn nicht im Team gearbeitet wird?
Christian hat noch nie jemanden kennengelernt, der/die sich aktiv gewehrt hat gegen Teamarbeiteher haben die Kolleg:innen evtl. Angst mitzumachenden berühmten „10x-Develover“ gibt es nicht, aber Seniors können als Multiplikatoren im Team wirken und Juniors voranbringen und damit das gesamte TeamWie/wo kann man dich erreichen?
LinkedInLinks
Permalink zu dieser Podcast-EpisodeRSS-Feed des PodcastsQualitätssicherung bei der Softwareentwicklung mit Christian KranertChristian Kranert bei LinkedInHead-on Solutions GmbH bei LinkedIn