Wie geht man mit einer Senior-Entwickler-Diva um, die sich nicht bewusst zu sein scheint, dass ihre Fähigkeiten veraltet sind?

Ich bin ein IT-Produktivitätsberater, der zu einer kleinen Softwareentwicklungsfirma (zwanzig Mitarbeiter) gebracht wurde. Das Problem ist ein leitender Entwickler in einem Team von fünf Entwicklern, die am führenden Produkt des Unternehmens arbeiten.

Der Gründer war einige Jahre unzufrieden mit den technischen Fähigkeiten der Mitarbeiter und stellte kürzlich einen Senior-Entwickler für die Doppelrolle als technischer Leiter und Projektleiter ein. Er war der einzige, der ein Vorstellungsgespräch führte, und der einzige, der sich entschied, diese Person einzustellen.

Dieser Senior-Entwickler hat einen beeindruckenden Lebenslauf, der eine 25-jährige Karriere in der IT auflistet, mit vielen erfolgreichen Projekten, die für kleine Unternehmen bis hin zu multinationalen Konzernen durchgeführt wurden.

Das Team schätzte sein Profil jedoch im Laufe von zwei Monaten viel weniger. Ich hatte die Gelegenheit, mit drei von fünf Mitgliedern dieses Teams zu sprechen, und alle hoben drei Probleme hervor:

  • Laut ihnen ist der Typ ein Idiot und hat keinen Respekt gegenüber den anderen Mitgliedern des Teams. Ein aktuelles Zitat von ihm im Gespräch mit einem Junior-Programmierer vor dem Team ist sehr anschaulich: „Ich habe fünfundzwanzig Jahre in dieser Branche gearbeitet, und Sie? Was hast du getan? Du bist seit drei Jahren ein Code Monkey. Also halt die Klappe, du Idiot! Niemand interessiert sich für deine Meinung, verdammt.“

    Man sollte beachten, dass ich einige Treffen mit dieser Person hatte, und er schien sehr nett und höflich zu sein. Ich würde nicht glauben, dass dies dieselbe Person war, die ständig seine Teamkollegen beleidigte, wenn ich nicht die Zeugenaussagen von drei Teammitgliedern hätte.

  • Früher wurden Entscheidungen von allen Teammitgliedern getroffen. Wenn die Mitglieder nicht zustimmen würden, würden sie alles zusammen diskutieren und zu einer Einigung kommen oder zumindest die Argumentation denen erklären, die nicht zustimmen würden.

    Jetzt werden alle wichtigen Entscheidungen ausschließlich vom leitenden Entwickler getroffen. Diese Entscheidungen können nicht hinterfragt oder diskutiert werden, selbst wenn alle fünf Teammitglieder der Meinung sind, dass eine Entscheidung keinen Sinn macht.

  • Die Fähigkeiten und Praktiken des leitenden Entwicklers scheinen ein bisschen ... veraltet zu sein. Ein paar Beispiele:

    1. Er hasst IDEs, automatische Vervollständigung und Funktionen, die Programmierern helfen sollen, Code schneller zu schreiben, und behauptet, dass das Team Notepad++ verwenden sollte, um produktiv zu sein. Während es unter verschiedenen Umständen sinnvoll ist, ist es schwer vorstellbar, dass C#-Entwickler plötzlich Visual Studio für Notepad++ aufgeben.

    2. Er überarbeitet den Code nicht und kümmert sich nicht um den Stil (der in seinem eigenen Code inkonsistent ist), der Grund dafür ist, dass „er sich nur um Dinge kümmert, die wirklich wichtig sind“. Als Randnotiz wurde der Stil zuvor durch einen nächtlichen Build überprüft, der seit der Ankunft des neuen Leads zu scheitern begann.

    3. Er lehnt die Idee eines nächtlichen Builds ebenso ab wie automatisierte Tests. Ihm zufolge „testet jeder professionelle Entwickler seinen Code sowieso von Hand, es gibt also keinen Grund, Zeit mit dem Schreiben automatisierter Tests zu verschwenden“. Auch der nächtliche Aufbau ist seiner Meinung nach Zeitverschwendung.

    4. Er denkt, dass die Versionskontrolle größtenteils nutzlos ist, und scheint falsch zu verstehen, wie man eine verwendet. Das führt zu Situationen, in denen er ein Feature drei bis fünf Tage lang alleine entwickelt, und wenn er schließlich seine Änderungen festschreibt, „nimmt er meine“ für alle Konflikte. Wenn sich andere Teammitglieder darüber beschweren, dass ihr Code gelöscht wurde, fordert er sie auf, ihn neu zu schreiben. Bei mehreren Gelegenheiten taten andere Mitglieder dasselbe und löschten den Code des Hauptentwicklers. Er sah überrascht aus (es scheint, dass er nicht weiß, wie man svn logoder Diffs benutzt) und nahm seine Änderungen erneut vor, beschwerte sich, dass „sie auf mysteriöse Weise verloren gingen“ und beschuldigte SVN, es vermasselt zu haben.

    5. Er übertreibt die Bedeutung der Code-Optimierung. Sein Ansatz ist richtig, dh er betreibt einen Profiler, ermittelt einen Engpass und behebt ihn; Das Problem besteht darin, dass es keine nicht funktionalen Leistungsanforderungen gibt und keine Elemente darauf hindeuten, dass die Benutzer die Anwendung möglicherweise als langsam betrachten (und auf minderwertigen Entwicklungs-VMs gehostet, fühlt sich die App sehr reaktionsschnell an). Er hingegen verbringt praktisch die Hälfte der Zeit damit, den Code zu optimieren.

    6. Er schreibt sämtliches SQL von Hand und lehnt die Idee eines ORM ab. Dabei ist zu beachten, dass das aktuelle Produkt auf Microsofts ORM Entity Framework basiert und zwei der fünf Entwickler noch nie mit SQL gearbeitet haben.

    7. Er lehnt Frameworks und Bibliotheken von Drittanbietern ab, da es viel einfacher ist, Dinge von Grund auf neu zu schreiben. Er beschloss, alle JavaScript-Bibliotheken und -Frameworks außer jQuery aufzugeben, und behauptete, als er vor fünfzehn Jahren mit der Programmierung in JavaScript begann, gab es keine Frameworks und das Leben war viel einfacher.

    8. Er ist der Meinung, dass mobile Geräte (einschließlich Tablets) nur ein Hype sind, daher gibt es keinen Grund, wertvolle Zeit zu verschwenden, um die Kompatibilität der Website mit diesen Geräten sicherzustellen und ein ansprechendes Design zu erstellen. Das Produkt ist eine öffentliche Webanwendung, von der nicht erwartet wird, dass sie häufig von mobilen Geräten verwendet wird. Responsive Design könnte für diese App jedoch sehr interessant sein, da es selbst auf Desktops sowohl auf 19-Zoll-Monitoren als auch auf großen hochauflösenden Monitoren angezeigt wird.

    9. Er bittet das Team, das Internet (insbesondere StackOverflow) nicht mehr zu nutzen und sich auf ihr Gehirn, die Offline-Dokumentation (ich wusste nicht einmal, dass Microsoft immer noch MSDN-CDs verkauft!) und die Bücher zu verlassen.

Die Teammitglieder beschwerten sich beim Gründer des Unternehmens über ihren neuen Hinweis auf diese drei Probleme. Der Gründer antwortete, dass sie überreagieren und dass er aufgrund seines Lebenslaufs und des Interviews absolutes Vertrauen in die Fähigkeiten des neuen Leads habe, weshalb er dieser Person überhaupt erst die Rolle eines Lead Developers zugewiesen habe .

Was sollte das Team tun, um:

  • Entweder die Führung aus dem Team oder dem Unternehmen werfen,

  • Oder ihn zwingen, seine Einstellung gegenüber dem Team zu ändern?


