Software Engineering Management – ​​Einblicke von Peeyush Ranjan, VP Engineering, Google

May 02 2023
Einführung Als Software-Ingenieur hatte ich das Glück, von einflussreichen Freunden und Managern in der Branche zu lernen, die durch die Ränge aufgestiegen sind und wertvolle Einblicke auf ihren Reisen als führende Ingenieure geteilt haben. In diesem Beitrag werde ich einige Überlegungen von Peeyush Ranjan, Vice President of Engineering bei Google, einer der Führungskräfte teilen, mit denen ich im Laufe der Jahre das Vergnügen hatte, zu interagieren.

Einführung

Als Software-Ingenieur hatte ich das Glück, von einflussreichen Freunden und Managern in der Branche zu lernen, die durch die Reihen aufgestiegen sind und wertvolle Einblicke auf ihren Reisen als führende Ingenieure geteilt haben. In diesem Beitrag werde ich einige Überlegungen von Peeyush Ranjan, Vice President of Engineering bei Google, einer der Führungskräfte teilen, mit denen ich im Laufe der Jahre das Vergnügen hatte, zu interagieren. Peeyush hat einen beeindruckenden Hintergrund als Softwareentwickler und technischer Leiter, nachdem er als Chief Technology Officer bei Flipkart, einem der erfolgreichsten E-Commerce-Einhörner Indiens, und als Vice President of Engineering bei Airbnb tätig war.

Strukturierung einer Organisation für Rechenschaftspflicht

Als Peeyush die Rolle des CTO bei Flipkart übernahm, hatte das Engineering-Team bereits rund 1.000 Ingenieure, die unter seiner Führung auf etwa 1.500 wuchsen. Er machte sich daran, eine Organisation zu schaffen, die so strukturiert war, dass sie mit spezifischen Verantwortlichkeiten operieren und sicherstellen konnte, dass es für jeden Bereich Ansprechpartner gab. Da es sich beispielsweise um einen zweiseitigen Marktplatz handelte, schuf er einen verantwortlichen Eigentümer für die Verkäuferseite des Unternehmens und einen verantwortlichen Eigentümer für die Käuferseite des Unternehmens. Dieser Ansatz eliminierte die gemeinsame oder diffuse Verantwortlichkeit und erleichterte es, Problemen auf den Grund zu gehen und Lösungen zu finden, wenn etwas nicht richtig funktionierte.

Die richtigen Leute in Führungspositionen haben

Peeyush betonte auch, wie wichtig es sei, in jeder Einheit die richtigen Leute in Führungspositionen zu haben. Er skizzierte einen Prozess zur Identifizierung dieser Führungskräfte, der das Verständnis ihrer Werte, ihrer Funktionsweise und das Finden von Gemeinsamkeiten in seinem Wertesystem im Vergleich zu ihrem beinhaltete. Als Führungskraft ist es wichtig, Menschen zu haben, die die Werte und Prinzipien, die Sie an den Tisch bringen, verstehen und umsetzen können, um ein harmonisches Umfeld zu schaffen, das die Mission des Unternehmens vereint.

Sicherstellen, dass die Teamgrundsätze mit den Werten und Prinzipien der Organisation übereinstimmen

Eine der wichtigsten Erkenntnisse für Manager auf der Einstiegsebene ist die Bedeutung eines Blicks für das Gesamtbild, um sicherzustellen, dass die Grundprinzipien ihres Teams mit den Werten und Prinzipien der Organisation übereinstimmen. Jedes Team ist ein Teil eines größeren Puzzles, und der Engineering Manager spielt eine entscheidende Rolle dabei, sicherzustellen, dass sich sein Team nahtlos in die umfassenderen Ziele der Organisation einfügt.

Befähigung und Transparenz bei der Schaffung effektiver Teams

Die Schlüsselwerte von Peeyush sind Empowerment und Transparenz, die für die Schaffung eines effektiven Engineering-Teams unerlässlich sind. Manager, die ihre Teams stärken und auf ihr Feedback hören, können die Produktivität ihres Teams vervielfachen und es effektiver machen, als nur die Anzahl der Mitarbeiter im Team zu erhöhen. Ingenieure schätzen Transparenz, daher sollten Manager offen und ehrlich zu ihren Teams sein. Transparenz schafft Vertrauen und erleichtert das gemeinsame Erreichen von Zielen und Zielen.

