Ich arbeite seit fast 2 Jahren für ein großes Unternehmen (über 8000 Mitarbeiter) und wurde direkt nach Abschluss meines Studiums eingestellt.
Jeder hier muss sich täglich mit altem Code auseinandersetzen, der oft sehr schlecht gestaltet und voller Hacks ist. Zuerst hielt ich mich zurück und versuchte, die Dinge nicht zu sehr zu kritisieren. In der gegenwärtigen Situation ist es jedoch sehr schwierig geworden, damit umzugehen, und es scheint, dass niemand bereit ist, die von uns verwendeten Tools zu verbessern / zu ersetzen.
Genauer gesagt haben wir:
- Ein veraltetes Versionsverwaltungstool (Visual SourceSafe)
- Einfache alte Makefiles, die nur eine vollständige Wiederherstellung unterstützen
.def
Dateien, die für alle vorhandenen Architekturen manuell und separat gepflegt werden müssen- monolithische Header-Dateien und Projekte mit sehr wenigen unterschiedlichen Dateien (jede hat ungefähr 3000 Codezeilen, die manchmal sehr unterschiedliche Aufgaben erledigen)
- Keine Verwendung der "neuen" Sprachfunktionen (naja,
std::string
ist nicht so neu, aber niemand außer mir verwendet sie)
Ich habe vor ein paar Monaten beschlossen, etwas dagegen zu tun, indem ich eine neue Kompilierungsumgebung entwarf. Ich könnte inkrementelle Builds dazu bringen, zuverlässig zu arbeiten, schnellere Kompilierungszeiten, besser strukturierte Projekte und die automatische .def
Generierung von Dateien. Ich habe sogar eine Brücke von / nach Git zu / von Visual SourceSafe erstellt.
Ich habe meine Erfolge mehreren Kollegen und unserem Chef gezeigt, aber es war, als würde es niemanden interessieren. Sie sagten alle: "Nun ... die Leute sind es jetzt gewohnt, es so zu machen. Warum sollten wir Dinge ändern?"
Die von mir vorgeschlagenen Änderungen wurden so konzipiert, dass ein sanfter Übergang vom alten zum neuen System möglich ist. Jede Verbesserung kann separat und sicher angewendet werden.
Ich habe sogar versucht, einige meiner Mitarbeiter in die Veränderungen einzubeziehen. Aber bisher kein Erfolg.
Haben Sie schon eine ähnliche Situation erlebt? Was kann man tun, wenn "mit gutem Beispiel vorangehen" nicht funktioniert?
Antworten:
Ziel für den Kopf : "Mit gutem Beispiel vorangehen" sollte eine Verbesserung im Sinn haben, aber es sollte sich an Menschen richten, die nicht mit Technologie zu tun haben. Vielleicht haben Sie zu viel Zeit in die Verbesserung der Technologie investiert, aber nicht genug Zeit für das, was in ihren Köpfen vorgeht. Denken Sie über die treibenden Faktoren nach, warum es Widerstände für Neues gibt. In vielen Fällen befürchten sie nur ein gewisses Risiko. Identifizieren Sie diese Risiken und finden Sie Gegenargumente dafür.
Schnappen Sie sich das frische Fleisch : Es ist einfacher, Mitarbeiter zu gewinnen, die etwas verändern wollen. Sie bemerken sie sofort, wenn Sie sie sehen.
Vermeiden Sie das faule Fleisch : Einige werden nie mit Ihren Ideen sympathisieren. Lass sie beiseite.
Steigen Sie zu einer kritischen Masse auf : Finden Sie Menschen, die mit Ihren Ideen einverstanden sind. Gewinnen Sie eins nach dem anderen. Irgendwann, wenn eine kritische Masse erreicht ist, werden immer mehr Menschen freiwillig Ihrem Beispiel folgen.
Management-Vokabular : Manager haben kein Interesse an besseren Designs. Ihre Sprache ist Geld und Zeit. Stellen Sie klar, wie viel Arbeitsstunden für Bugs verschwendet werden. Stellen Sie klar, dass unzufriedene Kunden, die auf Bugs stoßen, nicht rentabel sind. Zeigen Sie, wie viel schneller Sie eine neue Funktion implementieren können. Sie müssen ein anderes Vokabular für Manager auswählen.
Alles dreht sich um Prozesse : Bessere Technologien machen keine besseren Programmierer und Programme. Wenn Sie gut laufende Prozesse haben, führen selbst veraltete Technologien zu guten Ergebnissen. Denken Sie darüber nach, wo Mühe und Zeit verschwendet werden. Vielleicht ist es nicht die Technologie, aber etwas in den Prozessen läuft schrecklich schief. In den meisten Fällen mangelt es an Kommunikation.
Ein neues Unternehmen finden : Sie haben bereits viel getan. Sie können immer noch versuchen, Dinge zu verbessern, aber es liegt auch an Ihnen, zu entscheiden, wie lange Sie es versuchen möchten und wie viel Energie Sie investieren möchten. Denken Sie daran: Auch wenn Sie nicht viel verbessern können, werden Sie viel aus Ihren Bemühungen lernen. Irgendwann müssen Sie weitermachen.
quelle
Haben Sie jemals darüber nachgedacht, dass Sie sich irren könnten?
Sie lesen also in der Schule einige Design- und Musterbücher und sind von vergleichsweise veralteten Praktiken entrechtet, in denen Sie arbeiten. Zweifellos handelt es sich wahrscheinlich um bessere Ideen, und neue Projekte sollten unter diesen Gesichtspunkten beginnen, aber Sie scheinen sich auf einer ganz anderen Ebene zu befinden.
Entwickler zu hüten ist wie zu versuchen, Katzen zu hüten, sie haben von Natur aus einen eigenen Verstand und eine bevorzugte Art, Dinge zu tun, ob richtig oder nicht. Es fällt mir schwer genug, Best Practices durchzusetzen und ein Team von zwei Entwicklern zu leiten, aber Sie arbeiten für ein Unternehmen mit 8000 Mitarbeitern.
Das ist eine erstaunlich große Zahl. Selbst eine einfache Prozessänderung, bei der alle Entwickler Besprechungen und Abwesenheitszeiten im öffentlichen Kalender planen müssen, wird zu einer äußerst komplexen und schwierig zu implementierenden Richtlinie auf breiter Front. Es wäre auch ein erheblicher Druck des Managements erforderlich, um sicherzustellen, dass die Richtlinie allgemein akzeptiert und angenommen wird.
Sie werden es vielleicht nicht glauben, aber etwas so Einfaches wie der Wechsel von monolithischen zu mehreren Header-Dateien oder die Versionskontrolle von SourceSafe zu Git erfordert einen enormen Aufwand und eine enorme Investition seitens aller Beteiligten. Es würde erfordern:
Signifikante Managementunterstützung
Unternehmensweite Akzeptanz
Investition von Besprechungszeiten für alle Entwickler, um sie über die neuen Initiativen zu informieren (Besprechungen kosten Mannstunden, Mannstunden kosten Geld)
Schulungen müssen geplant und eingerichtet werden, damit auch die dümmsten Entwickler wissen, was sie tun
Selbst unter der Annahme einer Stunde Schulung kosten 8000 Entwickler x 50 € / h 400000 € Schulungskosten. Das ist mehr Geld, als mein einziges Softwareentwicklungsteam in einem ganzen Jahr für Gehalt, Software und Hardware veranschlagt bekommt. Das ist eine außergewöhnliche Investition, die Sie vorschlagen.
Sie sagen jedoch: "Denken Sie an all die Zeit, die durch Produktivitätssteigerungen eingespart werden könnte." Zu Recht, aber bedeutende Investitionen sind ein bedeutendes Risiko. Ich bin mir also sicher, dass Sie damit Recht haben, bevor ich mich abmelde. Wenn keiner der älteren Leute Sie unterstützt, kann ich die Kosten nicht rechtfertigen. Letztendlich sind wir zwar ineffizient, aber konsistent. Bei 8000 Entwicklern im gesamten Unternehmen ist Konsistenz am wichtigsten.
Dazu müssen Sie sich von mehreren leitenden Mitarbeitern abmelden und genau und objektiv nach einer Möglichkeit suchen, die verlorene Entwicklerzeit bis zur Ineffizienz zu messen. Diese Zeit entspricht Dollar und nur Dollar und Politik werden dir helfen, diesen Kampf zu gewinnen.
quelle
Was Sie beschrieben haben, hört sich für mich nicht nach "Vorbild" an, es scheint, als hätten Sie einen Vorschlag gemacht und wurden abgelehnt. Um mit gutem Beispiel voranzugehen, müssen Sie den Menschen zeigen , dass Ihr Weg besser ist. Von den Problemen, die Sie aufgelistet haben, sehe ich drei, dass Sie Ihre eigenen Änderungen selbst anwenden können.
Erstellen Sie Ihre eigenen Makefiles vor Ort und zeigen Sie, wie effizienter Sie damit arbeiten können.
Teilen Sie vorhandene Dateien auf, wenn Sie sie berühren (ohne den Build zu unterbrechen), oder fügen Sie kleinere Header-Dateien ein, wenn Sie neuen Code schreiben. Wenn die Leute anfangen, mit ihnen zu arbeiten, werden sie feststellen, dass sie die Vervielfältigung nicht brauchen.
Setzen Sie die Einführung neuer Sprachfunktionen fort, wenn Sie alten Code berühren oder neuen Code einführen. Stellen Sie sicher, dass Sie die Dinge vereinfachen. Lassen Sie sich von diesem nicht entmutigen. Die meisten von uns sind faul. Wenn wir feststellen, dass ein neues Sprachfeature die Dinge einfacher macht, werden wir es übernehmen.
Wenn andere Entwickler nach einigen Monaten beginnen, Ihre Verbesserungen zu übernehmen, können Sie sich erneut an Ihren Chef wenden, wenn es um radikalere Änderungen wie die Aktualisierung Ihres Versionsverwaltungssystems geht. Sie müssen jedoch sicherstellen, dass die anderen Entwickler den Vorteil erkennen, da er sonst niemals zum Tragen kommt. Eine Möglichkeit wäre, Git in einem kleinen Projekt auszuprobieren, in dem nur wenige Entwickler aktiv sind. Auf diese Weise können Sie es als Evaluierung fördern, nicht als vollständigen Übergang zu einem unbekannten System.
Wenn nach einigen Monaten des Versuchs niemand mehr daran interessiert zu sein scheint, die Abläufe in Ihrem Unternehmen zu verbessern, müssen Sie sich wirklich überlegen, ob dies zu Ihnen passt.
quelle
Berücksichtigen Sie neben Lionel Barret (dem ich größtenteils zustimme) auch die mögliche Motivation für den Widerstand.
Aber auch:
Ich habe einen Verdacht: Wie viele Menschen in Ihrer Firma mögen Sie in Bezug auf Alter und Kultur (ich Männer "Schule" und "Schultyp")? Wie viele Personen wie Sie werden voraussichtlich in den nächsten zwei bis drei Jahren eingestellt und wie viele werden in den Ruhestand treten oder ihre Rolle in der Organisation ändern?
Mein Verdacht ist, dass Sie nicht in der Lage sind, das Unternehmen zu verändern. In dieser Situation wird entweder die Firma Sie verändern oder Sie "ausweisen" (in dem Sinne, dass es Ihr eigener Wunsch wird, fortzugehen), wenn Sie nicht in der Lage sind , mehr Zeit zu warten.
Vielleicht ist das Unternehmen jedoch der Ansicht, dass die von mir genannten zusätzlichen Kosten gespart werden können, indem der Änderungsprozess spontan durchgeführt wird, indem auf den natürlichen Ersatz der Mitarbeiter gewartet wird. Sie stehen erst am Anfang eines Prozesses, den Sie nicht sehen können, weil (noch) nichts hinter Ihnen liegt.
quelle
An dieser Stelle kann ich nur hinzufügen , einen Verweis auf die Joel Artikel Getting Things Done , wenn Sie nur ein Grunt sind . Die Abschnitte umfassen:
Ich würde den Artikel als "Veränderung muss mit dir beginnen" zusammenfassen.
quelle
Traurigerweise geraten die Leute ins Stocken und entwickeln die Mentalität: "Es funktioniert, jeder benutzt es in Ordnung, warum sollte man es ändern?" Und es wird ärgerlich.
Sie haben den richtigen Weg eingeschlagen, indem Sie sich nicht nur beschwert, sondern als Ersatz eine praktikable Lösung entwickelt haben. Jetzt müssen Sie sich nur noch einkaufen.
Zeigen Sie Ihren direkten Vorgesetzten (oder technischen Leiter). Haben Sie jemanden, der für die Änderungskontrolle oder Innovation zuständig ist, wenn er nicht daran interessiert ist?
Möglicherweise werden Ihre Ideen und Ihre Arbeit jedoch ignoriert und die Situation bleibt unverändert.
quelle
Sie müssen Ihren Fall so darlegen, dass Ihr Chef auf Ihrer Seite steht. Übrigens: Diese Art von Änderung wird von einem technischen Direktor oder Projektmanager vorgeschlagen. Sie müssen sich daher für das Projekt engagieren. (Alternativ können Sie ein technisches Audit vorschlagen. Ein Außenstehender sagt wahrscheinlich das Gleiche wie Sie, hat aber mehr Gewicht.)
Bisher sieht er keine Notwendigkeit, sich zu ändern, es sieht so aus, als ob sich Kosmetik für ihn ändert: Kostspielig ohne offensichtliche Vorteile, außer um die Phantasie eines Entwicklers zu befriedigen. Für ihn sind nur zwei Dinge wichtig: der Geldfluss und ein stabiles Team. Die Technik ist eine Black Box, wenn sie funktioniert, ist das genug.
Als erstes Geld müssen Sie nachweisen, dass das aktuelle Setup ihn Geld kostet. Was die Kosten / Stunde eines Entwicklers und wie viele Stunden schnellere Kompilierungszeiten würden ihn retten? Rechne nach. Stellen Sie außerdem Artikel oder Zeugnisse über die Risiken der aktuellen Code-Pipeline zusammen und zeigen Sie ihm beängstigende Zahlen: "Aufgrund von SourceSafe / Bad Coding Practices hat unser Unternehmen XXXK verloren."
Zweitens kann es sein, dass Ihr Chef mit alten, mürrischen Programmierern feststeckt, die ihre Verhaltensweisen nicht ändern wollen. Wenn der erste Punkt festgelegt ist, müssen Sie auch eine Lösung für dieses Problem vorschlagen. Wie viele seid ihr ? Es könnte interessant sein zu betonen, dass es schwierig sein wird, jemanden zu ersetzen, da die aktuelle Codierungspipeline bizantin ist. Sie müssen einen Plan vorschlagen, um das Team zu aktualisieren. Informieren Sie sie über die branchenüblichen Vorgehensweisen und überprüfen Sie, ob sie den neuen Regeln entsprechen.
Schließlich müssen Sie einen Plan zur Änderung der Codebasis vorschlagen, der in kleine Projekte mit Meilensteinen und Ressourcenzuteilung unterteilt ist. Tatsächlich verkaufen Sie sich als Projektmanager und die Änderungen sind für eine solide Code-Pipeline obligatorisch.
quelle
Arbeiten Sie in einer Organisation, die glaubt, dass gute Arbeit, Effizienz und Innovation zu Erfolg und Rentabilität führen. oder dass das Streben nach Umsatz und die Konzentration auf die Aufrechterhaltung des Umsatzes die Mieter des Erfolgs sind?
Unternehmen, die sich so verhalten, wie Sie es beschreiben, sind technologisch verankert. In einem wettbewerbsintensiven Markt könnten sie nicht mit einem Unternehmen konkurrieren, das sich auf Individualität und Innovation konzentriert.
Wenn Sie die Person sind, von der Sie sagen, dass Sie sie sind, dann arbeiten Sie an einem Ort, der Ihren Geist ehrt und belohnt. Schließlich werden Sie nach Jahren des Siedelns anfangen, Kompromisse für die gleiche Philosophie einzugehen, die Ihre Vorgesetzten annehmen. Arbeiten Sie woanders (wahrscheinlich in einer kleineren Organisation), die Wert auf harte Arbeit, Inspiration, Kreativität und Fortschritt legt.
Wenn Sie kein Risiko eingehen und dies bald tun, werden Sie sich irgendwann niederlassen und nicht mehr in der Lage sein, Ihre Neugierde und Kreativität zu nähren, da dies in Ihrer aktuellen Vergleichsgruppe philosophisch ablehnend ist.
Exzellenz ist eine Haltung und ein Weltbild.
Wissen Sie einfach, dass diese Erfahrung Ihnen die Einsicht gab, zu wissen, was Sie vermeiden sollten, und achten Sie genau auf Selbstgefälligkeit und Protektionismus, damit Sie dies frühzeitig erkennen können.
In Ihrem nächsten Interview stellen Sie Fragen wie "Welche Innovationen kommen von Ihren Mitarbeitern?", "Was hat sich durch die individuelle Kreativität verändert?", "Welche individuellen Talente kann ich in dieses Team einbringen?", "Was treibt den Erfolg Ihres Unternehmens an?" ? "," Wie geht Ihr Unternehmen ständig mit technologischen Innovationen um? "... Die Antworten auf Fragen wie diese sind äußerst aussagekräftig. Viele Organisationen haben keine Vision, oder diejenigen, die die Vision geschaffen haben, sind verschwunden, und die Organisation wird von Buchhaltern geleitet. Wenn Sie mit dem Director of Technology sprechen, fragen Sie ihn, ob er die Organisation als Technologieunternehmen versteht.
quelle
Wenn Sie die Umgebung, in der Sie arbeiten, nicht mögen, tun Sie sich selbst einen schlechten Dienst. Sie müssen von Menschen umgeben sein, die ähnliche Interessen und Ziele haben wie Sie beruflich. Ich weiß, manchmal ist das leichter gesagt als getan, aber das Gefühl, mehrere Jahre zurückzublicken und das Gefühl zu haben, Ihre Zeit verschwendet zu haben, ist schlimmer als die Angst, ein Risiko einzugehen.
Wenn Sie sich alternativ in einem System oder einer Umgebung entwickeln möchten, die bestimmte Technologien und / oder Methoden verwendet, empfehle ich Ihnen, ein Projekt außerhalb der Arbeit zu finden, zu dem Sie beitragen können. Zumindest die Vielfalt der Arbeit an beiden Systemen wird das Bedürfnis nach etwas anderem befriedigen, während Sie finden, wohin Sie gehören.
Mir scheint, Sie sind Fisch aus dem Wasser. Finde deinen Ozean und schwimme!
quelle