In den Kommentaren wurden viele Fragen gestellt, daher hier einige zusätzliche Informationen.

  • Wie ist die Unternehmensstruktur über ihm? Wer ist sein Vorgesetzter?

    Angesichts der geringen Größe des Unternehmens ist die Struktur recht flach. Ganz oben steht der Firmengründer. Und dann gibt es Mitarbeiter, die direkt an den Gründer berichten. Rechtlich steht der neue Lead auf der gleichen Stufe wie die verbleibenden fünf Teammitglieder. Zum Beispiel hat er keine Macht, ein Teammitglied zu feuern oder ihn sogar in ein anderes Team zu versetzen.

  • Einiges von dem, was Sie in den Aufzählungszeichen als Punkte gegen ihn sagen, sind tatsächlich Punkte für ihn. Ich meine, er hat in mindestens der Hälfte von ihnen Recht

    In der Tat habe ich versucht, das Thema auf diese Weise darzustellen. Ich persönlich finde, dass einige dieser neun Punkte sinnvoll sind, aber nicht im Kontext des aktuellen Teams. Meine primäre Entwicklungsumgebung ist beispielsweise vi, aber ich werde weder einen C#-Entwickler dazu zwingen, vistatt Visual Studio zu verwenden, noch würde ich vimich selbst verwenden, wenn ich C#-Apps für Windows entwickle.

  • Ich verstehe wirklich nicht, warum dieser Typ seine Zeit in Ihrer kleinen Firma verschwendet. Er könnte wahrscheinlich viel mehr Geld verdienen, wenn er woanders arbeitet, als „der Typ, der immer noch weiß, wie man unser 25 Jahre altes, undokumentiertes, geschäftskritisches Legacy-System wartet, geschrieben in einer Programmiersprache, die nur noch 3 Menschen im Universum verstehen. "

    Allerdings ist es mir auch nicht ganz klar. Soll ich erwähnen, dass er COBOL kennt?...

  • Ich glaube nicht, dass dies eine echte Frage ist. Meiner Meinung nach ist dies ein Beitrag zum Trolling . Sie haben im Grunde alle möglichen schlechten Gewohnheiten zusammengenommen und gefragt, was zu tun ist.

    Meine Rolle als IT-Produktivitätsberater bedeutet, dass ich gerufen werde, wenn Unternehmen Schwierigkeiten mit ihren Entwicklerteams haben. In mehr als der Hälfte der Fälle geht es um unerfahrene und oft demotivierte Programmierer, die gezwungen sind, an beschissenem Code eines langweiligen Softwareprodukts zu arbeiten. Der andere Teil hingegen befasst sich mit Konfliktsituationen, starker Politik, gegenseitigem Missverständnis und allgemeinem Durcheinander. Daher bin ich in der Tat viel häufiger mit Situationen im Stil von TheDailyWTF konfrontiert als gewöhnliche Entwickler, da es eigentlich meine Aufgabe ist, dort zu sein, wo WTF passiert.

    Das ist vorher schon passiert. Ich habe eine Frage gepostet , die eine WTF-Situation beschreibt, und einige Leute nahmen an (ihre Kommentare wurden seitdem entfernt), dass ich trolle. Ich stelle mir vor, dass viele Situationen, mit denen ich konfrontiert war, hier auf die gleiche Weise betrachtet würden, was verständlich ist. Übrigens gehört die Situation, die ich hier beschreibe, bei weitem nicht zu den schlimmsten, die ich gesehen habe.

    Leider kann ich nicht zeigen, dass diese Situationen real sind. Zum Beispiel kann ich aus naheliegenden Gründen weder den Namen der Firma noch den Namen der Entwickler-Diva im aktuellen Fall nennen, und selbst wenn ich könnte, kennt hier niemand diese Firma oder diesen Entwickler (es sei denn, einige von Ihnen haben in Frankreich im Finanzsektor, der alte Systeme verwaltet).

  • Es klingt etwas seltsam, dass das wahrgenommene Problem bei dem neuen Lead liegt und dass es kein wahrgenommenes Problem bei den Leuten gibt, die unter ihm arbeiten (wie Sie). Hatte der Gründer Recht, unglücklich über das aktuelle Team zu sein? Wenn nicht, warum war er es?

    Beachten Sie, dass ich kein Mitglied des Teams bin, sondern nur ein Berater.

    Ich finde, dass der Gründer völlig zu Recht unzufrieden mit dem jetzigen Team ist. Die vier Entwickler haben wenig Erfahrung in der Programmierung im Allgemeinen und in C# im Besonderen. Der fünfte ist erfahrener und derjenige, der ursprünglich darauf bestanden hat, die Versionskontrolle zu verwenden, der den nächtlichen Build eingerichtet hat usw. Dennoch ist das Gesamtniveau des Teams nicht so hoch, wie man es braucht, um ein Produkt, das sie bauen, gut zu bauen im Augenblick.

    Es war eine ausgezeichnete Idee, sich für die Einstellung eines technischen Leiters zu entscheiden. Die Dinge wären jedoch viel besser gelaufen, wenn es eine Person gewesen wäre, die das aktuelle Team unterrichtet hätte, anstatt sie zu beschuldigen, und mit den aktuellen Mitgliedern gearbeitet hätte, nicht gegen sie.

  • Warum sollte jemand dagegen sein, das Internet zu nutzen, um Hilfe bei Softwareproblemen zu erhalten?

    Ich kenne den offiziellen Grund nicht, aber ich würde annehmen, dass der Hauptentwickler es immer so gemacht hat und der Ansicht ist, dass die Qualität von StackOverflow der offiziellen MSDN-Dokumentation unterlegen ist.

  • Ist es jemals vorgekommen, dass der Zweck dieses Typen darin besteht, dass das Team aufhört?

    Interessante Idee. Die Kündigung von Teammitgliedern wäre ein großer finanzieller Vorteil für ein kleines Unternehmen, das es sich möglicherweise nicht leisten kann, sie zu entlassen. Sobald diese Programmierer gehen, kann das Unternehmen erfahrenere Entwickler einstellen und die Entwickler-Diva in ein anderes Team versetzen.

  • Ich weiß also nicht, wie lange sich Ihre Teammitglieder bei Ihrem Chef über den leitenden Entwickler beschwert haben. Aber hatten Sie ein gutes Gespräch am Tisch mit ihnen?

    Zwar gab es Einzelbeschwerden, aber keine Gespräche am runden Tisch. Guter Vorschlag.

Kommentare sind nicht für längere Diskussionen gedacht; Diese Konversation wurde in den Chat verschoben . Wenn Sie das OP trollen wollen, ist das nicht akzeptabel. Wenn Sie sie beantworten möchten, verwenden Sie das Feld "Antworten". Wenn Sie über alle anderen Themen sprechen möchten, zu denen ich Kommentare gelöscht habe, wie z. B. Politik oder bevorzugte Websites oder Entwicklungstools, gehen Sie zum bereitgestellten Chat-Link.
Mir ist aufgefallen, dass Ihr Profil wahrscheinlich Ihr eigenes Bild enthält. Bossman wird nicht erfreut sein, wenn er darüber stolpert. Zum Beispiel, wenn ein Kollege ihm einen Tipp gibt.
Zur Erinnerung: Diese Frage basiert auf der Interpretation des Posters der Interpretation der Situation durch den Freund. Das sind zwei Schichten möglicher Missverständnisse. Wir können darauf wie geschrieben antworten, aber es besteht die reale Gefahr, dass spezifische Antworten nicht gut zu dem passen, was tatsächlich passiert. Vorbehalt Lektor.
The four developers have little experience in programming in general, and C# in particular.Nun, wer hat sie angeheuert und warum?
OP: Können Sie erklären, wer Sie beauftragt hat, dieses Team zu evaluieren? War es der Gründer, der Sie beauftragt hat, in diesem Fall zu beraten? Wenn ja, könnte das tatsächlich ein gutes Zeichen dafür sein, dass er erkennt, dass er mit seiner Wahl für den neuen Hauptentwickler einen Fehler gemacht haben könnte, was meiner Meinung nach einen ziemlich großen Einfluss auf die richtige Antwort auf diese Frage haben würde.
Wissen Sie, ob das Unternehmen beabsichtigt/erwartet, in Zukunft gekauft zu werden? Ein Element wie die Versionskontrolle könnte für einen VC oder Käufer einen Unterschied machen. Begreift der CEO „das Geschäft“?
Die meisten Antworten konzentrieren sich auf technische Argumente oder Gruppendynamik. Ich möchte jedoch auf ein wichtiges Detail hinweisen: Dies ist eine Situation in Frankreich , innerhalb eines französischen Unternehmens. AFAIK Das französische Arbeitsgesetz macht es sehr schwierig, einen Mitarbeiter zu entlassen. Ist es möglich, dass der Zweck dieses Setups nur darin besteht, das Entwicklerteam dazu zu bringen, aufzuhören, damit es nicht gefeuert werden muss?
Stimmen Sie dafür, das Thema als Off-Topic zu schließen, weil es höchst unklar ist, was Ihre Position und Ihre Optionen sind. "Sollte das Blei wegwerfen?" JA, natürlich, wenn das eine Option ist, warum machst du dir überhaupt die Mühe, das zu posten. Wenn das keine Option ist, erklären Sie uns bitte, was Sie tun möchten und was Sie tun können.
Und doch fanden nicht weniger als 10 Personen die Frage beantwortbar, die fast 200 Personen für eine gute Frage hielten. Ich frage mich, ob es einen Abschlussgrund geben sollte, der besagt: "Auch wenn 200 Leute es verstehen, ich und 4 andere nicht, also schließe es."
Es hört sich so an, als ob Sie versuchen, fair zu sein, und selbst wenn Sie die Fehler dieses Typen präsentieren ... wenn Sie es dem Firmengründer so präsentieren, werden Sie niemals Ergebnisse sehen. Die Probleme, die Sie bei ihm aufgeführt haben, sind nicht trivial und müssen angegangen werden.
RE: "Einige der Punkte, die Sie in den Aufzählungszeichen als Punkte gegen ihn sagen, sind tatsächlich Punkte für ihn. Ich meine, er hat in mindestens der Hälfte davon Recht" - ähm, welche? Ich finde jeden einzelnen von ihnen ziemlich schrecklich, außer vielleicht für Code-Optimierer ...
Es ist irreführend, "ein Kollege" zu sagen, als ob Sie in der Abteilung arbeiten würden. Sie sollten sagen, dass Sie ein Produktivitätsberater sind, der hinzugezogen wurde, um das Problem zu beheben, und ja, dies ist eine tatsächliche Situation. Letztendlich treffen Sie keine Entscheidungen, sondern nur Empfehlungen. Sie haben uns nicht mitgeteilt, nach welchen Kriterien Sie zwischen den Optionen wählen. (Sind Sie autorisiert, mit dem Typen zu sprechen und ihm zu sagen, warum die Leute mit ihm unzufrieden sind? Ihn an einen Psychologen verweisen? Oder was?) Wie auch immer, ich habe versucht, es zu bearbeiten, um diese zu klären. Aber letztendlich haben Sie uns nicht gesagt, was Ihre Funktion in dieser Situation ist, also ist das keine wirkliche Frage.
Wenn Sie sagen: „Teammitglieder zu entlassen, wäre ein großer finanzieller Vorteil für ein kleines Unternehmen, das es sich möglicherweise nicht leisten kann, sie zu entlassen. Sobald diese Programmierer gehen, stellt das Unternehmen möglicherweise erfahrenere Entwickler ein und versetzt die Entwickler-Diva in ein anderes Team.“ es klingt, als würdest du trollen oder leichtsinnig. Uns ist immer noch unklar, welche Rolle Sie dabei spielen . Wenn die Funktion des SR-Entwicklers darin besteht, dieses Team zu zerstören und die Junior-Jungs dazu zu bringen, freiwillig zu kündigen, was erwartet der Chef dann von Ihrer Beteiligung?
Der neue Teamleiter ist zwar sicherlich giftig, aber ein Ablenkungsmanöver; Das eigentliche Problem ist der Eigentümer, der nicht weiß, wie man Personal verwaltet, und jemanden (mit externer Hilfe) einstellen muss, um diese Funktionen auszuführen (siehe meine Antwort unten für meine Argumentation).

