Management eines Programmierteams: Wie und wie kann man sie richtig motivieren? Teil zwei

Epigraph:
Der Ehemann, der die schmutzigen Kinder ansieht, sagt zu seiner Frau: Nun, was, wir waschen diese oder neue?

Unter dem Schnitt der zweite Teil des Artikels unseres Teamleiters sowie des Direktors der RAS-Produktentwicklung - Igor Marnat über die Merkmale der Programmierermotivation. Den ersten Teil des Artikels finden Sie hier - habr.com/de/company/parallels/blog/452598

Bild


Im ersten Teil des Artikels habe ich die beiden unteren Ebenen der Maslow-Pyramide angesprochen: physiologische Bedürfnisse, Sicherheits-, Komfort- und Beständigkeitsbedürfnisse und gehe zur nächsten dritten Ebene über, nämlich:

III - Das Bedürfnis nach Zugehörigkeit und Liebe

Bild

Ich wusste, dass die italienische Mafia „Cosa Nostra“ heißt, aber ich war sehr beeindruckt, als ich lernte, wie man „Cosa Nostra“ übersetzt. "Cosa Nostra" in Übersetzung aus dem Italienischen - "Unser Geschäft". Die Wahl des Namens ist für die Motivation sehr erfolgreich (lassen wir den Beruf beiseite, in diesem Fall interessieren wir uns nur für die Motivation). Eine Person möchte normalerweise Teil eines Teams sein, um ein großes, gemeinsames Geschäft zu machen.

Es wird großer Wert darauf gelegt, das Bedürfnis nach Zugehörigkeit und Liebe in der Armee, in der Marine und in allen großen militarisierten Formationen zu befriedigen. Und wie wir sehen, in der Mafia. Dies ist verständlich, weil Sie Menschen, die wenig gemeinsam haben, die zunächst kein Team von Gleichgesinnten bilden, die sich im Berufungsverfahren (nicht freiwillig) zusammengeschlossen haben, unterschiedliche Bildungsniveaus, unterschiedliche persönliche Werte haben und ihr Leben buchstäblich mit tödlichem Risiko einer gemeinsamen Sache widmen müssen, zwingen müssen , vertraue einem Waffengenossen das Leben an.

Dies ist eine sehr starke Motivation. Für die meisten Menschen ist es äußerst wichtig, sich zu etwas anderem zu gehören und zu wissen, dass Sie Teil einer Familie, eines Landes oder eines Teams sind. In der Armee sind diese Ziele die Form, verschiedene Rituale, Paraden, Märsche, Banner und so weiter. Ungefähr die gleichen Faktoren sind für jedes Team wichtig. Symbole, eine Unternehmensmarke und Unternehmensfarben, Attribute und Souvenirs sind wichtig.

Es ist wichtig, dass signifikante Ereignisse eine sichtbare Ausführungsform haben, mit der sie assoziiert werden könnten. Jetzt muss das Unternehmen seine eigenen Attribute, Jacken, T-Shirts usw. haben - eher die Norm. Es ist aber auch wichtig, ein Team innerhalb des Unternehmens hervorzuheben. Wir stellen häufig T-Shirts basierend auf den Veröffentlichungsergebnissen aus, die an alle an dieser Veröffentlichung Beteiligten ausgegeben werden. Alle Veranstaltungen, gemeinsamen Feiern oder Veranstaltungen des gesamten Teams sind ein weiterer wichtiger Motivationsfaktor.

