Was sind die wichtigsten Dinge, die ein Programmierer vom Senior-Programmierer erwartet?


41

Kürzlich las ich die folgenden 5 Arten von Chefs und wie man mit ihnen umgeht, die die Kleidung des schlechtesten Chefs beschreiben. Ich habe gerade angefangen, ein kleines Team von Softwareentwicklern zu führen.

Ich würde gerne wissen, was die wichtigsten Dinge sind, die ein Programmierer von einem Senior-Programmierer erwartet, oder welche Dinge sollten wir vermeiden, wenn wir ein Team leiten.

Außerdem möchte ich wissen, wie ich die Programmierer zufriedenstellen und eine produktive und vollständige Umgebung für mein Team schaffen kann.


19
joelonsoftware.com Lesen Sie so viel von seinem Blog, wie Sie Zeit haben.
P. Brian Mackey

@ P.Brian.Mackey super Link!
Avatar

2
Dass der Senior-Programmierer einen Avatar im Zusammenhang mit Miyazaki hat, ist vielleicht kein Muss, aber sicherlich ein großes Plus :-)
leonbloy

1
Interessant ... Mein Chef hat bei diesem Test 4 von 5 Punkten erzielt ... Ich sollte ihn auf die guten Neuigkeiten aufmerksam machen;)
Aeo

Antworten:


79

Dinge, die für mich gut zu funktionieren scheinen:

  • Geben Sie sinnvolle Arbeit und fördern Sie die Eigenverantwortung - auch wenn ein Problem auftritt, lösen Sie es nicht, sprechen Sie darüber und geben Sie der Person Einblicke, damit sie es selbst lösen kann.
    • edit - add - das sollte auch beinhalten - halt dich aus den details raus. Nehmen Sie an, Ihre Mitarbeiter wissen genug, um den Auftrag ohne Mikromanagement oder ohne ständiges Einchecken auszuführen. Erstellen Sie eine Reihe von Richtlinien, wann sie einchecken sollten - und zwar nur dann, wenn die Arbeit entweder erledigt oder so richtig durcheinander ist, dass ernsthafte Eingriffe erforderlich sind erforderlich. Vermeiden Sie, wenn möglich, auch nur die Notwendigkeit, bei Problemen mit dem Interteam-Support auf dem Laufenden zu bleiben.
  • Seien Sie ehrlich - das hat mehrere Konsequenzen:
    • Seien Sie ehrlich zu sich selbst - "Ich werde nicht vor Dienstag Zeit haben", "Ich habe das nie getan, hier ist meine beste Vermutung" usw.
    • Seien Sie ehrlich in Bezug auf das Team und wo sie in das Unternehmen passen - wenn Sie etwas über das Geschäft wissen, sagen Sie es ihnen, wenn Sie können, und sagen Sie ihnen, was Sie als klare Fakten kennen.
    • Seien Sie ehrlich, wenn Sie Feedback geben - zerkleinern Sie keine Worte oder treten Sie nicht auf, wenn Sie negatives Feedback geben. Das ist etwas anderes als "brutal ehrlich" - Sie können immer noch Mitleid haben, aber wenn etwas nicht stimmt, sagen Sie es.
    • Seien Sie ehrlich, wenn Sie wissen, dass es bei der Arbeit mehr um Redtape geht, als darum, dass etwas Sinnvolles getan wird. In jedermanns Leben wird bedeutungslose Arbeit fallen. Tu nicht so, als wäre es sinnvoll. Nennen Sie es wie es ist, damit Sie sich darauf konzentrieren können, an etwas Nützlichem vorbeizukommen.
  • Hör zu . Mindestens 50% Ihrer Arbeit hört zu, vielleicht mehr. Sie sind plötzlich nicht nur für die technische Arbeit verantwortlich, sondern auch für die Leute, die sie erledigen. Sie müssen zuhören, um nicht nur zu erfahren, welche Probleme das Team hat, sondern auch, wie Ihre Mitarbeiter mit dem Problem umgehen und welche Mängel das Team als Gruppe aufweist.
    • Wichtiges Fazit - Zuhören kann direkt zu Punkt 1 führen - für sinnvolle Arbeit - Ingenieure sind großartig darin, Wege zu finden, um die Entwicklung zu vereinfachen. Sie können nicht alles genehmigen, aber wenn die Idee gut ist, geben Sie dem Ingenieur den Auftrag, und er hat im Wesentlichen Ihre Arbeit für Sie erledigt - er hat die sinnvolle Arbeit erstellt und Ihnen genau gesagt, was es ist.
  • Sag "Danke" . Ich weiß, es scheint offensichtlich. Wir alle lieben Geld, bessere Werkzeuge, ein angenehmeres Arbeitsumfeld und Werbeaktionen. Der Weg dorthin führt über eine Reihe guter Anstrengungen, von denen jede ein "Dankeschön" verdient. "Danke" ist völlig kostenlos, es wird Ihnen nie ausgehen, und zu wissen, dass Ihr Manager Ihre harte Arbeit gesehen und geschätzt hat, ist auf jeden Fall eine Motivation.
  • Nehmen Sie sich Zeit für das große Ganze , auch wenn es bedeutet, einen Teil der täglichen Arbeit zu opfern, die Ihnen die Position verschafft hat. Es ist wahrscheinlich richtig, dass Sie besser als einige Ihrer Mitarbeiter programmieren können, aber wenn Sie nicht viel Zeit mit dem Gesamtüberblick verbringen - dem Team, der Gesamtprojektleitung, dem Zustand Ihrer Codebasis und der Effizienz Ihrer Prozesse , die Umgebung Ihres Teams - dann werden Sie nicht die Arbeit machen, die Sie von Ihnen erwarten.
  • Lernen Sie, ein Puffer für Ihr Team zu sein . Engineering-Teams arbeiten am besten, wenn sie Zeit haben, um ... Engineering zu betreiben. Unternehmensbürokratie ist kein Engineering. Alles, was Sie tun können, um die lästigen 1 Meetings pro Jahr / Monat / Woche mit externen Personen abzuhalten, ist besser. HINWEIS: Das bedeutet nicht, dass Sie agile Meetings mit Stakeholdern abhalten müssen - das ist Engineering, Ihr Team muss dafür da sein. Ich meine das Treffen mit Einrichtungen, die ein lautes, kreischendes Stück Maschine in der Nähe Ihres Teams platzieren möchten, oder der Prozessgruppe, die möchte, dass Ihr Team die Papiere dreifach ausfüllt, bevor ein Code eingecheckt wird. Sie sind das Flak-Absorptionssystem.
  • Nehmen wir an, die Menschen sind nicht böse , sie sind Menschen, die Gutes tun wollen, aber noch nicht herausgefunden haben, wie. Sie werden nicht in der Lage sein, alle Probleme zu beheben, aber oft sind die ersten vollständigen Fehler ebenso ein Faktor für Kommunikationsstörungen wie Inkompetenz oder vorsätzliche Bosheit. Wenn Sie mit der Annahme beginnen, dass Menschen nicht böse sind, haben Sie eine gute Hoffnung, eine Reihe der bösen Boss-Archetypen der obigen Liste zu vermeiden.