Antworten (9)

Der Gründer antwortete, dass sie überreagieren und dass er aufgrund seines Lebenslaufs und des Interviews absolutes Vertrauen in die Fähigkeiten des neuen Leads habe, weshalb er dieser Person überhaupt erst die Rolle eines Lead Developers zugewiesen habe .

Der Schulleiter hat gesprochen. Es ist weder eine Regierung noch eine politische Partei. Sie können niemanden hinauswerfen oder einen Aufstand anführen.

Wenn Sie nicht bereit sind, sich damit auseinanderzusetzen, haben Sie wirklich eine Option. Sie können sich zusammenschließen und damit drohen, aufzuhören, wenn nichts passiert.

Ich sage kann, nicht sollte. Es besteht eine außerordentlich gute Chance, dass dies nicht gut enden wird. Sie versuchen im Grunde, sich vor dem Chef zu positionieren, der seine Entscheidung getroffen hat, und die Verantwortlichen mögen es nicht, wenn sie herausgefordert werden.

Ich nehme an, das "Richtige", was Sie Ihnen sagen sollten, ist, Techniken zu finden, die ihn ermutigen, Ihre Denkweise zu erkennen. Aber das werde ich nicht tun. Ich bin ein 30-jähriger Senior-Entwickler und ich kann Ihnen sagen, dass ich mich in meinen grundlegenden Dingen weitgehend festgelegt habe. Nein, ich bin kein Maschinenstürmer wie dieser Typ und ja, ich nehme Vorschläge an. Ich nehme neue Technologien an und so weiter. Dieser Typ liegt in vielen Dingen eindeutig falsch. Was ich Ihnen jedoch sagen kann, ist, wenn ich mir etwas vorgenommen habe und davon überzeugt bin, dass ich die richtige Entscheidung treffe, dann stehe ich dazu. Ich vertrage Drohungen nicht gut und Nötigung oder Manipulation sind noch schlimmer.

Mein Punkt ist, dass er davon überzeugt ist, dass er "Programmierer Jesus" ist (was eine traurige, unglückliche Einstellung ist) und Sie ihn niemals ändern werden, nicht in diesem Stadium seiner Karriere. Er ist überzeugt, dass er Recht hat, und er glaubt, dass seine Erfahrung ihn bestätigt. Der Chef leider auch.

Ehrlich gesagt ist es den Stress für Sie und Ihr Team wahrscheinlich nicht wert. Ich würde jedem von Ihnen vorschlagen, sich nach einem neuen Job umzusehen und zu gehen, wenn Sie einen gefunden haben. Wenn eine Person geht, stellen Sie sicher, dass sie dem Chef sagt, warum. Irgendwann bekommt er vielleicht das Bild. Selbst dann ist es keine Garantie.

RUN Ernsthaft, ich weiß nicht, warum irgendjemand dort sein möchte. Fragen Sie sich, gibt es irgendetwas in dem, was Sie uns erzählt haben, das nicht den endgültigen Untergang für das Produkt bedeutet? Ich bin sicher, Sie kennen das. Ich bezweifle in dieser Hinsicht die grundlegende Intelligenz des Gründers. Entwickler sind normalerweise sehr lausige Projekt-/Programmmanager. Es ist ein separates Skill-Set und sie müssen sich gegenseitig ausgleichen. Es ist, als würde man sagen: „Wir brauchen keine separaten Tester, Entwicklertests funktionieren hervorragend.“ Beides sind Rezepte für eine Katastrophe. Viel Glück. Ich meine, dass.

Kommentare sind nicht für längere Diskussionen gedacht; Diese Konversation wurde in den Chat verschoben .
Ein Gründer, der einem neuen Mitarbeiter so bedingungslos vertraut, obwohl er nicht beurteilen kann, ob der Typ überhaupt fähig ist, ist es nicht wert, mit ihm zu streiten. Ich stimme zu, laufe bei der erstbesten Gelegenheit. Es gibt bessere Jobs für Entwickler da draußen.
@Magisch Ich habe genau dieses Szenario in meiner Karriere viele, viele Male gesehen. Ein Typ mit beeindruckendem Lebenslauf (oder gut darin, sich selbst zu verkaufen) wird eingestellt und ist nicht der „Golden Boy“. In jedem einzelnen Fall verliert der GB seinen Glanz und landet ebenfalls auf den Outs. Leider ist es normalerweise, nachdem er sein Team dezimiert hat (so deckt er sich ab, wenn er zum ersten Mal seine Inkompetenz zeigt).
Sie sehen jung aus, seit 30 Jahren in der IT.
@tuskiomi, das Bild ist ein paar Jahre alt, aber ich habe sowieso immer jung ausgesehen. Ich wurde in meine 30er gekrempelt. Mein erster Job in der IT (damals nannten wir es DP) war 1986, also sind es jetzt 30. Scheint ehrlich gesagt nicht möglich zu sein, aber mein erstes Projekt war die Installation von Advanced Netware 2.0a auf einem brandneuen PC Limited (Dell) 386-16 Server mit 2 MB RAM und 2 70-MB-Festplatten voller Bauhöhe auf einem Thin-Ethernet-Backbone. :)
@ChristopherEstep, lustig zu denken, dass es heute nur ein paar Sekunden (wenn überhaupt) dauert, um genug herunterzuladen, um die gesamte Festplatte zu füllen.
Mir ist klar, dass die ursprüngliche Version des OP ein wichtiges Detail übersehen hat: dass sie keine Mitarbeiterin ist, sondern eine Beraterin, die dieses Problem (vermutlich) beheben soll. Ihr zu sagen, sie solle vor dem Problem davonlaufen, hilft nicht wirklich, was es umso seltsamer erscheinen lässt, dass sie die Antwort „akzeptiert“ hat! Ich möchte Ihre Antwort natürlich nicht kritisieren, sie ist wie immer ausgezeichnet, sondern weist nur darauf hin, was ich seltsam fand.

Die Beschreibung der Situation durch das OP ist wahrscheinlich einseitig. Das ist okay.

Ich bin ein alternder Entwickler (~54 Jahre), der in ein Unternehmen gebracht wurde, um nicht zu regieren, sondern um etwas Erfahrung zu bieten. (Der IT-Chef sagte tatsächlich „graue Haare“, lol.) Das Entwicklerteam war alles in allem viel versierter als jedes andere Team, mit dem ich zuvor zusammengearbeitet hatte. Sie haben mir viel beigebracht, besonders über Demut! Aber wir fanden Orte, an denen ihre technologische Zauberei die Probleme nicht löste und in einigen Fällen diese Probleme verbarg, was sie letztendlich verschlimmerte. Hier konnte ich mich wirklich einbringen.

