Management von IT-Teams

Dr. Sasha Göbbels
http://slides.technologyscout.net/team-management/
You either die an engineer or live long enough to see yourself become the business person.
Cliff Moon

Überblick

  • Kurze (!) Vorstellung
  • Was ist Engineering Management?
  • Was ist Team Management?
  • Erwartungsmanagement
    • Manager ↔ Firma
    • Team ↔ Manager
  • Soft Skills?
  • Literatur

Wer bin ich?

  • Software Engineering Manager @ Overleaf
  • Reichlich Erfahrung als Software Engineering Manager & Projektleiter
  • Erfahrung mit über mehrere Kontinente verteilten, cross-funktionalen Teams
Und sonst so?
  • Studium Chemie (MRI, Quantenmechanik)
  • IT Freelancer
  • Sammler von Programmiersprachen
  • Multipotentialite

Engineering Management

The key to being a good manager is keeping the people who hate me away from those who are still undecided.
Casey Stengel (1890-1975)
Engineering management is the application of the practice of management to the practice of engineering.
Wikipedia

Details!

  • Liegt zwischen Engineering/Softwareentwicklung und Management
  • Zählt meist zum mittleren Management
  • Wird häufig von Technikern besetzt
  • No more coding! No more coding?
  • Mehr Soft Skills, weniger Hard Skills

Was ist Team-Management?

You don't lead by hitting people over the head - that's assault, not leadership.
Dwight D. Eisenhower

Mögliche Tätigkeitsfelder

  • Technische Planung
  • Resourcenplanung
  • Human Resources
  • People Ops

Babylonische Begriffsverwirrung

  • Projektleiter/-manager
    1 Team, Fokus: Resourcen
  • Team Lead/Lead Developer
    1 Team, Fokus: techn. Mentoring
  • Engineering Manager
    mehrere Teams, Fokus: People Ops
  • Head of/Director/Vice President
    mehrere bis alle Teams, Fokus: Organisation

Ein Bild sagt mehr als 1000 Worte!

Projektleiter

Der PL ist für die operative Planung und Steuerung des Projektes verantwortlich. Je nach Projektart ist er in diesem Zusammenhang für das Erreichen von Sach-, Termin-, Kosten- bzw. Ausbildungszielen im Rahmen des Projekts zuständig.
Quelle: Wikipedia

Team Lead / Lead Developer

A lead programmer […] is responsible for the underlying architecture for the software program, as well as for overseeing the work being done by any other software engineers […]. A lead programmer will typically also act as a mentor for new or lower-level software developers or programmers, as well as for all the members on the development team.
Quelle: Wikipedia

Engineering Manager

Managers in the engineering department at GitLab see the team as their product. While they are technically credible and know the details of what developers work on, their time is spent hiring a world-class team and putting them in the best position to succeed. They own the delivery of product commitments and are always looking to improve productivity. They must also coordinate across departments to accomplish collaborative goals.
Quelle: GitLab

Head of/Director/Vice President

Hier werden die Aufgabenbereiche bzw. die Anzahl betreuter Mitarbeiter schrittweise immer größer.

Managementese

  • Head Count
    Wieviele Leute arbeiten in einem Team/Projekt, an einer Aufgabe?
  • Management Span
    Wieviele Leute sind einem Teamleiter unterstellt?
  • Transaction Costs
    Wieviel Aufwand steckt in den einzelnen Verbindungen?

Erwartungsmanagement

"Wenn ich groß bin, werde ich ein Vorwurf", sagte die Erwartung.

Erklärung

  • Jede(r) hat Erwartungen an andere
  • Es gibt (mind.) zwei Varianten:
    • Explizite Erwartungen
      Verträge, Company Handbook
    • Implizite Erwartungen
      Was 'üblich' ist
  • Konsequenzen bei Nichterfüllung

Manager ↔ Firma

  • Manager → Firma
    • Kompensation
    • Informationen
    • Arbeitsumfeld
    • Entscheidungsfreiheit
  • Manager ← Firma
    • Aufgabenerfüllung
    • Reporting
    • Unternehmerisches Denken

Team ↔ Manager

  • Team → Manager
    • Informationen
    • Guidance ('Führung')
    • Betreuung
  • Team ← Manager
    • Aufgabenerfüllung
    • Informationen

Konsequenzen bei Nichterfüllung

  • Spannungen
  • Offene Streitigkeiten
  • Hohe Mitarbeiterfluktuation
  • Kündigungen

Massnahmen zur Vermeidung

  • Implizit zu explizit:
    • Codifizierung
      Handbook, Wiki, Videos
    • Bei Start: Onboarding!
  • Kommunikation
    • regelmäßige Gespräche
      One-on-Ones, Teammeetings
    • Fast Feedback
    • Erwartungs-Workshops

Soft Skills

Software is the invisible writing that whispers the stories of possibility to our hardware.
Grady Booch

Soft? Hard?

  • Die Trennung zwischen Soft und Hard Skills ist eher willkürlich
  • Kommunikation ist Basis fast aller Skills
  • Sarkasmus z.B. ist eine Ausdrucksform, wenn Mitarbeiter nicht geübt sind, negatives Feedback produktiv weiter zu geben

Arbeitsatmosphäre

  • Move fast intelligently, fail fast intelligently
  • Emotionale Sicherheit
    • Fehler sind möglich
    • Mindert Stress
      Stress provoziert Fehler
    • Wettbewerb innerhalb eines Teams ist schädlich
    • Wir arbeiten nicht im "Survival Mode" (s. Empathie)