Und wahrscheinlich am wichtigsten ... Respekt . Wenn Sie die Mitglieder Ihres Teams ehrlich gesagt nicht respektieren können, müssen Sie daran arbeiten, dies zu ändern (egal, ob es sich um Lehrkräfte handelt oder um eine Änderung Ihrer Mitarbeiterzahl). Geben Sie dem ersten Tag Respekt und Sie werden es zurückbekommen, behandeln Sie die Menschen mit einem Mangel an Respekt und Sie werden niemals Respekt zurückbekommen.

Wenn Sie die meisten dieser Dinge erledigen, gibt Ihnen Ihr Team die meiste Zeit den Vorteil des Zweifels, wenn Sie beweisen, dass Sie ein Mensch sind und selbst etwas völlig vermasseln. :) Jeder Chef hat seine eigenen Nachteile, und es geht genauso darum, eine Beziehung zu Ihrem Team aufzubauen, in der er Ihnen helfen kann, Ihre Schwächen zu kompensieren, wie Sie ihnen bei ihren Problemen helfen.


1
Gute Antwort, ich würde hinzufügen, um ihnen Freiheit zu geben . Nichts schlimmeres, als Mikromanagement zu betreiben oder um Erlaubnis für jedes Detail bitten zu müssen.
Agradl

3
Wirklich genial .. Ich wünschte, StackExchange könnte folgende Benutzer unterstützen (eine kurze Notiz an Joel und Jeff) :)
PrinceCoder

2
WAAOW !! ... das war eine der besten Antworten, die ich je auf @Stackexchange
explorest am

wow und wow. und weil ich noch ein paar Zeichen eingeben muss, um diesen Kommentar abzugeben, wow.
Amir Afghani

2
@PrinceCoder Jeder Benutzer hat einen eigenen Feed, den Sie in einigen RSS-Readern nachvollziehen können.
Svick

12

Nun, eines der größten Dinge, die man lernen muss, ist, dass man sie sehr oft nicht glücklich machen kann, weil man einfach nicht die Fähigkeit hat, ihnen zu geben, was sie wollen.

Die besten Manager, für die ich gearbeitet habe, waren die ehrlichsten, die ihr Team gegen den ganzen Mist verteidigen, den das obere Management ihnen zuzuwerfen versucht, und vor allem, dass sie ihrem Team ZUHÖREN .