Ihre Führung klingt stark autokratisch. Es hört sich so an, als hätte ihm der Eigentümer ein Mandat erteilt. Der Eigentümer ist unzufrieden mit dem Entwicklerteam und hat diesen „hartgesottenen, sachlichen Macher“ hinzugezogen, um die Liefergeschwindigkeit zu verbessern.

Schauen Sie sich zuerst Ihre Mitarbeiter an. Haben Sie Schwächlinge – Entwickler, die „die Matrix nicht sehen“? Wenn ja, finden Sie neue Stellen innerhalb des Unternehmens oder geben Sie ihnen eine gute Referenz für einen Arbeitgeber, der ihre einzigartigen Fähigkeiten benötigt.

Er hasst IDEs

Ich kenne einige, die das tun. Es lässt mich mit den Augen rollen, aber letztendlich ist es mir egal. Wenn Leute mit produzieren vi, dann ok. Ich liebe meine IDEs.

Er überarbeitet den Code nicht und kümmert sich nicht um den Stil (der in seinem eigenen Code inkonsistent ist).

Rote Fahne im ersten Teil. Ist er ein Copy-Paster? Ich bin auch schuldig, weil ich mich nicht um Stil kümmere, aber das liegt daran, dass ich meine IDE verwende, um meinen Python-Code sofort PEP8-konform zu machen. Aber er verwendet keine IDE ...

Als Randnotiz wurde der Stil zuvor durch einen nächtlichen Build überprüft, der seit der Ankunft des neuen Leads zu scheitern begann.

Er lehnt die Idee eines nächtlichen Builds ebenso ab wie automatisierte Tests. Ihm zufolge „testet jeder professionelle Entwickler seinen Code sowieso von Hand, es gibt also keinen Grund, Zeit mit dem Schreiben automatisierter Tests zu verschwenden“. Auch der nächtliche Aufbau ist seiner Meinung nach Zeitverschwendung.

Dies löst auch eine rote Fahne aus, aber aus anderen Gründen, als Sie vielleicht erwarten. Bevor dieser Typ eingestellt wurde, wie oft wurde dem Eigentümer gesagt, dass er X (eine Demo geben, das System verwenden usw.) nicht machen könne, weil der nächtliche Build fehlgeschlagen sei? Was ist, wenn der Besitzer wahrnimmt, dass der nächtliche Aufbau das Problem ist? Was glaubst du, was er dem Lead sagen würde?

Aber ich habe Bedenken wegen der Haltung des Leads; automatisierte Tests sind erstaunlich. Nach wie vor versteht der Chef vielleicht nicht den Wert der Tests, aber er weiß sicherlich, dass Y% der Gehaltsschecks der Entwickler dafür bezahlt werden. Als ich in meiner jetzigen Firma ankam, hatte die "100% Test Coverage Mafia" das Entwicklerteam übernommen und die Kosten wahnsinnig in die Höhe getrieben. Einen faulen Apfel später schnurrte das Entwicklerteam wieder.

Er denkt, dass die Versionskontrolle meistens nutzlos ist ...

Dies ist eine rote Fahne der höchsten Ordnung. Er liegt so falsch wie möglich. Er geht verantwortungslos mit dem Geld des Besitzers um.

Er übertreibt die Bedeutung der Code-Optimierung.

Früher konnte die Code-Optimierung einen Unterschied machen. Jetzt sind Maschinen so schnell, dass es weniger wichtig ist. Stattdessen müssen wir uns jetzt um die Datenbankleistung und den Netzwerkdurchsatz kümmern. Aber seine „Code-Optimierungs“-Gewohnheit ist schwer zu brechen, glauben Sie mir. Ich muss mich nicht voroptimieren. Zumindest ist sein Verhalten in diesem Fall nicht destruktiv, abgesehen von der Zeit, die es braucht. (Haben Sie Zahlen für seine „halbe Zeit“ oder ist das eine Übertreibung? Wenn Sie Ihren Vorgesetzten kritisieren, ist keine Übertreibung erlaubt. Sie müssen pathologisch objektiv sein.)

Er schreibt sämtliches SQL von Hand und lehnt die Idee eines ORM ab.

Schuldig im Sinne der Anklage! Ich verstehe die Angst der Leute vor SQL nicht. Ich verstehe es nicht, SQL, das absolut einfach ist, unter Schichten von ORM zu begraben, die verschleiern. Kann dir hier nicht helfen :-D Aber bitte lade all dein SQL an einem Ort ab - verteile nicht alles in deinem Code.

und zwei der fünf Entwickler haben SQL noch nie zuvor verwendet.

Das ist nicht akzeptabel. Wir schreiben das Jahr 2016. Sie müssen sich weiterbilden.

Er lehnt Frameworks und Bibliotheken von Drittanbietern ab, da es viel einfacher ist, Dinge von Grund auf neu zu schreiben.

Er könnte nicht falscher liegen. Ich bezweifle, dass Ihr Unternehmen so besonders ist, dass Ihre Dienstprogramme intern geschrieben werden müssen. Wir hatten ein paar Entwickler, die sich Tools von Drittanbietern zu eigen machten – bis sie etwas taten, das dem Entwickler nicht gefiel. Es war ein Vorwand, das Tool wegzuschmeißen und ein eigenes zu schreiben. Dies trägt nur zur Belastung des Entwicklerteams bei und verlangsamt es weiter. Dieser wenig hilfreiche Code ist teuer zu schreiben, zu testen, zu debuggen und zu warten. Wir haben so viel Geld für -null- Nutzen ausgegeben. Diese Entwickler sind jetzt weg.

Er beschloss, alle JavaScript-Bibliotheken und -Frameworks außer jQuery aufzugeben, und behauptete, als er vor fünfzehn Jahren mit der Programmierung in JavaScript begann, gab es keine Frameworks und das Leben war viel einfacher.

Dieser ist nicht so eindeutig. Der Grund dafür ist, dass das Leben vor 15 Jahren viel einfacher war, weil das Geschäft viel einfacher war. Von daher ist das Problem gekommen. Das Web wurde als Batch-System erfunden (Formular ausfüllen, absenden, Antwort erhalten, wiederholen) und jetzt versuchen wir, Web-Apps zu schreiben, die sich wie Desktop-Apps verhalten. Seine Beobachtung ist richtig, die Dinge sind jetzt hart. Aber er erkennt nicht warum. Die Toolkomplexität ist eine Antwort auf eine kompliziertere Geschäftsfrage. Daher trifft er schlechte Entscheidungen.

Wir verwenden AngularJS und es scheint anständig zu sein. Wie alle mächtigen Werkzeuge kann es zum Guten oder Bösen eingesetzt werden.

Er ist der Meinung, dass mobile Geräte (einschließlich Tablets) nur ein Hype sind, daher gibt es keinen Grund, wertvolle Zeit zu verschwenden, um die Kompatibilität der Website mit diesen Geräten sicherzustellen und ein ansprechendes Design zu erstellen. Das Produkt ist eine öffentliche Webanwendung, von der nicht erwartet wird, dass sie häufig von mobilen Geräten verwendet wird.

Er liegt wieder falsch. Sie sind kein Hype. Sie sind hier, um zu bleiben, weil sie nützlich sind. ABER das Geschäft braucht es nicht. Entwickeln Sie nichts, was Sie nicht brauchen. Es ist teuer.

Responsive Design könnte für diese App jedoch sehr interessant sein, ...

Ist es so interessant, dass Sie persönlich für die Entwicklung bezahlen würden? Wenn dies eine gute Idee ist, sollten Sie in der Lage sein, die Idee an den Eigentümer zu verkaufen. Ansonsten keinen Cent dafür ausgeben.

Er bittet das Team, das Internet (insbesondere StackOverflow) nicht mehr zu nutzen und sich auf ihr Gehirn, die Offline-Dokumentation (ich wusste nicht einmal, dass Microsoft immer noch MSDN-CDs verkauft!) und die Bücher zu verlassen.

Er hat Unrecht. Dafür eignet sich das Internet hervorragend. Wenn die Entwickler von Stackoverflow kopieren und einfügen, ohne zu verstehen, wie der Code funktioniert, liegen sie ebenfalls falsch. Ist im Entwicklungsplan Zeit für Weiterbildung und persönliche Weiterentwicklung? Es ist schwer, nicht roboterhaft zu kopieren und einzufügen, wenn Sie immer unter Druck stehen.


Obwohl ich nur begrenzte Informationen habe, gibt es hier viele Probleme. Es hört sich so an, als hätte der Besitzer den Code, für den er bezahlt, nicht so schnell erhalten, wie er erwartet. Es hört sich so an, als hätte er viele Ausreden über Dinge gehört, die ihm egal sind; Er konzentriert sich auf das Ergebnis. Wenn ich richtig liege, haben Sie eine selbst zugefügte Wunde und Sie haben sie mehr als einmal wieder geöffnet. Dieser Hinweis ist die Lösung des Eigentümers für das Problem, das die Entwicklermitarbeiter aufgeworfen haben, und angesichts seiner begrenzten Informationen ist es verständlich.