Eine Möglichkeit, dies zu erreichen, ist die regelmäßige Einbeziehung von Managementübergaben auf allen Ebenen der Führungshierarchie im Unternehmen.

Lassen Sie mich etwas mehr Kontext dazu hinzufügen, warum Managementübergaben wichtig sind – der Prozess der Kaskadierung von Informationen und Entscheidungen von höheren Managementebenen zu niedrigeren Ebenen ist aus mehreren Gründen in einem Softwareunternehmen unerlässlich:

  1. Ausrichtung und Konsistenz: Weitergaben stellen sicher, dass alle Managementebenen auf die gleichen Ziele hinarbeiten, und fördern die Konsistenz bei der Entscheidungsfindung und Ressourcenzuweisung im gesamten Unternehmen.
  2. Klare Kommunikation: Durch die Weitergabe von Informationen und Anweisungen kann das Management sicherstellen, dass alle Mitarbeiter gut über die Prioritäten, Strategien und Erwartungen des Unternehmens informiert sind, was es ihnen wiederum ermöglicht, ihre Aufgaben effektiver zu erfüllen.
  3. Ermächtigung und Rechenschaftspflicht: Weitergaben helfen dabei, Entscheidungsbefugnisse und Verantwortung an niedrigere Managementebenen zu delegieren, sodass sie fundierte Entscheidungen treffen und Verantwortung für die Leistung ihres Teams übernehmen können.
  4. Anpassungsfähigkeit und Reaktionsfähigkeit: Management-Weitergaben erleichtern eine schnellere Reaktion auf sich ändernde Marktbedingungen oder organisatorische Anforderungen, indem sichergestellt wird, dass relevante Informationen und Entscheidungen alle Ebenen umgehend erreichen.
  5. Zusammenarbeit und Teamarbeit: Effektive Übergaben fördern die abteilungsübergreifende Zusammenarbeit und Teamarbeit, indem sie alle Teams über unternehmensweite Initiativen, Herausforderungen und Erfolge auf dem Laufenden halten.
  6. Engagement und Moral der Mitarbeiter: Wenn Mitarbeiter die Ziele des Unternehmens und ihre Rolle bei deren Erreichung verstehen, fühlen sie sich eher engagiert und motiviert, zum Erfolg der Organisation beizutragen.
  7. Wissensaustausch und Entwicklung von Fähigkeiten: Weitergaben können als Plattform für den Austausch von Best Practices, gewonnenen Erkenntnissen und Fachwissen zwischen verschiedenen Teams und Managementebenen dienen und so eine Kultur des kontinuierlichen Lernens und der Entwicklung von Fähigkeiten fördern.

Aufbau autonomer Teams, die Risiken eingehen und innovativ sind

Peeyushs Einblicke in die Schaffung autonomer Teams, die bereit sind, Risiken einzugehen und innovativ zu sein, stimmen mit der Wachstumsmentalität überein, die für kontinuierliche Verbesserung unerlässlich ist. Dieser Ansatz ermutigt Einzelpersonen, ihre Lösungen zu finden und ihre Ideen zu entwickeln, wodurch ein Umfeld des Vertrauens und der Kreativität geschaffen wird.