Neben externen Attributen beeinflussen einige weitere Faktoren das Zugehörigkeitsgefühl zu einem Team.
Erstens wird die Existenz eines gemeinsamen Ziels, das jeder versteht, durch eine Bewertung seiner Bedeutung geteilt. Programmierer wollen normalerweise verstehen, was sie cool machen, und sie machen diese coole Sache zusammen als Team.
Zweitens sollte ein Team einen Kommunikationsbereich haben, in dem sich ein ganzes Team befindet und der nur dazu gehört (z. B. ein Chat im Messenger, regelmäßige Team-Synchronisierungen). Neben Arbeitsthemen, informeller Kommunikation, manchmal der Diskussion externer Ereignisse und einem Lichtblick - all dies bildet ein Gefühl der Gemeinschaft und des Teams.
Drittens möchte ich die Einführung guter technischer Praktiken im Team hervorheben, den Wunsch, die Standards im Vergleich zu den vom Unternehmen übernommenen zu erhöhen. Die Umsetzung der besten Ansätze der Branche, zuerst im Team und dann im gesamten Unternehmen, gibt dem Team die Möglichkeit, das Gefühl zu haben, in gewisser Weise anderen voraus zu sein. Dies schafft das Gefühl, zu einem coolen Team zu gehören.

Teamverantwortung in Planung und Management wirkt sich auch auf das Verantwortungsbewusstsein aus. Wenn Teammitglieder an der Erörterung der Projektziele, des Arbeitsplans, der Standards und der technischen Praktiken des Teams sowie an der Befragung neuer Mitarbeiter beteiligt sind, haben sie das Gefühl der Teilnahme, der gemeinsamen Verantwortung und des Einflusses auf die Arbeit. Die Menschen sind viel eher bereit, selbst getroffene und geäußerte Entscheidungen zu treffen als die von anderen vorgeschlagenen, selbst wenn sie praktisch konsonant sind.

Geburtstage, Jubiläen, wichtige Ereignisse im Leben der Kollegen - eine gemeinsame Pizza, ein kleines Geschenk des Teams vermitteln ein warmes Gefühl des Engagements und der Wertschätzung. In einigen Unternehmen ist es üblich, kleine Gedenkzeichen für 5, 10, 15 Jahre Arbeit im Unternehmen zu geben. Einerseits denke ich nicht, dass es für neue Erfolge so motivierend ist. Aber natürlich wird sich fast jeder freuen, dass er ihn nicht vergessen hat. Dies ist einer der Fälle, in denen das Fehlen einer Tatsache eher motiviert als ihre Anwesenheit motiviert. Stimmen Sie zu, es kann ziemlich schade sein, wenn der LinkedIn am Morgen Sie an Ihr 10-jähriges Jubiläum am Arbeitsplatz erinnert und Ihnen gratuliert hat und kein einziger Kollege aus dem Unternehmen gratuliert oder sich daran erinnert hat.

Ein wichtiger Punkt ist natürlich die Änderung der Zusammensetzung des Teams. Es ist klar, dass selbst wenn die Ankunft oder Abreise einer Person aus dem Team im Voraus angekündigt wird (z. B. in einer Mailingliste für ein Unternehmen oder ein Team oder bei einer Teambesprechung), dies niemanden besonders motiviert, neue Erfolge zu erzielen. Aber wenn Sie eines Tages eine neue Person neben sich sehen oder keine alte sehen, kann dies eine Überraschung sein, und wenn Sie gehen, ist dies wirklich unangenehm. Menschen sollten nicht leise verschwinden. Besonders in einem verteilten Team. Vor allem, wenn Ihre Arbeit von einem Kollegen aus einem anderen Büro abhängt, der plötzlich aufgegriffen hat und plötzlich verschwunden ist. Solche Momente sind eindeutig eine gesonderte Kommunikation innerhalb des Teams im Voraus wert.

Ein wichtiger Faktor, der auf Englisch als Eigentum bezeichnet wird (die wörtliche Übersetzung von „Eigentum“ spiegelt seine Bedeutung nicht vollständig wider). Dies ist kein Gefühl der Eigenverantwortung, sondern ein Gefühl der Verantwortung für Ihr Projekt, ein Gefühl, wenn Sie sich emotional mit dem Produkt und dem Produkt mit sich selbst verbinden. Dies entspricht in etwa dem Gebet der Marine aus dem Film „Full Metal Shell“: „ Das ist mein Gewehr. Es gibt viele solcher Gewehre, aber dieses gehört mir. Mein Gewehr ist mein bester Freund. Sie ist mein Leben. Ich muss lernen, es so zu besitzen, wie ich mein Leben besitze. Mein Gewehr ist ohne mich nutzlos. Ich bin ohne mein Gewehr nutzlos. Ich muss mein Gewehr treffend abschießen. Ich muss genauer schießen als der Feind, der versucht, mich zu töten. Ich muss ihn erschießen, bevor er mich erschießt. So sei es ... ".