Ich wette auch, dass Sie einen nicht agilen Shop betreiben und eine schlechte Anforderungsdefinition haben, die sich ändert, wenn der Wind weht. Es gibt keine Isolationsschicht zwischen dem Entwicklerteam und dem Besitzer. Bis auf diesen Lead.

Nun, was können Sie tun?

1) Schulen Sie den Lead, dass die Verwendung von automatisiertem Testen und Code-Management der richtige Weg ist. Es kann einige Zeit dauern, um bei ihm Glaubwürdigkeit zu erlangen - der Besitzer hat ihm wahrscheinlich gesagt, dass das Personal defekt ist. Sehen Sie, ob Sie ihn daran hindern können, umfassende Anweisungen zu erteilen, wie z. Dies gibt Ihnen Zeit, Wert zu zeigen.

2) Verwenden Sie die Codeverwaltung weiterhin auf persönlicher Ebene. Dann kann man sich wenigstens von seinen eigenen Fehlern erholen. Sagen Sie ihm nicht, dass Sie das tun, aber lügen Sie ihn auch nicht an.

3) Fahren Sie mit automatisierten Tests (allenfalls Unit-Tests) auf persönlicher Ebene fort. Wie zuvor, erwähnen Sie es nicht, aber verstecken Sie es nicht.

4) Arbeiten Sie mit dem Lead zusammen, um festzustellen, was die tatsächlich wahrgenommenen Probleme sind. Seien Sie aufgeschlossen; Ich wette, es gibt echte Probleme mit dem Personal. Arbeiten Sie mit der Elektrode, um die Probleme anzugehen, nicht die Symptome.

5) Besprechen Sie mit dem Lead verschiedene Entwicklungsthemen, wie z. B. die Vorteile von Wasserfall und Agilität. Beides ist nicht perfekt. Stellen Sie ihm Fragen wie „Unter welchen Umständen würde sich automatisiertes Testen lohnen“? Wenn er eine zweifelhafte Antwort gibt, fragen Sie ihn, wie erfolgreiche Unternehmen wie Google es trotzdem geschafft haben, erfolgreich zu sein.

Sie können also sehen, dass es mir nur darum geht, den Lead zu engagieren und zu sehen, wo sich sein Kopf befindet. Vertrauen aufbauen. Einigen Sie sich auf Probleme versus Symptome. Das ist nicht immer einfach, besonders wenn Sie das Gefühl haben, er ist wie Godzilla und zerreißt Ihre Arbeit.

Es besteht die Möglichkeit, dass er keine Kompromisse eingehen kann. Er wird automatisiertes Testen vernichten. Code-Management ist etwas für sorglose Menschen. Mein Weg oder die Autobahn.

Wenn es jedoch an diesem Punkt angelangt ist, wird es für Sie Zeit zu gehen. In einem werkzeuglosen Geschäft zu arbeiten, und ich meine Software und Software-Engineering-Tools, baut Ihren Lebenslauf nicht auf. Sie werden anfangen zu verrotten, genauso wie das Blei verrottet ist. Fahren Sie in diesem Fall fort.

Was die Code-Optimierung betrifft, stimme ich weitgehend zu (obwohl es definitiv Ausnahmen gibt). Algorithmusoptimierung, das ist eine andere Geschichte. Im Allgemeinen ist es mir egal, ob ich eine 32-Bit- oder eine 64-Bit-Integer-Variable verwende, um eine bestimmte Menge zu speichern. Wenn ich denke, dass die Gefahr besteht, dass 32 Bit nicht ausreichen, werde ich 64 Bit verwenden und nicht weiter daran denken. Es ist jedoch unmöglich, die Software zu einer guten Leistung zu bringen, wenn Sie O(n^3)- oder O(n^4)-Algorithmen für große Datensätze verwenden, bei denen es möglich ist, die Arbeit in O(n^2) oder vielleicht sogar O( n log n). Nichts, was Sie an der Implementierung von O(n^4) tun, kann Ihnen O(n log n) bringen.
Ohne ORM kann es Stunden dauern, Code zu schreiben, um eine Hierarchie wie Bestellung -> Sendung -> Artikel wiederherzustellen. Mit einem ORM dauert dies Minuten. Ziehen Sie einfach die Bestellungen, rufen Sie die Sendungen und Artikel vorab ab.
@MichaelKjörling, aber das ist normalerweise nicht die Art der Optimierung, die Sie mit einem Profiler machen und langsamen Code "reparieren". Wenn Sie einen Algorithmus schreiben, sollten Sie die Leistung KENNEN und auf geeignete Weise implementieren. Ein Profiler hilft Ihnen, langsame Teile im Code anderer Leute (andere Entwickler, aber insbesondere Bibliotheken von Drittanbietern) und Fehler zu finden. Und normalerweise sollten diese Probleme gelöst werden, wenn sie auftreten. Nur "langsamen Code" zu finden und ohne Leistungsziel zu beheben, ist teuer und hilft Ihnen nicht, wenn zB Ihre Server-CPU sowieso 70% der Zeit im Leerlauf ist.
@Josef Ich stimme zu! Zeit damit zu verbringen, Dinge zu beheben, die keine Probleme sind, ist sehr oft Zeitverschwendung. Aber ich stimme nicht zu, dass Sie diese Art von Problemen nicht mit einem Profiler identifizieren würden. Der Zweck eines Profilers besteht darin, Codesegmente zu identifizieren, deren Ausführung während eines bestimmten Arbeitsablaufs übermäßig lange dauert. Der nächste Schritt danach besteht darin, festzustellen, ob diese lange Ausführungszeit ein Problem darstellt, und wenn ja, warum und was dagegen zu tun ist. Der Profiler liefert Rohdaten zur Ausführungszeit als Eingabe für diesen Prozess, aber es macht keinen Sinn, kleine Anpassungen vorzunehmen, wenn der Algorithmus verrückt ist.
Ich mag es immer, wenn ich Probleme lösen kann, indem ich SQL intelligent verwende. SQL ist ein super einfacher Weg, um das zu bekommen, was Sie wollen, und kein ORM-Framework könnte einfacher sein, imo.
Ich kann Ihrer Meinung zu Raw SQL nicht zustimmen. Ich stimme zu, dass jeder ernsthafte Entwickler SQL kennen und sich bei der Verwendung von ORM bewusst sein sollte, aber im Ernst, wenn ein bestimmtes Problem mit ORM gelöst werden kann und kein Bootle Neck ist, sollte es nicht mit rohem SQL gelöst werden. Nicht, weil ORM schicker wäre, absolut nein. Es ist viel sicherer und einfacher für vielleicht weniger erfahrene Leute, die mit Ihnen zusammenarbeiten, Ihren Code zu übernehmen. Sie denken vielleicht, dass es falsch ist, aber so ist es, ich kannte erfahrene Entwickler, die sich nicht daran erinnerten, wie man gruppiert nach verwendet. Es mag uns gefallen oder nicht, aber wir arbeiten zusammen.
ORMs (ich verwende SQLAlchemy für Python) eignen sich auch hervorragend zum Erstellen komplexer Abfragen. Stellen Sie sich vor, Sie schreiben eine Funktion, die nach Rechnungen sucht, und sie hat ein paar Optionen und Parameter (Datumsbereich, Beschränkung auf einen bestimmten Kunden, archivierte Rechnungen einbeziehen?). Mit reinen SQL-Strings verketten Sie jetzt Strings für Ihre WHERE-Klausel. Mit einem ORM fügen Sie einem Query-Objekt ClauseElement-Instanzen hinzu.
@Simon Warte eine Minute, niemand hat über das Verketten von rohen SQL-Strings gesprochen! ORM gibt vor, dass eine relationale Datenbank in Wirklichkeit eine Objektdatenbank ist – das ist nicht immer eine gute Abstraktion. Persönlich bevorzuge ich einen dünnen relationalen Client mit LINQ-Syntax zusätzlich zu SQL. Sie müssen nicht so tun, als seien Beziehungen Objekte und Abfragen Eigenschaften. Müssen Sie einen weiteren Filter hinzufügen? Mach es einfach query.Where(i => i.FirstName == "Simon");.
Das einzige, was Sie vermisst haben, war das „Halten Sie die Klappe, Sie Idiot“. Ich meine, Sie haben mehr als genug rote Fahnen aufgezeigt, um ihn loszuwerden, aber das ist eine andere. Das würdest du mir nicht zweimal sagen. Du würdest es niemandem zweimal sagen, wenn ich in der Nähe bin und es höre.
@ gnasher729 Ich entscheide mich zu glauben, dass dies eine Übertreibung ist. Aber wenn nicht, würde die Tür mich beim Hinausgehen nicht am Hintern treffen.