Stress und Druck

  • "Work hard, play hard"
    Bullshit!
  • Respekt vor dem Flow:
    • Mihály Csíkszentmihályi
    • Keine Unterbrechungen außerhalb der Pausen
    • Legt Meetings an den Rand der Arbeitszeit oder rund um die Mittagspause!

Organisation

  • Prozesse erleichtern die Arbeit, es sei denn sie verhindern das Denken
  • In Softwareteams ist "Prozess" die Summe aller Kommunikation über ihre Arbeit und deren Fortschritt
  • Wenn offizielle Prozesse nicht funktionieren: den funktionierenden Prozess nicht verstecken

Teamkultur

  • Alle erfolgreichen Teams in größeren Organisationen haben ihre eigene, von der Organisation abweichende Kultur
  • Die Organisation kann diese Kultur nicht übernehmen, weil sie sie eigentlich nicht will
  • Alles, was man kopieren kann, sind weniger wichtige Dinge wie Prozesse

Empathie

  • Aufgabe: Schmerzpunkte erkennen und beseitigen
  • Wichtig: Werte! Verdient Geld unter Beachtung eurer Werte, nicht "trotz".
  • Glorifizierung/Reframing von psych. oder soz. Spannungen als "Kriegswunden" ist gefährlich
    → Softwareentwickler sind keine Klingonen!
  • Im "Survival Mode" sieht man anderer Leute Schmerzpunkte nicht

Hard Skills als Empathie

  • Guten/gut lesbaren Code zu schreiben ist Empathie mit dem zukünftigen Selbst und dem Team
  • Teams, die nur auf Velocity/Durchsatz achten, werden das nicht respektieren
  • Empathie mit altem Code: auch jetzt schlechter Code ist irgendwann mal aus irgendeinem Grund so geschrieben worden

Radical Acceptance!

Alles geschieht aus einem Grund, auch wenn wir den (momentan) nicht kennen.
Das zu akzeptieren läßt Raum für Neugier!
Neugier führt zu Erklärungen.

Change Management

  • Du kannst die Prozesse nicht ändern, ohne dich selbst zu änderst, wenn du Teil des Systems bist, das du ändern willst
  • Selbst-organisierte / agile Teams können nur erfolgreich sein, wenn sie Änderungen in ihrer Umgebung bewirken können
  • Falls Änderungen nicht gelingen:
    You have two choices: change the team or change the team

Resourcen - Online

Teil 1

  • GitLab Team Handbook:
    https://about.gitlab.com/handbook
  • Michael Lopp, Rands in Repose:
    http://randsinrepose.com

Besondere Empfehlung

http://classicprogrammerpaintings.com/

"Lead engineer visits community support forum"

Resourcen - Bücher

Ein Teil der Bücher ist leider nicht mehr neu erhältlich und auch manche antiquarischen Ausgaben werden rar.

Teil 1

  • Michael Lopp:
    "Managing Humans"
  • J. Hank Rainwater:
    "Herding Cats: A Primer for Programmers Who Lead Programmers"
  • Camille Fournier:
    "The Manager's Path"

Teil 2

  • Julia Evans:
    "Help! I have a manager!"
  • Patrick Kua:
    "Talking with Tech Leads"
  • Tom deMarco:
    "Slack - Getting past burnout, Busyworks and the myth of total efficiency"

Teil 3

  • Tom deMarco:
    "Peopleware - Productive projects and teams"
  • Johanna Rothman, Ester Derby:
    "Behind Closed Doors - Secrets of Great Management"
  • Brian W. Fitzpatrick, Ben Collins-Sussman:
    "Team Geek - A Software Developers Guide to Working with Others"

Teil 4

  • Chad Fowler:
    "The Passionate Programmer"
  • John Z. Sonmez:
    "Soft Skills - The Software Developer's Life Manual"
  • Sandy Mamoli, David Mole:
    "Creating Great Teams - How Self-Selection Lets People Excel"

Teil 5

  • Lars Vollmer:
    "Wie sich Menschen organisieren, wenn ihnen keiner sagt, was sie tun sollen"

Resourcen - Podcasts

  • > Code
    https://www.greaterthancode.com
  • Führung auf den Punkt gebracht
    https://www.mehr-fuehren.de
  • Mein Scrum ist kaputt
    https://meinscrumistkaputt.de

Resourcen - Videos

Teil 1

  • Camille Fournier - Rebooting Culture
    https://vimeo.com/173328699
  • Camille Fournier - Cloning yourself is not an option
    https://vimeo.com/139907569
  • Coraline Ada Ehmke - Diversity in OSS
    https://vimeo.com/176695449

Teil 2

  • Patrick Kua - What I wish I knew as a first time Tech Lead
    https://www.youtube.com/watch?v=CjgWwmBW-bc
  • Patrick Kua - The Constant Life of a Tech Lead
    https://www.youtube.com/watch?v=9jd_vpcLK50
  • Patrick Kua - Geek's Guide to Leading Teams
    https://www.youtube.com/watch?v=a_IYL_aU7HQ

Teil 3

  • Laura Paterson & Patrick Kua - Technical Leadership
    https://www.youtube.com/watch?v=k_nti-mk5IY
  • Camille Fournier - Building and Motivating Engineering Teams
    https://www.youtube.com/watch?v=7R-Y2DwWOr0
  • Dave Thomas - Agile is Dead
    https://www.youtube.com/watch?v=a-BOSpxYJ9M

Teil 4

  • Patrick Kua - Why Technical Leadership Matters
    https://www.youtube.com/watch?v=_6BKK1SPAVI