Wenn eine Person lange Zeit an einem Produkt arbeitet, hat sie die Möglichkeit, die volle Verantwortung für dessen Entstehung und Entwicklung zu tragen, um zu sehen, wie ein funktionierendes Ding aus „nichts“ entsteht, wie Menschen es verwenden, entsteht dieses kraftvolle Gefühl. Produktteams, die lange Zeit an einem Projekt zusammenarbeiten, sind in der Regel motivierter und geeinter als Teams, die für kurze Zeit zusammengestellt wurden und im Fließbandmodus arbeiten und von Anfang bis Ende ohne volle Verantwortung für das gesamte Produkt von einem Projekt zum anderen wechseln.

IV. Anerkennungsbedarf

Gutes Wort und nett zur Katze. Jeder ist motiviert von der Anerkennung der Bedeutung seiner Arbeit, ihrer positiven Bewertung. Sprechen Sie mit Programmierern, geben Sie ihnen regelmäßig Feedback und markieren Sie eine gut gemachte Arbeit. Wenn Sie ein großes und verteiltes Team haben, eignen sich regelmäßige Besprechungen (so genannte Eins-zu-Eins-Besprechungen) hervorragend. Wenn das Team sehr klein ist und lokal zusammenarbeitet, wird diese Funktion normalerweise ohne spezielle Kalendertermine bereitgestellt (obwohl regelmäßige Eins-zu-Eins-Besprechungen erforderlich sind) gleichermaßen benötigt, kann man es einfach weniger oft ausgeben). Dieses Thema wird in Manager-Podcasts auf manager-tools.com ausführlich behandelt.

Gleichzeitig lohnt es sich, kulturelle Unterschiede zu berücksichtigen. Einige amerikanischen Kollegen bekannte Ansätze funktionieren nicht immer mit russischen. Das Maß an Höflichkeit, das in der täglichen Kommunikation in Teams in westlichen Ländern akzeptiert wird, scheint für Programmierer aus Russland zunächst übertrieben zu sein. Einige für russische Kollegen charakteristische Unkompliziertheit kann von ihren Kollegen aus anderen Ländern als unhöflich empfunden werden. Dies ist sehr wichtig für die Kommunikation in einem internationalen Team. Zu diesem Thema wurde viel geschrieben. Der Manager eines solchen Teams muss sich unbedingt daran erinnern.

Die Demonstration von Funktionen, auf denen Programmierer Funktionen zeigen, die für das Sprinten entwickelt wurden, ist eine gute Praxis, um diesen Bedarf zu erkennen. Neben der Tatsache, dass dies eine großartige Gelegenheit ist, Kommunikationskanäle zwischen Teams zu löschen, Produktmanagern und Testern neue Funktionen vorzustellen, ist dies auch eine gute Gelegenheit für Entwickler, die Ergebnisse ihrer Arbeit zu zeigen und ihre Urheberschaft anzugeben. Nun, und natürlich die Fähigkeiten des öffentlichen Sprechens verbessern, was immer nicht schädlich ist.

Es wäre eine gute Idee, den bemerkenswerten Beitrag besonders angesehener Kollegen mit Briefen und Erinnerungsstücken (zumindest mit einem freundlichen Wort) auf den gemeinsamen Parteien des Teams zur Kenntnis zu nehmen. Menschen schätzen solche Briefe und Gedenkzeichen normalerweise, tragen sie beim Umzug mit sich und kümmern sich im Allgemeinen auf jede erdenkliche Weise um sie.