Einige der wichtigsten Vorteile beim Aufbau autonomer Teams sind:

  1. Schnellere Entscheidungsfindung: Autonome Teams sind in der Lage, Entscheidungen innerhalb ihres Bereichs zu treffen, was zu schnelleren Reaktionszeiten führt und die Notwendigkeit einer ständigen Genehmigung durch das Management reduziert.
  2. Mehr Innovation: Wenn Teams die Freiheit haben, zu experimentieren und Entscheidungen zu treffen, entwickeln sie eher kreative Lösungen und Innovationen, die das Unternehmen voranbringen können.
  3. Höhere Produktivität: Mit größerer Autonomie können Teams ihre Arbeitsbelastung und Prioritäten effektiver verwalten, was zu einer höheren Effizienz und Produktivität führt.
  4. Verbessertes Mitarbeiterengagement: Mitarbeiter in autonomen Teams fühlen sich in der Regel stärker eigenverantwortlich und verantwortlich für ihre Arbeit, was zu einer höheren Arbeitszufriedenheit und einem höheren Engagement führt.
  5. Agilität und Anpassungsfähigkeit: Autonome Teams können schnell auf Veränderungen des Marktes, der Kundenbedürfnisse oder der Technologie reagieren, wodurch das Unternehmen anpassungsfähiger und widerstandsfähiger wird.
  6. Skalierbarkeit: Indem Teams in die Lage versetzt werden, unabhängig voneinander zu arbeiten, kann die Organisation ihre Abläufe einfacher skalieren, da neue Teams hinzugefügt werden können, ohne den Verwaltungsaufwand wesentlich zu erhöhen.
  7. Funktionsübergreifende Zusammenarbeit: Autonome Teams bestehen oft aus Mitgliedern mit unterschiedlichen Fähigkeiten und Fachkenntnissen, was die funktionsübergreifende Zusammenarbeit und den Wissensaustausch innerhalb des Teams fördert.
  8. Weniger Bürokratie: Da autonome Teams weniger Ebenen der Managementaufsicht benötigen, kann dies zu einer Verringerung der Bürokratie und des bürokratischen Aufwands führen, Prozesse rationalisieren und die Ausführung beschleunigen.
  9. Bessere Ressourcenzuweisung: Autonome Teams können basierend auf ihrer direkten Kenntnis der Projektanforderungen und -prioritäten fundiertere Entscheidungen über die Ressourcenzuweisung treffen, was zu einer effizienteren Ressourcennutzung führt.
  10. Anziehung und Bindung von Talenten: Eine Kultur, die Autonomie und Empowerment unterstützt, kann Top-Talente anziehen und dazu beitragen, Mitarbeiter zu halten, da sie sich in ihren Rollen geschätzt, herausgefordert und vertraut fühlen.

Einer der herausforderndsten Aspekte des technischen Managements ist der Übergang von einem einzelnen Mitarbeiter zu einem Manager. Peeyush merkte an, dass ein großartiger Ingenieur nicht zwangsläufig bedeutet, ein großartiger Personalmanager zu sein. Ein erfolgreicher Engineering Manager muss die Rolle eines empathischen Personalmanagers und eines technischen Leiters ausbalancieren und sein Team führen und beeinflussen, ohne überheblich zu sein.

Führungskräfte sollten ihrem Team Möglichkeiten bieten, zu wachsen und eigene Lösungen zu entwickeln, um ein Gefühl der Eigenverantwortung und des Stolzes auf ihre Arbeit zu schaffen. Sie müssen auch ein tiefes Gefühl der Fürsorge für jeden ihrer Mitarbeiter entwickeln, ihre spezifischen Karriereziele verstehen und ihnen helfen, Möglichkeiten zu finden, die ihr Wachstum speziell für ihre Karriereziele ermöglichen. Erinnern Sie sich an das uralte Sprichwort, dass Menschen in den meisten Fällen keine Unternehmen verlassen, sondern ihre Manager. Als empathische und fürsorgliche Manager, die ihren Führungsstil so gestalten, dass sie den Bedürfnissen jedes ihrer Mitarbeiter gerecht werden, können sie das Abwanderungsrisiko erheblich mindern und dazu beitragen, ein starkes Team aufzubauen, das aufgabenorientiert ist und zusammenkommen kann, um Großes zu erreichen.

Identifizieren der wichtigsten Führungskräfte, um ein Team von Grund auf neu zu gründen

Peeyushs Erkenntnisse darüber, wie man ein erfolgreiches Team aufbaut, sind von unschätzbarem Wert für jeden, der ein neues Team gründet. Er betonte, wie wichtig es sei, wichtige Führungskräfte zu identifizieren, die über die richtige Denkweise verfügen, um ein Team von Grund auf neu zu gründen, die Fähigkeit, in unklaren Situationen zu arbeiten, und den Drang, Selbststarter zu sein.

Darüber hinaus betonte er, wie wichtig es ist, zu lernen, wie man seine Mitarbeiter und seine Arbeit gegenüber dem Rest der Organisation repräsentiert, Vertrauen aufbaut und das Wachstum und die Entwicklung des Teams fördert.