25 Jahre in der IT [...] ändern seine Einstellung

Wird nicht funktionieren, tut mir leid.

Ihr eigentliches Problem ist nicht der inkompetente Hauptentwickler. Dieses Problem ist im Vergleich zu dem von Ihnen beschriebenen eigentlichen Problem unbedeutend:

Ihr Gründer vertraut einem inkompetenten* Fremden mehr als seinen bestehenden Mitarbeitern.

Sie müssen herausfinden, wie das Team sein Vertrauen verloren hat und wie Sie es zurückgewinnen können. Dies wäre einfacher gewesen, wenn dies vor der Einstellung des Fremden geschehen wäre. Nun, das ist schwierig, denn jede gute Arbeit wird dem neuen Teamleiter zugeschrieben, und jede schlechte Arbeit wird Ihnen allen zugeschrieben – Sie können sie also nicht beheben, indem Sie härter arbeiten.

Mir fallen nur 2 Dinge ein, um die Situation bei diesem Job zu verbessern:

  1. Finden Sie einen Vermittler. Gibt es mehrere Gründer oder so etwas wie Vorstandsmitglieder?
  2. Vielleicht ist das Vertrauensproblem ein Sichtbarkeitsproblem. In diesem Fall hilft Ihnen alles, was zur Sichtbarkeit beiträgt. Gestalten Sie beispielsweise Sprint-Demos spannend und interessant genug, dass der Gründer tatsächlich daran teilnimmt und etwas über den Status und Fortschritt des Teams erfährt.

* Während die meisten vom OP angesprochenen Punkte den Fremden nicht unbedingt inkompetent machen, tut es sein Ansatz zur Versionskontrolle und kontinuierlichen Integration in einem 5-Personen-Team sicherlich.

Nirgendwo steht im OP "agil" oder "sprint". Ich vermute, dass dieser Ort bestenfalls eine Ad-hoc-Methodik hat.
@TonyEnnis Deshalb habe ich "eg" verwendet. Es sollte etwas Vergleichbares mit Sprint-Demos geben, wenn Sie sichtbar sein wollen, egal welche Methodik Sie verwenden.
Ah ich sehe. Es ist eine gute Idee, vor dem Chef greifbare Ergebnisse zu erzielen.

Diese Antwort mag ungünstig sein und von manchen als krass angesehen werden, aber ...


Die erste rote Flagge istFor a few years, the founder was unhappy about the technical skills of the employees

Haben die Mitarbeiter versucht, die Unzufriedenheit zu beheben?


Die zweite rote Fahne isttwo of the five developers never used SQL before

Es ist schwierig, ein effizientes System zu erstellen, wenn die Entwickler nicht mit Kerntechnologien vertraut sind und wirklich verstehen, was das ORM maskiert.


Es ist schwer vorstellbar, dass I worked for twenty-five years in this industry, and you? What have you done? You've been a code monkey for three years. So shut up, you, moron! Nobody cares about your opinion, a******.das tatsächlich ausgesprochen wurde, aber ich werde es für bare Münze nehmen und Ihnen glauben.

Bedenken Sie jedoch die erste von mir erwähnte rote Flagge und das "Unglück", mit dem der Gründer seit Jahren zu kämpfen hat.

Dazu füge ich hinzu: Ihr wisst seit Jahren von der Unzufriedenheit des Gründers?!

Wie wurden Ihnen diese Informationen mitgeteilt?


Ich neige zu der Annahme, dass dieser Typ genau das tut, wofür er eingestellt wurde; bringt euch in Form.

Sie in Form zu bringen bedeutet nicht, die schlechten Praktiken des Neuen zu übernehmen, sondern Sie aus Ihrer Komfortzone zu werfen, um auf einer tieferen Ebene zu lernen.

Es könnte sein, wenn der Rest der Punkte in der OP-Frage nicht vorhanden wäre. Eine Kleinigkeit fehlt – der Quellcode – und das ist ungefähr das, was diesen Teamleiter wirklich von einer vollständigen Katastrophe trennt, wenn er sich nicht schon genug eingemischt hat. Oder das ist eine ausgezeichnete Troll-Frage, aber was ist dann echt, ja?
Die Flaggen, die Sie hervorheben, sind wichtige Probleme, die nicht angesprochen wurden, aber alles andere an diesem Entwicklerleiter widerspricht rundweg der Idee, „Sie in Form zu bringen“, es sei denn, der Gründer steckt ebenfalls in Techniken von vor über 25 Jahren fest.
"in Form bringen" durch Verzicht auf Tests, Stil, Dokumentation, Versionskontrolle, Respekt und Kommunikation ... ja richtig :/ aber nicht der beste Witz, den Sie hier machen.
@eques Hängt davon ab, wie tief die Motive gehen. Der Gründer hat diesen Mann persönlich interviewt und eingestellt, ohne zusätzlichen Input. Ohne die Diskussion hinter verschlossenen Türen zu kennen, kann derzeit NIEMAND mehr als Vermutungen liefern.
@DanielJour Das Team in Form zu bringen bedeutet nicht, seine schlechten Praktiken zu übernehmen. Bitte beachten Sie mein Update. Sorry für die Verwirrung.
Im Moment kommentiert dies nur die Frage und beantwortet nicht wirklich die gestellte Frage, nämlich wie die Situation verbessert und mit den schlechten Praktiken der „Diva“ umgegangen werden kann.
@MonkeyZeus Danke, dass du das geklärt hast. Obwohl es möglich ist, bezweifle ich irgendwie, dass dies die Motivation ist, diesen Typen einzustellen. Der Neue bringt höchstwahrscheinlich die Produktivität auf Null. Obwohl, wie bereits gesagt, die anderen beiden Punkte, die Sie ansprechen (Unzufriedenheit, keine SQL-Erfahrung), wichtig zu berücksichtigen sind.
@DavidK Ich habe anerkannt, dass meine Antwort ungünstig sein könnte. Manchmal muss man zwischen den Zeilen lesen, einen Schritt zurücktreten und überlegen, ob es sich um ein XY-Problem handelt.
@MonkeyZeus Ich sage nicht, dass Ihre Antwort ungünstig ist, ich sage, dass Ihre Antwort die Frage nicht beantwortet. Ich würde daraus schließen, dass Sie dem OP sagen, er solle es aufsaugen und tun, was der Manager sagt, aber dann heißt es in der letzten Zeile: "Übernehmen Sie nicht die schlechten Praktiken des neuen Mannes." Wie macht der OP beides?
Es wäre zwar sinnvoll, jemanden mit besonderen Fähigkeiten einzustellen, um ein Team in Form zu bringen, wenn seine technischen Fähigkeiten fehlen/nicht zufriedenstellend sind, aber angesichts der anderen Aspekte (sofern genau beschrieben), könnte dies nicht der direkte Fall sein, es sei denn, a) die Gründer hat eine ähnliche technische Denkweise oder b) der Gründer ist völlig unwissend über technische Fähigkeiten und Entwicklungstechniken. Da das OP nicht angibt, ob der Gründer ein technischer Gründer ist, ist es durchaus möglich, dass der Gründer die technischen Einschränkungen seines neuen Mitarbeiters nicht erkennt (nicht, dass dies die einzigen Probleme wären).
Ich kann glauben, dass die Absicht des Managements darin bestand, einen hochrangigen Leiter einzustellen, um ein leistungsschwaches Team in Form zu bringen, sie haben es sicherlich schwer vermasselt.
Mir tut der Besitzer leid. Er hat das Vertrauen in das Team komplett verloren, und um die Situation zu retten, hat er auf der Position "Diktator" nach einem Stern gesucht ... und einen schlechten bekommen =/. Ich denke, die Quintessenz dieser Antwort sollte explizit geschrieben werden: "Nichts kann getan werden, es ist zu spät." Der Eigentümer, der den Mitarbeitern nicht vertraut, musste sich auf den beeindruckenden Lebenslauf verlassen und Vertrauen in ihn setzen. Dass das Team verunsichert wird, könnte seiner Ansicht nach eigentlich eine positive Reaktion sein - ein schlechtes Team fühlte sich unwohl, also werden sie vielleicht wechseln. Jetzt werden sie gehen und der Besitzer wird nach einigen Jahren herausfinden, dass der General ein schlechter ist.
Diese Antwort wäre sinnvoll, wenn das Unternehmen in einem Reality-Show-Coding-Bootcamp stattfindet.

Der Gründer war einige Jahre unzufrieden mit den technischen Fähigkeiten der Mitarbeiter und stellte kürzlich einen Senior-Entwickler für die Doppelrolle als technischer Leiter und Projektleiter ein. Er war der einzige, der ein Vorstellungsgespräch führte, und der einzige, der sich entschied, diese Person einzustellen.

Klingt, als würde der Gründer euch Jungs nicht trauen.