Um einen bedeutenderen, langfristigen Beitrag zur Arbeit des Teams, gesammelte Erfahrung und Fachwissen zu kennzeichnen, verwenden sie häufig ein Bewertungssystem (auch hier können Sie eine Analogie zum militärischen Rangsystem in der Armee ziehen, das neben der Gewährleistung der Unterordnung auch diesem Zweck dient). Oft spritzen junge Entwickler mit aller Macht, um neue Sterne an den Schultergurten zu bekommen (d. H. Vom Junior-Entwickler zum Vollzeit-Entwickler usw.).

Es ist unerlässlich, die Erwartungen Ihrer Mitarbeiter zu kennen. Jemand ist eher motiviert von einer hohen Note, der Fähigkeit, beispielsweise als Architekt bezeichnet zu werden, während jemand im Gegenteil Noten und Titeln gleichgültig gegenübersteht und eine Gehaltserhöhung als Zeichen der Anerkennung durch das Unternehmen betrachtet. Kommunizieren Sie mit Menschen, um zu verstehen, was sie wollen und was sie erwarten.

Eine Demonstration der Anerkennung, ein Ausdruck eines höheren Vertrauensniveaus des Teams kann dazu beitragen, mehr Handlungsspielraum oder Beteiligung an neuen Arbeitsbereichen zu schaffen. Zum Beispiel kann der Programmierer mit der Anhäufung bestimmter Erfahrungen und dem Erreichen bestimmter Ergebnisse zusätzlich zur Implementierung seiner Funktionen gemäß der Spezifikation an der Architektur neuer Dinge arbeiten. Oder arbeiten Sie an neuen Bereichen, die möglicherweise nicht direkt mit der Entwicklung zusammenhängen - Testautomatisierung, Implementierung bewährter Engineering-Praktiken, Unterstützung bei der Verwaltung von Releases, Vorträge auf Konferenzen usw.

V. Das Bedürfnis nach Wissen und Selbstverwirklichung.

Viele Programmierer orientieren sich in verschiedenen Phasen ihres Lebens an verschiedenen Arten von Aktivitäten in der Programmierung. Jemand beschäftigt sich gerne mit maschinellem Lernen, entwickelt neue Datenmodelle, liest viel wissenschaftliche Literatur für die Arbeit und erstellt neue von Grund auf neu. Das Debuggen und Unterstützen einer vorhandenen Anwendung ist näher an einer anderen, bei der Sie sich tagelang und wochenlang eingehend mit vorhandenem Code befassen, Protokolle studieren, Tracks und Netzwerk-Captchas stapeln und kaum neuen Code schreiben müssen.

Beide Prozesse erfordern große intellektuelle Anstrengungen, aber der praktische Ausweg ist unterschiedlich. Es wird angenommen, dass Programmierer bestehende Lösungen nur ungern unterstützen, sondern eher motiviert sind, neue zu entwickeln. Es ist ein gesundes Getreide darin. Andererseits hat das motivierteste und engste Team, mit dem ich je zusammengearbeitet habe, das vorhandene Produkt speziell unterstützt und Fehler gefunden und behoben, nachdem ich mich an das Support-Team gewandt habe. Die Jungs haben diese Arbeit buchstäblich gelebt und waren bereit, samstags und sonntags zu gehen. Wir haben uns einmal bereitwillig mit einem anderen dringenden und komplexen Problem befasst, entweder am Abend des 31. Dezember oder am Nachmittag des 1. Januar.