Berücksichtigen Sie die folgenden Faktoren, wenn Sie den Anführer auswählen, um ein Team von Grund auf neu zu gründen:

  1. Technische Expertise: Wählen Sie eine Führungskraft, die einen starken Hintergrund im Software-Engineering hat und mit den für Ihr Projekt relevanten Technologien und Tools vertraut ist. Sie sollten in der Lage sein, technische Anleitungen zu geben und fundierte Entscheidungen über Architektur, Design und Entwicklungspraktiken zu treffen.
  2. Erfahrung: Suchen Sie nach einem Kandidaten mit vorheriger Erfahrung im Aufbau und der Leitung von Softwareentwicklungsteams, vorzugsweise in einem ähnlichen Bereich oder einer ähnlichen Branche. Diese Erfahrung wird ihnen helfen, die Herausforderungen und Best Practices für den Aufbau eines erfolgreichen Teams zu verstehen.
  3. Vision und Strategie: Der Leiter sollte eine klare Vision für die Ziele des Teams haben und in der Lage sein, eine kohärente Strategie zu entwickeln, um sie zu erreichen. Sie sollten in der Lage sein, die Prioritäten des Teams zu definieren und an den Zielen des Unternehmens auszurichten.
  4. Kommunikation und zwischenmenschliche Fähigkeiten: Effektive Kommunikation ist für eine Führungskraft von entscheidender Bedeutung, da sie die Ziele, Erwartungen und Fortschritte des Teams sowohl den Teammitgliedern als auch den Stakeholdern vermitteln muss. Sie sollten auch in der Lage sein, aktiv zuzuhören und sich in die Sorgen und Bedürfnisse ihres Teams hineinzuversetzen.
  5. Anpassungsfähigkeit und Problemlösung: Die Führungskraft sollte in der Lage sein, sich an sich ändernde Umstände anzupassen, wie z. B. neue Technologien, sich ändernde Prioritäten oder Ressourcenbeschränkungen. Sie sollten über starke Fähigkeiten zur Problemlösung verfügen und in der Lage sein, kreative Lösungen für Herausforderungen zu finden.
  6. Teambildung und Motivation: Der Leiter sollte eine Erfolgsbilanz beim Aufbau zusammenhängender, leistungsstarker Teams vorweisen können. Sie sollten in der Lage sein, Talente zu identifizieren und zu rekrutieren, eine positive Teamkultur zu schaffen und Teammitglieder zu motivieren, ihre beste Arbeit zu leisten.
  7. Entscheidungsfindung und Delegation: Der Leiter sollte in der Lage sein, fundierte und zeitnahe Entscheidungen zu treffen und Aufgaben effektiv zu delegieren, um die Teammitglieder zu befähigen, Verantwortung für ihre Arbeit zu übernehmen.
  8. Konfliktlösung: Konflikte können innerhalb des Teams oder mit externen Stakeholdern entstehen, und die Führungskraft sollte in der Lage sein, sie konstruktiv und diplomatisch anzugehen und für beide Seiten vorteilhafte Lösungen zu finden.
  9. Mentoring und Coaching: Die Führungskraft sollte sich für die berufliche Weiterentwicklung ihrer Teammitglieder einsetzen und ihnen Anleitung, Mentoring und Möglichkeiten zur Kompetenzentwicklung bieten.
  10. Cultural Fit: Die ideale Führungskraft sollte sich an den Werten und der Kultur Ihres Unternehmens orientieren, da sie eine wichtige Rolle bei der Gestaltung des Umfelds und der Arbeitsgewohnheiten des Teams spielen.

Während unseres Gesprächs teilte er mir seine Herangehensweise an ein effektives technisches Management mit, die er mit der eines Elternteils verglich. Peeyush Ranjans Analogie zwischen Engineering Managern und Eltern ist interessant und regt zum Nachdenken an. Wie er erklärte, sind beide Rollen dafür verantwortlich, ihre Schützlinge anzuleiten und zu fördern, damit sie ihre Ziele erreichen und ihr volles Potenzial ausschöpfen können. So wie ein Elternteil Unterstützung, Ermutigung und gelegentliche Impulse in die richtige Richtung geben muss, um seinem Kind zu helfen, zu wachsen und erfolgreich zu sein, muss ein Engineering Manager dasselbe für seine Teammitglieder tun.

