Team-API
Nachdem das Team und dessen fundamentale Bedeutung für das Erfüllen dargestellt wurde, kann nun über gut definierte Teaminteraktionen gesprochen werden, welche kohärente und dynamische Netzwerke zwischen klar kommunizierenden Teams ermöglichen.
Eine Team-API ist ein Wrapper um das Team selbst, wie es bei Software auch geschieht, um nicht zulässige Zugriffe zu verhindern und die Verarbeitung und Herausgabe von Informationen zu steuern.
Dabei betrachten wir:
- code: Runtime endpoints, libraries, clients, UI, etc. welche durch das Team erstellt werden
- Versionierung: Ein Versprechen des Teams, Dinge nicht kaputt zu machen (z.B. per SemVer)
- Wiki und documentation: besonders How-To Guides für andere Softwareteams
- Praktiken und Prinzipien: die vom Team präferierten Wege, Dinge zu erledigen
- Kommunikation: der Teamansatz für remote Kommunikationstools wie Chat und Videokonferenzen
- Arbeitsinformationen: Woran arbeitet das Team aktuell, was kommt als nächstes und einen Überblick über die kurz- und mittelfristigen Prioritäten
- Verschiedenes: Alles andere sonst, was für andere Teams für die Interaktion interessant sein kann
Die Team-API sollte explizit für die Benutzung durch andere Teams konzipiert und aufbereitet sein. Ist sie leicht zu finden, logisch aufgebaut und mit ihr leicht zu interagieren? Wie einfach ist es für einen Neuling, in das Team einzusteigen mithilfe der API? Wie werden Pull Requests aufgenommen / bearbeitet und andere Vorschläge von anderen Teams?
Die API wird stetig angepasst, sodass sie für die entsprechenden Konsumenten passt: die anderen Teams.
Viele der Konzepte für programmierbaren APIs können hier Anwendungen finden, da sie auch bei soziotechnischen Systemen verwendet werden (OpenAPI soll für Mensch und Menschen lesbar sein - ein soziotechnisches System).
Es ist wichtig, dass Zeit, Raum und Geld für Menschen ähnlicher Fähigkeiten, aber verschiedener Teams gegeben wird, sodass sie sich austauschen können. Zwei Dinge helfen dabei:
- ein bewusst entworfener (virtueller oder physischer) Raum
- Zeit weg vom Schreibtisch in Gilden, Communities of Practices (eine Gruppe von Menschen, die sich regelmäßig, freiwillig, austauschen, um gemeinschaftlich zu lernen und Wissen zu tauschen über ihre Interessendomänen, interne Techkonferenzen etc.)
Bei solchen Gelegenheiten fällt es Menschen leichter, mit anderen Teams zu interagieren und Informationen auszutauschen.