Diese hohe Motivation wurde von mehreren Faktoren beeinflusst. Erstens war es ein Unternehmen mit einem großen Namen in der Branche, dem sich das Team angeschlossen hat (siehe „Need for Affiliation“). Zweitens waren sie die letzte Grenze, es war niemand hinter ihnen, das Produktteam war zu diesem Zeitpunkt bereits weg. Zwischen ihnen und den Kunden gab es zwei Ebenen der Unterstützung, aber wenn das Problem sie erreichte, gibt es keinen Rückzugsort, hinter niemandem ist das gesamte Unternehmen auf ihnen (vier junge Programmierer). Drittens hatte dieses große Unternehmen sehr große Kunden (nationale Regierungen, Automobil- und Luftfahrtunternehmen usw.) und sehr große Anlagen in mehreren Ländern. Infolgedessen wurden immer komplexe und interessante Probleme, einfache Probleme durch die Unterstützung der vorherigen Ebenen gelöst. Viertens wurde die Motivation des Teams stark vom professionellen Niveau des Supportteams beeinflusst, mit dem sie interagierten (es gab sehr erfahrene und technisch coole Ingenieure), und wir waren uns immer sicher, welche Qualität die von ihnen erstellten Daten, die von ihnen durchgeführten Analysen usw. hatten. Fünftens, und ich denke, dies ist der wichtigste Moment - das Team war sehr jung, alle Jungs waren am Anfang ihrer Karriere. Für sie war es interessant, ein großes und komplexes Produkt zu studieren, um ernsthafte neue Probleme für sie in einer neuen Umgebung zu lösen. Sie versuchten, das Niveau der umliegenden Teams, Probleme und Kunden professionell zu erfüllen. Das Projekt erwies sich als eine hervorragende Schule, alle machten dann eine gute Karriere im Unternehmen und wurden technische Leiter und leitende Angestellte, einer der Jungs ist jetzt technischer Manager bei Amazon Web Services, der andere ist im Laufe der Zeit zu Google gewechselt, und alle erinnern sich noch mit Herzlichkeit an dieses Projekt .

Wenn dieses Team aus Programmierern mit 15 bis 20 Jahren Erfahrung bestehen würde, wäre die Motivation anders. Alter und Erfahrung sind natürlich keine 100% bestimmenden Faktoren, alles hängt von der Struktur der Motivation ab. In diesem speziellen Fall ergab der Wunsch nach Wissen und Wachstum junger Programmierer ein hervorragendes Ergebnis.

Im Allgemeinen sollten Sie, wie bereits wiederholt erwähnt, die Erwartungen Ihrer Programmierer kennen, verstehen, welche von ihnen den Tätigkeitsbereich erweitern oder ändern möchten, und diese Erwartungen berücksichtigen.

Außerhalb der Maslow-Pyramide: Sichtbarkeit, Gamification und Wettbewerb, kein Blödsinn

Es gibt drei weitere wichtige Punkte in Bezug auf die Motivation von Programmierern, die erwähnt werden sollten, aber es wäre zu künstlich, sie für Maslows Bedarfsmodell zu gewinnen.

Das erste ist die Sichtbarkeit und Nähe des Ergebnisses.

Softwareentwicklung ist normalerweise ein Marathon. Die Ergebnisse der Forschungs- und Entwicklungsbemühungen werden nach Monaten, manchmal Jahren sichtbar. Es ist schwierig, zu einem Ziel zu gelangen, das weit über den Horizont hinausgeht, der Arbeitsaufwand ist erschreckend, das Ziel ist weit, nicht klar und nicht sichtbar. "Die Nacht ist dunkel und voller Schrecken." Es ist besser, die Straße in Teile zu teilen, den Weg zum nächsten Baum zu ebnen, der sichtbar und erreichbar ist, dessen Form klar ist und der nicht weit von uns entfernt ist - und zu diesem engen Ziel zu gelangen. Wir möchten uns ein paar Tage oder Wochen anstrengen, das Ergebnis erhalten und bewerten und dann weitermachen. Daher sollte die Arbeit in kleine Teile unterteilt werden (Sprints in Agile dienen diesem Zweck gut). Sie haben einen Teil der Arbeit erledigt - aufgezeichnet, ausgeatmet, diskutiert, die Schuldigen bestraft, die Ungebetenen ausgezeichnet - Sie können mit dem nächsten Zyklus beginnen.