2
Es gibt einen großen Unterschied zwischen einem Manager und einem Senior-Programmierer. Ich habe noch keinen Manager getroffen, wie Sie ihn beschreiben. Bitte sag mir, wo ich sie finden kann ;-)
Freitag,

Fair genug, das sagt der Titel, aber die Frage geht weiter, um über Chefs zu sprechen. Ich habe in meiner Karriere viele gute Manager / Entwickler-Leads gehabt.
ozz

+1 @James jemand hat den Titel bearbeitet, wie es scheint. Bei Fragen steht über die Leads / Manager. Das Wort "Chef" sieht heftig aus, also wähle ich das Wort Senior Programmer.
Avatar

6

Ich bin der festen Überzeugung, dass eine der wichtigsten Voraussetzungen für Senioren und Führungskräfte die Verfügbarkeit für Junioren ist. Senioren und Leads haben oft Aufgaben, für die nur sie das Recht haben (wir geben Junioren beispielsweise keine Schreibrechte für Inszenierungen und Produkte). Außerdem ist es ein wichtiger Teil Ihrer Arbeit, den Nachwuchs zu betreuen, was bedeutet, dass Sie Fragen beantworten, die Sie nicht ignorieren. Je älter Sie sind, desto wahrscheinlicher ist es, dass Sie von anderen unterbrochen werden, die etwas von Ihnen brauchen. Sie müssen dieses Zeichen "Bitte nicht stören" aufgeben und lernen, mit Unterbrechungen umzugehen.

Zuhören ist wichtig.

Bitte und Danke sind wichtig und kosten nichts.

Erwarten Sie nicht mehr als Sie bereit sind zu geben. Wenn du willst, dass ich bis 3 Uhr morgens arbeite, solltest du besser neben mir sein und auch arbeiten. Nichts ist entmutigender, als für jemanden zu arbeiten, der jeden Tag pünktlich abreist, nachdem er Ihnen eine Aufgabe übertragen hat, die bis 7 Uhr erledigt sein muss.

Sei fair. Spiele keine Favoriten (spiele keine Favoriten, indem du deiner Freundin oder deinem Freund das Beste gibst). Behandeln Sie alle Mitarbeiter mit Respekt (auch Personen, die Sie persönlich nicht mögen).

Sei entscheidungsfreudig. Lassen Sie Entscheidungen nicht hängen, damit niemand sie alle fünf Minuten ändern kann.

Steh für deine Leute auf. Sie werden nicht alle gewinnen, aber die Leute werden für jemanden durch das Feuer gehen, der sie in der Kette unterstützt.

Sei bereit, der Bösewicht zu sein, wenn es nötig ist. Ein schlechter Apfel kann ein Entwicklerteam zerstören. Halten Sie sich nicht an dieser Person fest, weil Sie sich nicht mit ihrem schlechten Verhalten auseinandersetzen möchten (dies gilt mehr für Leads und offizielle Vorgesetzte). Wenn Sie schlechte Nachrichten haben, sagen Sie es dem Team und halten Sie es nicht geheim (sie werden es irgendwann herausfinden und sind dann sauer auf die schlechten Nachrichten und die Geheimhaltung). Sie sind nicht da, um beliebt zu sein, sondern um die Arbeit zu erledigen. Jeder, der eine Management- oder Quasi-Management-Position innehat, muss bereit sein, unbeliebt zu sein.

Erfahren Sie, wie Sie Ideen an höhere Unternehmen verkaufen und diese Fähigkeiten Ihren Entwicklern beibringen können.

Verstehen Sie die Bedeutung des Geschäftsbereichs und werden Sie Experte in diesem Bereich sowie in der Programmierung.


3

Die Schlüsselwörter hier sind Vertrauen und Verantwortung.

Sie müssen nur darauf vertrauen, dass Ihre Teammitglieder kompetent und auf die Erfüllung ihrer Aufgaben konzentriert sind. Indem Sie sich nicht zu sehr einmischen, überlassen Sie ihnen im Wesentlichen die "eigene" Verantwortung für ihre Arbeit.

Meiner Meinung nach bewirkt dies allein Wunder bei der Schaffung einer gesunden Atmosphäre.


2
Vorausgesetzt, sie sind anständig kompetent und motiviert. Wenn das Team so vererbt wird, ist dies leider nicht selbstverständlich. Wenn Sie die Mitglieder selbst ausgewählt haben, ist das natürlich eine andere Geschichte.
Péter Török

