Ich habe mir Scott Hanselmans und Rob Conerys Podcast This Developer's Life angehört .
In der neuesten Folge diskutieren sie Persönlichkeitsmerkmale:
1.0.4 - Gemein sein.
Was bedeutet Menschen in unserer Branche? Was ist mit aggressiv? Zuversichtlich? Was ist der Unterschied? Möchten Sie lieber einen Drill-Sergeant für einen Chef oder einen Zen-Meister? Wir sprechen mit Cyra Richardson und Giles Bowkett.
Ich habe darüber nachgedacht, welche Eigenschaften die besten Manager , für die Sie gearbeitet haben, gemeinsam haben.
EDIT: Um zu verdeutlichen, wie es einige enge Abstimmungen gegeben hat, interessiert es mich, ob Manager von Entwicklern Eigenschaften gemeinsam haben, die nicht unbedingt die Eigenschaften sind, die Manager anderer Berufe benötigen.
Was die Frage anbelangt, ob dies mit der Programmierung zusammenhängt oder nicht, möchte ich diese Frage nicht auf einer Website stellen, auf der es nicht um Programmierung geht, da es mich ehrlich gesagt nicht so interessiert, welche Leute Suppendosen herstellen, um ihren Lebensunterhalt zu verdienen Ich möchte von ihren Managern, wie ich interessiert bin, was Entwickler von ihren Managern wollen.
quelle
Antworten:
Nach meiner Erfahrung ist es eine Kombination aus Folgendem:
quelle
Joel Spolsky nennt es die " Abstraktionsschicht ". Tu, was nötig ist, um mich am Programmieren zu halten. Lassen Sie mich wissen, was in der Firma los ist, aber halten Sie mich aus der Politik heraus. Auch wenn ich es noch tun muss, muss ich zumindest zugeben, dass die Anfrage bull sh! T ist.
quelle
Jemand, der politische Schlachten für mich führt und Hindernisse beseitigt, die mich daran hindern, Dinge zu erledigen.
Zeitraum.
quelle
Bereit sein, den Menschen zuzuhören, die für sie arbeiten.
Ich hatte sehr technisch versierte Manager und einige, die nicht einmal über Multitasking Bescheid wussten ("oh wow! Wo hast du diesen Alt-Tab-Trick gelernt?"), Aber das, was alle haben Ich habe es wirklich genossen, für gemeinsam zu arbeiten, weil sie wussten, dass sie nicht alles wussten und bereit waren zuzuhören, wenn diejenigen von uns tatsächlich die Arbeit erledigten, für die sie vorgesehen waren, präsentierte Ideen, Probleme oder Vorschläge zu dieser Arbeit zu verwalten.
quelle
Sie / er schützt sein Team und übernimmt seine / ihre Verantwortung
Einer in Ihrem Team stürzt einen Server mit Produktionsdaten ab. Ihr Manager übernimmt die volle Verantwortung. Er wird es irgendwann ablehnen, seinem oberen Manager mitzuteilen, wer den Fehler begangen hat, und sich vor seine Männer stellen.
quelle
Sie arbeiten auf der Grundlage von Zielen und nicht auf der Grundlage von Zeit. In erster Linie geht es mir darum, diese Ziele zu erreichen
Anstatt sich darum zu kümmern, wie lange ich an meinem Schreibtisch sitze, geht es ihnen darum, was ich brauche, um eine bestimmte Aufgabe zu erfüllen. Wenn dies bedeutet, Hindernisse oder Hindernisse zu beseitigen oder mir zu erlauben, lange Stunden / Wochenenden zu arbeiten, sind sie bereit, die Zeit abzuwägen. Wenn ich meine Arbeit vorzeitig erledige und Zeit für Arzttermine oder Familienaktivitäten benötige, sind sie flexibel und verständnisvoll.
Ich möchte auf jeden Fall bei der Arbeit zur Rechenschaft gezogen werden, aber es sollte das sein, was ich erziele und nicht, wie viel Zeit ich an meinem Schreibtisch verbringe.
quelle
Halten Sie mich von Besprechungen fern, an denen ich nicht teilnehmen muss. Wenn Manager dies nur schaffen könnten, wären sie unendlich wertvoller.
quelle
Anerkennung, dass ich engagiert und bezahlt werde, um Entscheidungen zu treffen.
quelle
Sie unterstützen Sie, wenn Sie NEIN sagen
Eine der demotivierendsten Eigenschaften eines Managers ist der Mangel an Mut, für seine Mitarbeiter einzutreten und sich immer vor seinem eigenen Chef zu verbeugen, auch wenn dies Auswirkungen auf das Produkt oder das Team hat.
quelle
bitte nicht schreien ... einfach nicht. (egal wie gestresst du bist über die große Frist, dumme Tester, etc.)
quelle
Jemand, der mich nur meinen Job machen lässt.
quelle
Verstehen, woraus Programmierung besteht. Sie wären überrascht, wie viele Manager nichts über die Angelegenheit wissen.
quelle
Anerkennung, dass ich engagiert und bezahlt werde, um Entscheidungen zu treffen.
Ich bin kein $ 7 / Stunde Food-Service-Mitarbeiter. Ich bin hier, um Entscheidungen zu treffen. Wenn mir jedes Detail gesagt wird, was zu tun ist, könnte ich genauso gut eine Schreibkraft sein.
quelle
(Deep) Empathie Geschicklichkeit.
quelle
Ich muss das aus der Perspektive der schlechtesten Chefs betrachten, für die ich gearbeitet habe - ein guter hätte NICHT die folgenden Eigenschaften:
Unfähigkeit, eine Entscheidung zu treffen Das Schlimmste, mit dem ich je zu tun hatte, war ein Chef, der seine Meinung jedes Mal änderte, wenn jemand mit ihm sprach. Bei einem dreijährigen Projekt wechselten wir 4-5 Mal am Tag die Richtung.
Stiehlt den Kredit für Dinge, die die Teammitglieder tun. Einmal bekam mein Chef eine riesige Auszeichnung, die sie öffentlich ausgaben. Alles, was sie erwähnt haben, was er getan hat, habe ich tatsächlich getan. Das ist natürlich extrem demotivierend.
Panik, wenn es nicht gut läuft. Noch schlimmer, wenn Panik ihn oder sie böse werden lässt. Das hilft nicht wirklich, Dinge zu erledigen.
Sticht seine eigenen Leute zurück. Er bekommt den Kredit, wir bekommen die Schuld. Und unterstützt uns nicht in der Befehlskette, wenn er sollte.
Hat kein Verständnis für den Prozess der Softwareentwicklung und möchte nicht einmal genug lernen, um zu wissen, dass wir C # (oder eine andere Sprache Ihrer Wahl) verwenden. Denkt, dass alles in kurzer Zeit erledigt werden kann und dass eine einfache Änderung außerhalb einer User_interface-Seite bedeutet, dass die Implementierung nicht lange dauert. Die Art von Person, die bis einen Tag vor dem Abgabetermin auf einem Wechsel sitzt und dann sagt: "Oh, übrigens, wir müssen ..." und was auch immer er verlangt, ist etwas, das die grundlegende Architektur verändert.
Mikromanagement oder überhaupt nicht. Beide sind gleich schlecht. Ich hatte zu viele Chefs, die nicht wussten, dass es bis zu spät ein Problem mit einem Mitarbeiter gab, und alle anderen mussten den Preis zahlen, um das Durcheinander zu beheben. Ich hatte auch Chefs, denen ich sagen musste, dass sie mich nicht mehr alle fünf Minuten belästigen sollten, sonst würde es nie funktionieren.
Ist politisch naiv. Wenn Ihr Chef politisch nicht gut mit den Leuten über ihm zurechtkommt, werden Sie Schwierigkeiten haben, die Leute zu finden, die Sie brauchen, Sie werden die schlechtesten Plätze haben und Sie sind in der Gruppe, die am ehesten Ihre Jobs bei einer Entlassung verliert oder weil es so ist eine einfache Möglichkeit, ihn loszuwerden. Chefs müssen gut in der Büropolitik sein.
Jemand, der denkt, dass er die Stunden eines Projekts halbieren kann (weil der Kunde diese Zahl nicht mag), und wir werden es in dieser Zeit erledigen können, ohne dass sich die Anforderungen ändern.
quelle
Kredit wo Kredit fällig ist und genug Wissen, um es zuordnen zu können
Ich hätte gut zugehört, aber das stattdessen positiv bewertet.
quelle
Sie vertrauen darauf, dass ihre Leute ihre Arbeit erledigen und versuchen nicht, Katzen zu "hüten".
Geben Sie ihren Mitarbeitern Spielraum, um Fehler zu machen (offensichtlich keine großen) und daraus zu lernen.
quelle
Jemand, der gut zuhört
und
Jemand, dem es wichtig ist, mindestens einmal wöchentlich mit mir zu sprechen
quelle
Ich hatte gute Manager und schlechte. Dies sind einige Eigenschaften, die ich bei schlechten Managern festgestellt habe:
Gehen Sie aus dem Weg, damit Sie Ihre Arbeit erledigen können
Ein guter Manager sorgt dafür, dass Sie die richtige Ausrüstung haben, um Code zu schreiben.
Micro-verwaltet die falschen Details
Diese Art von Manager wird Sie daran hindern, eine Signatur nicht an Ihre E-Mail anzuhängen, während Sie die zusätzliche Arbeit, die Sie vor dieser E-Mail geleistet haben, ignorieren.
Hat kein Interesse am Entwicklungsprozess
Dies ist wirklich ein schlechtes Zeichen für einen Manager, der für Softwareentwickler zuständig ist. Er interessiert sich nicht für die Untersuchung anderer Entwicklungsansätze, wird nicht wissen, welche Versionsnummer die nächste Version der Software haben sollte, wird keine Blogs wie Joel on Software oder irgendetwas lesen, das mit der Verwaltung von Entwicklern zusammenhängt, wie Peopleware.
Denkt, dass er für mich da ist, um sich zu melden
Diese Art von Manager kommt davon, dass ihm Leute über alles berichten.
Zeit falsch zugeordnet
Wenn dieser Manager einen Monat Zeit hat, um ein Entwicklungsprojekt von Anfang bis Ende durchzuführen, wird er dem Design- und Anforderungs-Team 3/4 des Monats zuweisen, um 1000 Zeilen-Word-Dokumente zu generieren, und das Entwicklerteam erwartet, dass alles in einer Woche implementiert wird. Er iteriert auch die Anforderungen, bis sie "perfekt" sind, und fügt zahlreiche Details hinzu, bis das Dokument unbrauchbar wird. Im späteren Verlauf des Entwicklungsprozesses werden Sie jedoch Fehler in der Entwurfs- und Anforderungsdokumentation feststellen und feststellen, dass die Betonung des Versuchs, das perfekte Dokument zu schreiben, ein Fehler war.
quelle
Ich denke, die beiden wichtigsten Merkmale sind ein grundlegendes Verständnis der Managementprinzipien und "einer von uns". Leider treten die beiden nicht allzu oft zusammen auf, aber wenn doch, haben Sie eine gute Person gefunden, für die Sie arbeiten können.
Wo ich arbeite, ist unser Projektmanager ein ehemaliger Entwickler. Er ist gut darin, Prioritäten zu setzen und die Arbeit zu leiten - die Dinge, die ein Manager wissen muss -, aber er hat auch eine ziemlich gute Vorstellung davon, was vor sich geht, wenn ich eine Frage stellen muss, wie man etwas umsetzt, das von ihm eine Vision auf Managementebene erfordert und technischer Input von mir.
Der Chef hat auch beide Fähigkeiten. Eigentlich ist er ein aktueller Entwickler, der gelegentlich an der Codebasis arbeitet und Commits eingeht, wenn ihn andere Verantwortlichkeiten nicht davon abhalten. Er stellt sicher, dass wir ein gutes Arbeitsumfeld haben, weil er intuitiv weiß, wie ein gutes Arbeitsumfeld für uns ist: Es sind die Bedingungen, unter denen er arbeiten möchte!
quelle
Kämpft für mich. Ich sollte mich nicht mit IT befassen müssen. Gibt mir die Werkzeuge, die ich brauche. Kommuniziert Unternehmensrichtlinien nach unten. Treffen Sie Entscheidungen, wenn Sie dazu aufgefordert werden und bleiben Sie draußen, wenn Sie nicht dazu aufgefordert werden.
Haftungsausschluss: Ich war zuvor in leitenden Funktionen tätig, bin es derzeit jedoch nicht. Daher kann ich definitiv sagen, dass es auch ziemlich schwierig sein kann, auf der anderen Seite des Tisches zu stehen.
quelle
Jemand, dem klar ist, was zu tun ist, lässt mich die technischen Details herausarbeiten, stellt den Kontext zur Verfügung, wenn er benötigt wird, und ändert die Anforderungen nicht, wenn ich mehr als zur Hälfte fertig bin.
quelle
Zwei Dinge:
Punkt 1 wird Ihnen als Entwickler, ein Manager, der wirklich versteht , was Ihre Aufgabe ist und besteht aus und versteht , was Sie brauchen (und auch nicht tun müssen) , um Ihre Arbeit zu den besten Ihrer Fähigkeiten zu tun. Wenn sie jetzt kein Entwickler sind (und sie sollten jetzt wirklich kein praktischer Entwickler sein, da sie Manager sind - und das ist ein Vollzeitjob selbst), sollten sie bereits Erfahrung in der Entwicklung haben, aber das sollte fair sein in letzter Zeit (dh in den letzten Jahren), so dass sie zumindest mit modernen Entwicklungssprachen, -werkzeugen, -methoden und -techniken vertraut sind.
Punkt 2 gibt Ihnen einen Manager, der seine Verantwortung übernimmt, sein Team von der Büropolitik abschirmt und unnötige Ablenkungen und Kämpfe unternimmt, damit sein Team mit den erforderlichen Dingen versorgt wird (wodurch Punkt 1 aktiviert wird) und die Erwartungen an das Unternehmen und die Unternehmen handhaben kann über ihm (Dies ist umso wichtiger in einem großen Unternehmen, in dem viele Führungsebenen und -ebenen zwischen Ihnen (dem Entwickler) und den Geschäftsentscheidern (der Geschäftsleitung) bestehen.)
Kurz gesagt, mit Merkmal (1) haben Sie einen Manager, der versteht, was Sie für die Erledigung Ihrer Arbeit benötigen, und mit Merkmal (2) haben Sie einen Manager, der bereitstellt, was Sie benötigen.
Joel Spolskys Vortrag in Yale (und der zugehörige Artikel " Command and Conquer und die Herde der Kokosnüsse ") bringt es auf den Punkt:
Im Gespräch über das (schlechte) Management bei Juno:
Im Gespräch über das (allgemein gute) Management bei Microsoft:
quelle
Ich möchte jemanden, der fähig ist (und den Mut dazu hat), das Totholz zu erkennen und loszuwerden. Diese Leute beschädigen das Produkt und verlangsamen die Fertigstellung, bringen sie mir aus dem Weg! Allzu viele Manager können entweder nicht erkennen, wer ein schlechter Entwickler ist (oder denken, der mit dem unordentlichen Schreibtisch ist schlecht oder der Typ, der scheinbar viel in den Weltraum aufbricht, obwohl er tatsächlich der klügste oder produktivste Entwickler ist). oder ich möchte nicht derjenige sein müssen, der jemandem mitteilt, dass er entlassen wird, und so das Totholz Jahr für Jahr bleiben lassen, was Schaden und Unzufriedenheit unter den zuständigen Personen verursacht.
Ich möchte nicht von einem Manager in Verlegenheit gebracht werden , der nicht einmal weiß, welche Sprachen oder welche Datenbank-Backends oder anderen kritischen Tools wir verwenden. Ich hatte eine Frage (vor dem Kunden), in welcher Sprache wir programmiert haben, nachdem wir 3 Jahre in das Projekt involviert waren! Ich erwarte nicht, dass Leute, die schon lange im Management sind, immer noch auf dem Laufenden sind, aber sie sollten zumindest wissen, was wir verwenden. Und sie sollten klug genug sein, solche Dinge nicht vor anderen zu stellen, wenn sie dies nicht tun.
Ich möchte einen Manager, der Mut hat. Akzeptieren Sie diese unrealistische Frist nicht, ohne sie zurückzudrängen, lassen Sie nicht zu, dass Ihre Mitarbeiter von Leuten schikaniert werden, oder lassen Sie die Rouge-Entwickler ihren schlechten Weg gehen, ohne zu kurz zu kommen. Versäumen Sie nicht, mir zu sagen, ob ich etwas falsch mache, weil Sie befürchten, ich könnte verärgert sein. Manager existieren zum Teil, um mit den schlechten Nachrichten fertig zu werden, ich möchte einen, der das kann.
Ich möchte einen Manager, der versteht, dass ich ein Privatleben habe, der versteht, dass erschöpfte Entwickler Fehler machen und dass es länger dauert, ein Projekt zu realisieren, das 60 Stunden pro Woche arbeitet als 40.
Vor allem möchte ich einen Manager, der gute Arbeit anerkennt und mir persönlich und seinen Vorgesetzten mündlich dankbar ist. Obwohl ich es wirklich hasse, wenn sie denken, dass die schlechte Arbeit gute Arbeit ist und die falschen Leute belohnen!
quelle
Freundlichkeit wäre etwas, was ich dort hinstellen würde. Ich mag es nicht, ein Gefühl der Angst zu haben, wenn mein Chef beschließt, jedes Mal meine Kabine zu besuchen . Meine Leistung kann ein wenig besser sein, wenn ich das Gefühl habe, einem Freund zu helfen, der gelegentlich um einen Gefallen bittet, z Stunden, die ich sonst vielleicht nicht machen möchte.
Kompetenz im Umgang mit mehreren Dingen wäre ein weiterer Aspekt, nach dem ich Ausschau halten würde, obwohl dies bis zu einem gewissen Grad als offensichtliches Merkmal angesehen werden kann. Konfliktlösungs- und Versöhnungsfähigkeiten sind auch etwas, mit dem mein Manager umgehen kann, da es in bestimmten Situationen Entwickler gegen Entwickler oder Entwickler gegen Analyst geben kann, wenn jemand Recht haben muss, was möglicherweise auch nicht der Fall ist In einigen Fällen können einige Aspekte der Arbeit mehrere Interpretationen haben.
quelle
Jemand, der diese Entwicklung versteht, ist keine Fabrikarbeit. Wenn Sie mehr Stunden pro Tag einsetzen, wird der Ertrag wahrscheinlich nicht wesentlich höher ausfallen. Programmierer müssen ihre Nase oft vom Schleifstein nehmen und denken einfach nicht daran, woran sie arbeiten, um ein Problem zu lösen und Dinge zu erledigen.
quelle
Ein guter Manager ist bereit, mich nein sagen zu lassen . Sie erkennen, dass Softwareentwicklung ein böses Problem ist . Selbst wenn der Manager kompetenter ist als ich, wird ihm klar, dass ich das Problem möglicherweise besser kenne, nur weil ich die Lösung implementiere. Gleichzeitig lassen sie mich wissen, wenn mir der Kontext fehlt. Oft treffen Manager Entscheidungen auf der Grundlage von Dingen, von denen sie wissen, dass ich sie nicht tue. Wenn dies der Fall ist, sollten sie mich über die Details informieren oder mir zumindest mitteilen , dass sie etwas wissen, was ich nicht weiß.
quelle
Ich habe jetzt an einigen Stellen gearbeitet, an denen das Management ausdrücklich nicht-technisch war. Mein derzeitiger Arbeitgeber hat die Richtlinie, dass ein Manager, der eine technische Entscheidung trifft, einen Grund für die Entfernung darstellt. (Dies ist keine kleine Firma, von der Sie noch nie gehört haben. Etwa ein Drittel von Ihnen betreibt unser Produkt.) Zum Teil aufgrund dieser Politik, zumindest meiner Meinung nach, sind die Manager hier viel "stärker" als bei anderen Arbeitgebern. Da sie nicht in die technische Entscheidungsfindung involviert sind, trifft das Management nicht ständig „leicht bis sehr falsche“ technische Entscheidungen. Sie treffen nur große Entscheidungen auf „Produktlinienebene“.
Die besten Manager, die ich je hatte, sind diejenigen, die für die Entwickler "eingreifen". Ein guter Manager kann den Unterschied zwischen einem 'Pflichttermin' und einem Pflichttermin erkennen und wird Sie darüber informieren.
Eine grundlegende Management-Fähigkeit ist es, den Entwicklern das Gefühl zu geben, die Kontrolle über ihre Umgebung zu haben. Dies kann je nach Unternehmen entweder eine Erinnerung oder eine Illusion sein, ist aber eine äußerst wichtige Fähigkeit.
quelle