Diese Motivation ähnelt in gewissem Maße der, die Spieler beim Spielen von Computerspielen erfahren: Sie erhalten regelmäßig Medaillen, Punkte und Boni, wenn sie jedes Level bestehen. Dies kann als "Dopamin-Motivation" bezeichnet werden.

Darüber hinaus ist die Sichtbarkeit des Ergebnisses buchstäblich wichtig. Eine geschlossene Funktion in der Liste sollte grün werden. Wenn der Code geschrieben, getestet oder kontaminiert ist, der visuelle Status für den Programmierer jedoch nicht geändert wird, fühlt er sich unvollständig und es besteht kein Gefühl der Vollendung. In einem der Teams in unserem Versionskontrollsystem durchlief jeder Patch drei aufeinanderfolgende Phasen: Der Build wurde zusammengestellt und die Tests bestanden, der Patch bestand den Überprüfungscode und der Patch war erschöpft. Jede Stufe wurde visuell mit einem grünen Häkchen oder einem roten Kreuz markiert. Einmal beschwerte sich einer der Entwickler, dass der Überprüfungscode zu lange dauert, Kollegen beschleunigen müssen, Patches mehrere Tage hängen bleiben. Ich fragte, was sich für ihn im Wesentlichen ändert. Wenn der Code geschrieben, der Build zusammengestellt und die Tests bestanden wurden, muss der gesendete Patch nicht beachtet werden, wenn keine Kommentare vorhanden sind. Die Kollegen werden die Überprüfung selbst durchführen und sie niedrig halten (falls es wiederum keine Kommentare gibt). Er antwortete: "Igor, ich möchte so schnell wie möglich meine drei grünen Häkchen bekommen."

Der zweite Punkt ist Gamification und Wettbewerb.

Bei der Entwicklung eines der Produkte hatte unser Engineering-Team das Ziel, eine herausragende Position in der Community eines der Open-Source-Produkte einzunehmen und in die Top-3 einzusteigen. Zu diesem Zeitpunkt gab es keine objektive Möglichkeit, die Sichtbarkeit einer Person in der Community zu bewerten. Jedes der großen teilnehmenden Unternehmen konnte erklären (und in regelmäßigen Abständen angeben), dass es der Beitrag Nummer eins war, aber es gab keine echte Möglichkeit, den Beitrag der Teilnehmer miteinander zu vergleichen und seine Dynamik zu bewerten Zeit. Dementsprechend gab es keine Möglichkeit, ein Ziel für das Team festzulegen, das bei einigen Papageien gemessen, der Leistungsgrad usw. bewertet werden konnte. Um dieses Problem zu lösen, hat unser Team ein Tool zur Messung und Visualisierung des Beitrags von Unternehmen und einzelnen Mitwirkenden entwickelt . Www.stackalytics.com . In Bezug auf die Motivation stellte sich heraus, dass es sich nur um eine Bombe handelte. Nicht nur Ingenieure und Teams überwachten ständig ihren Fortschritt und den Fortschritt von Kollegen und Wettbewerbern. Das Top-Management unseres Unternehmens und alle wichtigen Wettbewerber begannen ihren Tag ebenfalls mit Stackalytics. Alles wurde sehr transparent und klar, jeder konnte seinen Fortschritt sorgfältig überwachen, mit Kollegen vergleichen usw. Es ist bequem und einfach geworden, Ziele für Ingenieure, Manager und Teams festzulegen.

Ein wichtiger Punkt bei der Einführung eines Systems quantitativer Metriken ist, dass das System, sobald Sie diese implementiert haben, automatisch versucht, die Erreichung dieser quantitativen Metriken zum Nachteil der qualitativen zu priorisieren. , . , -, , , , , , +1 . , , +1 CI . , “go, go, jenkins”. , , , . : , . , , , , scale performance , , core reviewer, core projects , — .

, — No bullshit.

— , . 8-10 , . -, , , , , . , , , . — . , , , , disagree and commit ( , ). - , . , , , . - : « , , . , , ». , . , , .

Source: https://habr.com/ru/post/de452808/


All Articles