Das Team schätzte sein Profil jedoch im Laufe von zwei Monaten viel weniger. Ich hatte die Gelegenheit, mit drei von fünf Mitgliedern dieses Teams zu sprechen, und alle hoben drei Probleme hervor:

  • Laut ihnen ist der Typ ein Idiot und hat keinen Respekt gegenüber den anderen Mitgliedern des Teams. Ein aktuelles Zitat von ihm im Gespräch mit einem Junior-Programmierer vor dem Team ist sehr anschaulich: „Ich habe fünfundzwanzig Jahre in dieser Branche gearbeitet, und Sie? Was hast du getan? Du bist seit drei Jahren ein Code Monkey. Also halt die Klappe, du Idiot! Niemand interessiert sich für deine Meinung, verdammt.“

Klingt, als würdest du nur eine Seite der Geschichte verstehen. Ich kann mir ein paar Situationen vorstellen, in denen ich vielleicht selbst einen jungen Besserwisser schlagen muss, und das habe ich getan. Ich spiele hier nur den Advokaten des Teufels, aber es klingt, als wäre er provoziert worden. Was war die Provokation?

  • Früher wurden Entscheidungen von allen Teammitgliedern getroffen. Wenn die Mitglieder nicht zustimmen würden, würden sie alles zusammen diskutieren und zu einer Einigung kommen oder zumindest die Argumentation denen erklären, die nicht zustimmen würden.

Offenbar brachten frühere Praktiken nicht die Ergebnisse, die der Gründer wollte.

Jetzt werden alle wichtigen Entscheidungen ausschließlich vom leitenden Entwickler getroffen. Diese Entscheidungen können nicht hinterfragt oder diskutiert werden, selbst wenn alle fünf Teammitglieder der Meinung sind, dass eine Entscheidung keinen Sinn macht.

Auch hier klingt es nach einem Misstrauensvotum des Gründers. Er hat diese Art von Person aus einem bestimmten Grund hereingebracht. Klingt so, als ob der Grund darin bestand, den Rest des Personals in Form zu bringen.

  1. Er hasst IDEs, automatische Vervollständigung und Funktionen, die Programmierern helfen sollen, Code schneller zu schreiben, und behauptet, dass das Team Notepad++ verwenden sollte, um produktiv zu sein. Während es unter verschiedenen Umständen sinnvoll ist, ist es schwer vorstellbar, dass C#-Entwickler plötzlich Visual Studio für Notepad++ aufgeben.

IDEs können Sie verlangsamen, wenn Sie ein schneller Programmierer sind. Notepadd ++ ist einigen für schnelles Codieren überlegen. Die Idee ist, dass Sie Ihren Code schreiben und ihn dann zur schnellen Korrektur in der IDE ablegen, anstatt ständige Unterbrechungen zu verursachen.

  1. Er überarbeitet den Code nicht und kümmert sich nicht um den Stil (der in seinem eigenen Code inkonsistent ist), der Grund dafür ist, dass „er sich nur um Dinge kümmert, die wirklich wichtig sind“. Als Randnotiz wurde der Stil zuvor durch einen nächtlichen Build überprüft, der seit der Ankunft des neuen Leads zu scheitern begann.

Shop-Standards sind etwas, das man mit dem Gründer besprechen sollte, besonders da man es durch den nächtlichen Build laufen lässt. Aber noch einmal, wenn man zwischen den Zeilen liest, sieht es so aus, als würde der Gründer Ihnen nicht vertrauen.

  1. Er lehnt die Idee eines nächtlichen Builds ebenso ab wie automatisierte Tests. Ihm zufolge „testet jeder professionelle Entwickler seinen Code sowieso von Hand, es gibt also keinen Grund, Zeit mit dem Schreiben automatisierter Tests zu verschwenden“. Auch der nächtliche Aufbau ist seiner Meinung nach Zeitverschwendung.

Er hat Recht, automatisierte Tests erklären nicht das schiere Genie eines Dummkopfs, der etwas nie beabsichtigtes tut. Ich persönlich habe mehrere Programme beschädigt, die automatisierte Tests durchlaufen haben.

  1. Er denkt, dass die Versionskontrolle größtenteils nutzlos ist, und scheint falsch zu verstehen, wie man eine verwendet. Das führt zu Situationen, in denen er ein Feature drei bis fünf Tage lang alleine entwickelt, und wenn er schließlich seine Änderungen festschreibt, „nimmt er meine“ für alle Konflikte. Wenn sich andere Teammitglieder darüber beschweren, dass ihr Code gelöscht wurde, fordert er sie auf, ihn neu zu schreiben. Bei mehreren Gelegenheiten taten andere Mitglieder dasselbe und löschten den Code des Hauptentwicklers. Er sah überrascht aus (es scheint, dass er nicht weiß, wie man svn log oder diffs benutzt) und nahm seine Änderungen erneut vor, beschwerte sich, dass „sie auf mysteriöse Weise verloren gingen“ und beschuldigte SVN, Fehler gemacht zu haben.

Hier sind alle schuld. Sichert niemand? Wenn er Probleme mit der Versionskontrolle hat, liegt es in der Verantwortung des Teams, als Team zu arbeiten und ihm nicht nur das Leben schwer zu machen.

  1. Er übertreibt die Bedeutung der Code-Optimierung. Sein Ansatz ist richtig, dh er betreibt einen Profiler, ermittelt einen Engpass und behebt ihn; Das Problem besteht darin, dass es keine nicht funktionalen Leistungsanforderungen gibt und keine Elemente darauf hindeuten, dass die Benutzer die Anwendung möglicherweise als langsam betrachten (und auf minderwertigen Entwicklungs-VMs gehostet, fühlt sich die App sehr reaktionsschnell an). Er hingegen verbringt praktisch die Hälfte der Zeit damit, den Code zu optimieren.

Die Bedeutung der Codeoptimierung kann gar nicht genug betont werden. Der Zweck der Code-Optimierung besteht nicht darin, sicherzustellen, dass er heute richtig läuft, sondern darin, ihn so zu optimieren, dass Sie drei Jahre später kein Problem beheben, das durch Code-Optimierung hätte verhindert werden können.

Wenn Sie sich nur darum kümmern, dass die Benutzer heute zufrieden sind, werden sie morgen an Ihre Tür klopfen.

  1. Er schreibt sämtliches SQL von Hand und lehnt die Idee eines ORM ab. Dabei ist zu beachten, dass das aktuelle Produkt auf Microsofts ORM Entity Framework basiert und zwei der fünf Entwickler noch nie mit SQL gearbeitet haben.

Zwei der fünf Entwickler sollen dann gefeuert werden. Wenn Sie sich auf ein ORM verlassen, werden Sie nie in der Lage sein, unter die Haube zu kommen und Dinge manuell zu beheben. Ich fange an zu verstehen, warum er jemanden frustriert einen „Code-Affen“ genannt hat. ORMs sind schön und gut, aber Sie müssen die SQL verstehen, wenn Sie jemals über die Grenzen eines ORM hinausgehen wollen.

  1. Er lehnt Frameworks und Bibliotheken von Drittanbietern ab, da es viel einfacher ist, Dinge von Grund auf neu zu schreiben. Er beschloss, alle JavaScript-Bibliotheken und -Frameworks außer jQuery aufzugeben, und behauptete, als er vor fünfzehn Jahren mit der Programmierung in JavaScript begann, gab es keine Frameworks und das Leben war viel einfacher.

Er hat recht. Frameworks und Bibliotheken von Drittanbietern haben Einschränkungen, und wenn Sie nicht genug verstehen, um es selbst zu beheben, verstehen Sie den Code nicht. Argumentieren ließe sich so oder so. Wenn jedoch niemand im Team programmieren kann, ohne die Frameworks zu verwenden, dann haben Sie ein sehr schwaches Team.

  1. Er ist der Meinung, dass mobile Geräte (einschließlich Tablets) nur ein Hype sind, daher gibt es keinen Grund, wertvolle Zeit zu verschwenden, um die Kompatibilität der Website mit diesen Geräten sicherzustellen und ein ansprechendes Design zu erstellen. Das Produkt ist eine öffentliche Webanwendung, von der nicht erwartet wird, dass sie häufig von mobilen Geräten verwendet wird. Responsive Design könnte für diese App jedoch sehr interessant sein, da es selbst auf Desktops sowohl auf 19-Zoll-Monitoren als auch auf großen hochauflösenden Monitoren angezeigt wird.

Nach allem, was Sie gesagt haben, hört es sich so an, als wäre er zum Putzen gebracht worden. Wenn mobile Geräte keine Hauptrolle für die Anwendung(en) spielen, ist es Zeitverschwendung, zu viel Zeit zu verbringen. Während es auf einem Desktop ein „nice to have“ sein mag, ist ein „nice to have“ keine Notwendigkeit für den Rollout.

  1. Er bittet das Team, das Internet (insbesondere StackOverflow) nicht mehr zu nutzen und sich auf ihr Gehirn, die Offline-Dokumentation (ich wusste nicht einmal, dass Microsoft immer noch MSDN-CDs verkauft!) und die Bücher zu verlassen.