Das erinnerte mich an das uralte Sprichwort: „Gib jemandem einen Fisch, und du ernährst ihn für einen Tag. Bringe jemandem das Fischen bei und du ernährst ihn ein Leben lang.“

Dieses Sprichwort betont, wie wichtig es ist, Menschen die Fähigkeiten beizubringen, die sie benötigen, um autark und unabhängig zu werden, anstatt nur vorübergehende Lösungen für ihre Probleme anzubieten. Es unterstreicht den Wert von Bildung und Befähigung zur Förderung von langfristigem Wachstum und Eigenständigkeit.

Dieses Prinzip gilt auch für angestellte und leitende Ingenieure, die nicht nur für wichtige Teile des Produkts verantwortlich sind, sondern auch dazu beitragen, Nachwuchsingenieure in ihren Bereichen zu fördern und zu entwickeln.

Schaffung einer unterstützenden und fördernden Umgebung für Teammitglieder

Teammitglieder haben unterschiedliche Stärken, Schwächen und Entwicklungsbedürfnisse. Effektive Engineering Manager erkennen diese Unterschiede und arbeiten daran, individuelle Unterstützung und Entwicklungsmöglichkeiten anzubieten, die auf die Bedürfnisse jedes Teammitglieds zugeschnitten sind. Sie müssen auf die Motivationen, Karriereziele und Interessen ihrer Teammitglieder abgestimmt sein, um ein Umfeld zu schaffen, in dem jeder Einzelne erfolgreich sein kann.

Gleichzeitig müssen Engineering Manager auch eine klare Richtung vorgeben und Erwartungen an ihre Teammitglieder setzen. So wie ein Elternteil Grenzen und Erwartungen für das Verhalten seines Kindes setzt, muss ein Engineering Manager klare Leistungserwartungen setzen, Verantwortung übernehmen und eine Kultur der kontinuierlichen Verbesserung fördern. Sie müssen regelmäßig Feedback und Coaching geben, um ihren Teammitgliedern zu helfen, zu wachsen und sich zu entwickeln, genau wie Eltern es mit ihrem Kind tun.

Letztendlich besteht die Rolle eines Engineering Managers darin, ein unterstützendes und förderndes Umfeld zu schaffen, in dem Teammitglieder wachsen, lernen und ihr volles Potenzial ausschöpfen können. Durch die Verwendung der Analogie eines Elternteils unterstreicht Peeyush die Bedeutung von Empathie, Geduld und einer Wachstumsmentalität in dieser Rolle. Effektive Engineering Manager müssen in der Lage sein, sich in die Lage ihrer Teammitglieder zu versetzen, ihre Bedürfnisse vorherzusehen und ihnen das richtige Maß an Unterstützung zu bieten, um ihnen zum Erfolg zu verhelfen.

Abschluss

Zusammenfassend lässt sich sagen, dass Peeyushs Ansatz für das Engineering-Management an den Prinzipien der Rechenschaftspflicht, der Befähigung, der Entwicklung und Förderung von Ingenieuren und der kontinuierlichen Verbesserung ausgerichtet ist. Seine Einblicke in die Bildung erfolgreicher Teams und die Bereitstellung effektiver Führung sind von unschätzbarem Wert für jeden, der ein neues Team gründet oder in die Rolle eines Engineering Managers wechselt. Durch die Balance zwischen technischer Führung, Empathie und Mitarbeiterführung können Engineering Manager ein unterstützendes und förderndes Umfeld schaffen, das ihren Teammitgliedern hilft, sich zu entfalten und ihr volles Potenzial auszuschöpfen.

Eine erfolgreiche Führungskraft sollte einen anpassungsfähigen Stil annehmen und davon absehen, sofort einzuspringen und frühere Erfahrungen oder Ansätze blind aufzuzwingen, ohne den einzigartigen Kontext der aktuellen Organisation zu berücksichtigen. Stattdessen sollten sie ihre Führungsstrategien auf die spezifischen Bedürfnisse des Teams und des Unternehmens zuschneiden.

Vorgeschlagene Literatur:

HINWEIS: Die Links zu den oben genannten Büchern sind Affiliate-Links