1
Nun, meiner Meinung nach werden auch diejenigen, die nicht zu kompetent sind, wenn ihnen die volle Verantwortung übertragen wird, auch bekannt als "Eigentümer" eines Teils des Projekts, alles tun, um ihre Arbeit zu erledigen. Es ist mir sogar egal, ob ein Teil des Codes durch Fragen in Foren und Foren gesammelt wird, solange der Job erledigt ist.
Jas

Leider habe ich Gegenbeispiele getroffen :-( Im schlimmsten Fall, den ich gesehen habe, hat ein Entwickler absolut nichts produziert , als er ungefähr zwei Monate lang die Freiheit und die volle Verantwortung hatte - wie sich herausstellte, kam er nicht einmal an den Arbeitsplatz. einige Leute ziehen einfach nicht ihr Gewicht in einem Team, und wenn man sie laufen läßt frei und ohne genaue Prüfung, die Sie gerade alles noch schlimmer machen wenn Sie nicht diese Menschen in der Zeit loswerden tun, können sie das ganze Team beschädigen..
Péter Török

@ Péter Török - sicher, jeder kennt ein paar solcher Leute in jeder Firma (als ich das las, dachte ich, du kennst den gleichen Typ wie ich :). Aber nach meiner Erfahrung konzentrieren sich die meisten Leute und versuchen, ihr Bestes zu geben.
Jas

Ich stimme zu, die meisten Leute versuchen ihr Bestes zu geben. (Oder soll ich sagen, jeder versucht sein Bestes zu geben - nur für einige, "bestes" trifft nicht die Schwelle der Auffälligkeit? :-) Man sollte trotzdem wachsam sein, um die Ausnahmen rechtzeitig zu bemerken - denn es gibt Ausnahmen. So wie in der Produktion Code, wir müssen die Fehlerfälle richtig handhaben , auch wenn sie unter normalen Umständen sind selten.
Péter Török

3

Nun, IMO, ich erwarte, dass der leitende Entwickler / Lead / was auch immer mit dem Entwicklerteam gegen Dinge wie idiotische Fristen, keine Ressourcen, sondern den Bau von Rom, Überstunden usw. zusammenarbeitet, all die Dinge, die die Produktivität verringern und die Menschen unglücklich machen.

Die Hauptsache, die IMO zu vermeiden hat, ist, dem oberen Management ein "Ja-Mann" zu sein und immer zuzustimmen, egal was sie sagen (mit anderen Worten ein Arschküsser).


+1: Richtig. Und wenn Sie feststellen, dass Sie sich bei einem "Yes-Man" melden, verlassen Sie ASAP.
Jim G.

1
Leider gibt es viele Umgebungen, in denen der Senior / Lead / Manager-Programmierer nichts anderes als ein Ja-Mann ist (oder wie ich sie lieber als "Schmiede" bezeichne), und das Schlimmste ist, dass Sie es die meiste Zeit nicht wissen bis nachdem du den Job angenommen hast.
Wayne Molina

3

Soziale Kompetenz. Manchmal wird den Leuten der Titel "Senior" verliehen und sie vergessen, dass sie nicht allwissend sind. Sie sind der Meinung, dass die Beförderung einen Kommentar zu ihren herausragenden technischen Fähigkeiten und ihrem latenten Genie abgibt. In Wirklichkeit sind sie jetzt sehr niedrige Manager. Sie sollten verstehen, wie und wen man motiviert, wer man lässt, wie man Kompromisse eingeht und wann man zuhört.

Eigentum. Die schlechtesten Senior-Programmierer übernehmen keine Verantwortung für das, worauf sie "Senior" waren. Sie greifen auf die Taktik von Arbeitswäscherei und Schuldzuweisungen zurück, die zu ihrer Beförderung geführt haben (höchstwahrscheinlich beim Tanzen auf dem Grab der Person, die sie unter den Bus geworfen haben). Jetzt müssen sie verstehen, was für ein Hintern sie haben und dass sie dafür verantwortlich sind, das Design, den Plan und einen großen Teil der Arbeit zu besitzen.

Erfahrung. Ich erwarte, dass erfahrene Entwickler alles zweimal gesehen haben. Sie sollten die Domäne und die Technologie verstehen. Sie sollten Risiken aggressiv angreifen und in der Lage sein, Zeit zu verlieren, indem sie rote Heringe verschwenden.


2

Konsistenz ist eines der wichtigsten Dinge. Wenn Entwickler vorhersagen können, wie Sie sich verhalten, sind sie glücklicher. Selbst wenn Sie ständig ein Gesamtwerkzeug sind, ist es besser, als manchmal cool und manchmal ein Werkzeug zu sein. Davon abgesehen, sei kein Werkzeug.


2

Wissen und Kommunikation. Die Quelle kennen und viel, viel wichtiger, es jedem erklären zu können, auf eine Weise, die er verstehen und behalten wird.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.