Gut für Ihn. Sieht so aus, als wollte er wissen, wer seine eigenen Hausaufgaben machen kann und wer betrogen hat.

Die Teammitglieder beschwerten sich beim Gründer des Unternehmens über ihren neuen Hinweis auf diese drei Probleme. Der Gründer antwortete, dass sie überreagieren und dass er aufgrund seines Lebenslaufs und des Interviews absolutes Vertrauen in die Fähigkeiten des neuen Leads habe, weshalb er dieser Person überhaupt erst die Rolle eines Lead Developers zugewiesen habe .

Was sollte das Team tun, um:

  • Entweder die Führung aus dem Team oder dem Unternehmen werfen,

  • Oder ihn zwingen, seine Einstellung gegenüber dem Team zu ändern?

Wie wäre es, mit ihm zu arbeiten und nicht jede seiner Bewegungen zu sabotieren?

Ganz ehrlich, es hört sich so an, als wäre er zum Putzen gebracht worden, angesichts dessen, was Sie gepostet haben, klingt es mehr als gerechtfertigt.

Der Eigentümer ist mit Ihrer Leistung NICHT zufrieden. Es ziemt sich für Sie, den Rat dieses Kerls anzunehmen, was er wert ist. Wir Relikte haben ein bisschen Erfahrung und wir wissen, was die Bücher dich niemals lehren werden. Doch anstatt dies als Gelegenheit zum Lernen und Wachsen zu sehen, hat Ihr Team einen massiven Zischkrampf.

Kommentare sind nicht für längere Diskussionen gedacht; Diese Konversation wurde in den Chat verschoben .

Ich weiß also nicht, wie lange sich Ihre Teammitglieder bei Ihrem Chef über den leitenden Entwickler beschwert haben. Aber hatten Sie ein gutes Gespräch am Tisch mit ihnen? Erklären Sie Ihrem Chef die Probleme, die Sie mit dem leitenden Entwickler haben, und teilen Sie ihm seine Seite der Geschichte mit.

Aufhören sollte der letzte Ausweg sein.

Es scheint, als hätten alle anderen hier angenommen, dass "der Chef gesprochen hat", aber das ist möglicherweise nicht der Fall. Soweit ich gelesen habe, haben die Mitarbeiter und der neue Manager nur einzelne Gespräche mit dem Chef geführt, und nicht alle gleichzeitig. Könnte einen Versuch wert sein.
Können Sie mehr erweitern und erklären? Dies ist eine gültige Gegenmeinung zu Chris 'Antwort, aber im Moment gibt es nicht genügend Details, um eine gute Antwort zu sein.
+1 Denn lass die Diva seine Seite erzählen. Die Beschwerden sind so offensichtlich, dass sie wie unwahr aussehen. Sicherlich ist es ein klassischer Ego-Clash und mindestens ein Entwickler hier ist eine toxische Person
Wenn Sie mit Ihrem Job unzufrieden sind und kein Interesse daran haben, für den Versuch, das zu reparieren, Scheiße zu bekommen, warum bleiben? Es gibt viele bessere Jobs.

Der Eigentümer muss einen Personalmanager einstellen

Andere Antworten haben darauf hingewiesen, aber der Elefant im Raum ist, dass der Eigentümer (verständlicherweise) Schwierigkeiten zu haben scheint, Personalfunktionen wie Einstellung, Schulung, Entlassung usw. erfolgreich auszuführen. Typisches Beispiel: Der Eigentümer beschäftigt ein unterdurchschnittliches Team, erträgt sie jahrelang, stellt dann einen 25-jährigen Veteranen ein, um die Dinge zu reparieren, und stellt dann einen Berater ein, wenn der 25-jährige Veteran die Dinge nicht reparieren kann. Der Besitzer scheint nicht zu wissen, wie er die Personalseite des Geschäfts führen soll. Das ist in Ordnung, es gibt Leute, die das beruflich machen, und deshalb haben die meisten Organisationen Personalmanager. Der Besitzer muss einen Stat einstellen. Dies gibt dem Eigentümer die Möglichkeit, sich auf die strategische Seite des Geschäfts zu konzentrieren, also ist es eine Win-Win-Situation.

Vielleicht könnte OP bei der Befragung helfen (immerhin scheint der Besitzer diesbezüglich Hilfe zu brauchen)?

Guter Punkt. Aber wie soll er mit seiner Erfolgsbilanz unglücklicher Einstellungsentscheidungen einen Personalmanager einstellen, der die Sache nicht noch schlimmer macht? Dann braucht er irgendeinen VP, um den Personalchef auf Vordermann zu bringen.
Holen Sie sich vielleicht die Hilfe eines Beraters, möglicherweise eines wie OP? Aber ja, es ist möglich, dass dies einfach nie funktioniert, es sei denn, der Eigentümer hat einmal Glück mit einer Einstellungsentscheidung.

Eine "Falte", die ich hier noch nicht gesehen habe. Es ist ziemlich üblich, dass Leute mit viel Erfahrung defensiv werden, weil sie mit aktuellen Entwicklungen nicht auf dem Laufenden sind. Mir ging es genauso, wenn Leute darüber sprachen, wie schrecklich VB6 im Vergleich zum wunderbaren .Net sei, wenn diese Leute nur Dinge wiederholten, die sie über VB6 gehört hatten und nicht wirklich viel darüber wussten.

Wie Sie sagen, treffen viele Dinge, die der Anführer sagt, auf den Punkt. Aber das bedeutet nicht, dass sie alle sind, wie Sie sagen. Vielleicht kann Herr 25 Jahre offen sein und seinen Ansatz mit dem Besten des Status quo synthetisieren, aber nicht, wenn er Angst davor hat, weniger als perfekt zu sein, und seine Angst leugnet. Soweit es mich betrifft, ist das hier das eigentliche Problem. Es mag andere Probleme mit den Junioren geben (z. B. Abwehr wegen mangelnder Fachkenntnisse), aber das scheint hier das zugrunde liegende Problem zu sein.

Wenn alle zusammenkommen und ihre Ängste offen und ehrlich ansprechen, sollten sie anfangen, sich in eine positivere Richtung zu bewegen. Ich kann nicht sagen, dass es nach einer hohen Wahrscheinlichkeit klingt, aber es ist das, was getan werden muss.

  1. Hat das gesamte Team zusammen mit diesem Entwickler gesprochen und versucht, die Vorteile von Dingen wie Versionskontrolle und IDEs zu erklären? Eine offene Massendiskussion kann helfen

  2. Ich stimme zu, dass es unprofessionell ist, andere Entwickler zu beleidigen, und dies sollte ihm mit Nachdruck erklärt werden. Fragen Sie ihn, ob er sich darüber freut, wenn andere den gleichen Ton annehmen

  3. Fragen Sie ihn, ob er häuslichen Stress hat oder ein Gesundheitsproblem wie Diabetes hat, das ihn reizbar macht

  4. Fragen Sie ihn, ob er froh ist, uralt und ein mürrischer alter Idiot zu werden, dessen Verstand verkümmert, während er nichts Neues lernt.

  5. Wenn alles andere fehlschlägt, sagen Sie, dass alle seine Fehler dokumentiert werden, um Ihre eigene Haut zu retten, und Gespräche mit ihm können aufgezeichnet werden

Niemand wird nach 25 Jahren seine Meinung zu Versionskontrolle und IDEs ändern. Ich werde meine Meinung nicht ändern. Zum Glück für mich, meine Kollegen und die Unternehmen, für die ich gearbeitet habe, bin ich alles für die Versionskontrolle (sogar für Arbeiten, die ich alleine gemacht habe; es hat mir schon einmal den Arsch gerettet) und für die Verwendung von IDEs (warum auf der Erde würde niemand eine IDE verwenden). Aber noch einmal, keine Diskussion wird seine Meinung ändern.
„Frag ihn, ob er froh ist, uralt und ein mürrischer alter Idiot zu werden, dessen Verstand verkümmert, während er nichts Neues lernt.“ Irgendetwas sagt mir, dass das nicht gut ankommen würde.
+1 für den Versuch, die Vorteile zu erklären. -2 für die Beleidigung, egal wie unhöflich er ist.
Ich denke, das Hauptproblem bei dieser Antwort ist, dass sie impliziert, dass der Teamleiter in Bezug auf die Autorität auf der gleichen Ebene steht wie der Rest des Teams, was nicht der Fall ist. Während der Teamleiter niemanden entlassen kann, hat der Besitzer dem Teamleiter die Verantwortung übertragen und der Besitzer kann sicherlich Leute entlassen, also ist es nicht schwer vorstellbar, dass eine unhöfliche Antwort an den Teamleiter für die Teammitglieder nicht gut enden könnte, obwohl es könnte verlockend sein.
Es ist immer ratsam, im Umgang mit Vorgesetzten taktvoll zu sein.