Wie kann ich die schlampige Unternehmenskultur ändern? [geschlossen]

28

Manchmal, wenn ich ein Problem habe, das gelöst werden muss, ist es für mich am einfachsten, ein kleines Programm als persönliches Werkzeug zu schreiben. Ich mache es nicht super brauchbar oder super robust, da ich der einzige bin, der es verwenden wird, und ich habe keine Zeit, es zu verfeinern und gründlich zu testen.

Dann sieht ein Mitarbeiter das Programm und fragt danach, weil er auf dasselbe Problem gestoßen ist und das Tool helfen könnte. Ich gebe ihm den Haftungsausschluss "Es ist nicht schön, aber es wird die Arbeit erledigen" und lasse ihn es haben.

Als nächstes ruft mich mein Vorgesetzter an und teilt mir mit, dass er versucht, die Software auf dem Computer eines Kunden zum Laufen zu bringen, aber es wird eine X-Fehlermeldung angezeigt. WTF ?? Diese Software ist nicht zur Veröffentlichung bereit, und es wurde mir auch nicht mitgeteilt, dass sie zur Veröffentlichung bereit sein muss. Aber aus irgendeinem Grund fand mein Vorgesetzter es gut genug und veröffentlichte es, ohne es dem ursprünglichen Entwickler mitzuteilen.

Dieses spezielle Problem lässt sich nun leicht mit a beheben MessageBox.Show("DO NOT GIVE TO CLIENTS!");. Das Problem weist jedoch auf ein viel tieferes Problem hin: Unsere Unternehmenskultur ist schlampig. Schlampige Software ist in Ordnung und schlampige Prozesse sind in Ordnung. Sorgen Sie sich nicht um die Zukunft - geben Sie gerade genug Mühe, damit sie jetzt kaum noch funktioniert, speichern Sie die Binärdateien in einer ZIP-Datei und versenden Sie sie. Gut genug für die Regierungsarbeit.

Dies ist ein kleines Unternehmen mit 10 Vollzeitbeschäftigten, das wächst und schon eine Weile besteht. Versteh mich nicht falsch; Ich liebe es hier zu arbeiten und ich liebe die Firma. Sag mir nicht zu rennen; Ich möchte dazu beitragen, das Unternehmen besser zu machen. Wie bringen Sie eine gute Veränderung in diese Art von Kultur?

Phil
quelle
8
Altrussisches Sprichwort "Ein Fisch stinkt vom Kopf!"!
3
Sobald Sie garantieren können, dass der Prozess durchgeführt wird, ist nach einer großen Überarbeitung. Teil des Fallouts wird sein, dass Kunden eine Überprüfung der Prozesse fordern, um sicherzustellen, dass es nicht wieder vorkommt. Wenn das Management herausfindet, dass solche Dinge geschehen, werden Sie bald einen glänzenden neuen Prozess vorfinden. Vielleicht könnten Sie einen Cock-up konstruieren. SCHERZ! Bitte nicht ernst nehmen :)
Paul T Davies
Es hört sich für mich so an, als ob dies ein Test (Unit oder Integration) statt einer Anwendung gewesen wäre ...
devlife
2
Ich möchte Sie nicht beleidigen, aber tragen Sie selbst zur schlampigen Kultur bei? Wenn Sie über ein Problem sprechen, das sowohl bei Kunden als auch bei Teammitgliedern aufgetreten ist, ist ein nicht alltägliches Manschettentool, das nur Ihnen zur Verfügung steht, nicht die am wenigsten schlampige Lösung.
Dan Olson
@DanOlson Du hast absolut Recht, aber zu der Zeit wusste ich nicht, dass die Kunden es brauchen würden. Wenn ich es getan hätte, hätte ich daraus ein vollständiges Softwareprojekt gemacht.
Phil

Antworten:

20

Die einzige Möglichkeit, Änderungen vorzunehmen, besteht darin, allen anderen die Schattenseiten einer schlampigen Kultur vor Augen zu führen und, was vielleicht noch wichtiger ist, ein Management-Buy-in zu veranlassen, um dies zu beheben. In Wirklichkeit passiert das jedoch nicht und Sie werden es nicht ändern können. Das ist vielleicht nicht die Antwort, die Sie erwartet hatten, aber nach ungefähr fünf Jahren des Versuchs, die schlampige Kultur bei mehreren Jobs zu ändern, kann ich mit einiger Autorität sagen, dass es normalerweise nicht die Mühe wert ist, dies zu tun.

Der erste Schritt wäre herauszufinden, ob jemand anderes die schlampige Kultur kennt oder sich darum kümmert; Wenn Sie die einzige Person sind, die Probleme sieht, sind Ihre Bemühungen vergebens.

Wayne Molina
quelle
Ich stelle fest, dass die meisten Menschen nicht bereit sind, sich zu ändern und sich an das zu halten, wozu sie derzeit verpflichtet sind, ohne die Zustimmung der höheren Behörden und ohne Druck auf das, was zu tun ist.
Dreza
+1 aus dem gleichen Grund wie @dreza. Aber viel Glück mit dem Management Buy-In.
Talonx
8

Möglicherweise müssen Sie sich mit Kollegen und Vorgesetzten an einen Tisch setzen und erklären, dass Sie einen Prototyp hatten und für die Kunden nicht einsatzbereit waren. Wenn sie wollten, dass es für die Kunden einsatzbereit ist, können Sie diese Änderungen mit genügend Zeit vornehmen. Nehmen Sie jedoch nicht das "schnelle und schmutzige" Zeug und geben Sie es an die Kunden weiter. Nur weil etwas funktioniert, ist es nicht gut, die Lektion zu lernen. Während Sie einen Haftungsausschluss gegeben haben, gibt es etwas zu sagen, um ihm Respekt zu zollen, da dies sonst passieren kann.

JB King
quelle
5
Als OP würde ich gerne eine Erklärung dafür sehen, warum dies abgelehnt wurde.
Phil
4
ganz zu schweigen davon, dass schnelles und schmutziges Zeug immer noch lebenswichtige Informationen enthalten kann, die das Gebäude niemals verlassen sollten (fest codierte Passwörter zum Testen zum Beispiel)
Ratschenfreak
3

Sie können nicht dumm beheben. Wenn Ihr Chef Dinge tut, die Sie als unwahrscheinlich bezeichnen, können Sie dies ändern. Vor allem, wenn er nicht der Besitzer ist - denken Sie daran, dass er Druck aus der anderen Richtung hat und diese Richtung seinen Gehaltsscheck unterschreibt. Dasselbe gilt für Ihre anderen Mitarbeiter. Die beste erste Maßnahme, die Sie ergreifen können, besteht darin, sich daran zu gewöhnen, sich selbst zu schützen. Verwenden Sie Techniken wie das von Ihnen beschriebene Meldungsfeld. Behalten Sie alle E-Mails. Holen Sie sich so viel wie möglich in schriftlicher Form. Auf diese Weise nehmen Sie nicht die Hauptlast, wenn Dummheit zuschlägt. Setzen Sie dann, wenn Sie befördert werden, die gewünschten Änderungen unter Ihrer Aufsicht ein.

GroßmeisterB
quelle
Soweit ich zustimme, ist es doch eine traurige Strategie. Wer möchte in einem solchen Umfeld arbeiten? Eine solche Kultur wird die Kreativität auf lange Sicht stillschweigend töten. Versuchen Sie, das Beste zu sein, was Sie können, und nicht das Beschützendste. Wenn die Kultur nicht mehr passt, fahren Sie fort.
JensG
2

Neulich erzählte mir ein Kollege die Geschichte eines einfachen Testwerkzeugs, mit dem ein Ingenieur in einem Labor einem Widget einen einzelnen Befehl erteilen und eine Variable ändern kann, die zum Befehl gehört. Dies wurde vor 9 Jahren geschrieben und zuletzt wusste er, dass es heute noch in Gebrauch ist. Ein Tool, das in wenigen Stunden mit minimalem Testaufwand geschrieben wurde, um im Labor zu beweisen, dass etwas funktioniert, war die Grundlage für ein gesamtes Test-Tool für ein technisches Labor. Sobald Sie Code geschrieben haben, ist er vorhanden. Wenn es etwas Nützliches tut und es von anderen gesehen wird, werden die Leute es wollen. Wenn es gut ist, was es tut, werden die Leute darum bitten, X zu tun. Als nächstes wissen Sie, dass Ihr einfaches Werkzeug eine wichtige Komponente ist.

Ich denke, die erste Verantwortung liegt beim Softwareentwickler, sicherzustellen, dass jeder, der sich den Code ansieht oder das Tool verwendet, versteht, dass es sich um einen Prototyp oder nicht um ein Produktionssystem handelt, und zu erklären, warum dies der Fall ist. Es hört sich so an, als hätten Sie das getan, aber Ihre Mitarbeiter haben es versäumt, diese Verantwortung zu übernehmen. Um dies zu beheben, würde ich empfehlen, mit ihnen zu sprechen und zu wiederholen, dass dies kein Produktionscode ist und nur geschrieben wurde, um Ihre Arbeit zu erleichtern. Wenn sie es nützlich finden, bieten Sie möglicherweise an, an dem Werkzeug zu arbeiten, oder unterstützen Sie andere Personen, die an dem Werkzeug arbeiten, um es zu verbessern und für die Produktion besser geeignet zu machen.

Erwarten Sie eine Weile, bis sich der Organisationsprozess oder die Kultur geändert hat. Beginnen Sie mit einem Beispiel. Wenn Sie The Pragmatic Programmer noch nicht gelesen haben , tun Sie dies. Beachten Sie Tipps wie "Kümmere dich um dein Handwerk", "Sei ein Katalysator für Veränderungen" (zeige den Menschen bessere Wege), "Lebe nicht mit zerbrochenen Fenstern", "Behebe das Problem, nicht die Schuld". Es hört sich so an, als würden Sie einige Probleme erkennen, die in diesen Tipps angesprochen werden. Beginnen Sie also damit, Ihren Kollegen ein Beispiel zu geben.

Thomas Owens
quelle
Ich stimme dir vollkommen zu. Meine Idee ist, wenn Sie Code schreiben, schreiben Sie so gut Sie können, dass es normalerweise die gleiche Zeit benötigt, um schlechten Code zu schreiben. Qualität ist etwas, das Sie in der Mitte Ihres Projekts nicht erreichen können.
Andrea Girardi
1

Bis die Entscheidungsträger die Konsequenzen des schlechten Codes nicht mehr nachvollziehen und bereit sind, ihre Methoden zur Behebung des Problems zu bezahlen / zu ändern.

Dies sind schwierige Entscheidungen für kleine und wachsende Unternehmen. Sie wissen nicht, wo sie all ihre Anstrengungen unternehmen sollen. Es besteht das Risiko, dass Code zu robust wird, wenn Geschäftsregeln und manchmal ganze Geschäftsbereiche über Nacht angezeigt, geändert und verschwunden sind.

Bemühen Sie sich, guten Code zu schreiben. Stellen Sie sicher, dass Sie alle über die Konsequenzen informieren, damit sie fundierte Entscheidungen treffen können. Wenn fehlerhafter Code in die Produktion aufgenommen wird, sollten Sie ihn genau beobachten und ihn weiter verbessern, insbesondere wenn dieser Teil des Geschäfts kritisch wird.

Menschen auf etwas warten zu lassen, das Sie als wenig brauchbaren Code ansehen, scheint ihre derzeitigen Erwartungen zu übertreffen.

JeffO
quelle
+1 für "Leute warten zu lassen, was Sie als minimal brauchbaren Code ansehen, scheint über ihren aktuellen Erwartungen zu liegen." Leider wahr.
Phil
@Phil - und die meisten wollen einfach nicht ins Detail. Manchmal können Sie sie dazu verleiten, in Zukunft einfach Änderungen vorzunehmen, die Sicherheit zu erhöhen oder mehr Benutzer zu verwalten.
JeffO
1

Ich möchte darauf hinweisen, dass das Problem darin besteht, dass Sie zunächst ein schnelles und schmutziges Tool geschrieben haben. Zugegeben, es gab gute Gründe. Zugegeben, es hat den Job gemacht. Aber ich habe festgestellt, dass alles , was ein Problem löst, in die Falle einer "gut genug" -Lösung gerät, wenn Sie anfangen, es zu vertuschen.

Wenn Ihr Kollege es möchte, sagen Sie ihm entweder höflich, dass es nicht voll funktionsfähig ist, und Sie behalten die Schlüssel. Sie können es von Zeit zu Zeit für ihn ausführen. Oder fügen Sie die zusätzlichen Funktionen hinzu, vorzugsweise zu Beginn des Projekts.

Alle meine schnellen und schmutzigen Werkzeuge stammen zu diesem Zeitpunkt aus einer stark getesteten Skelettdatei. Dadurch kann ich schnell loslegen, habe einen guten Ausgangspunkt und vergesse, alle erforderlichen stumpfen Kanten hinzuzufügen. Ich muss mir keine Sorgen um die getopts-Bibliothek und ihre Macken machen. Ich muss mich nicht an Details zur Speicherverwaltung erinnern, wenn ich Python verwende. Erstellen Sie das Programm so, dass es eine einfache Aufgabe und nur eine ausführt . Das macht es einfach zu testen, ob sie versuchen, es aus der Form zu bringen.

Profitieren Sie abschließend von der Finite-State-Machine-Architektur. Wenn Sie alle möglichen Zustände kennen, ist es viel einfacher sicherzustellen, dass der Benutzer auf keinen Fall über die Spuren springen kann. Ich habe ein Programm, das ich geschrieben habe, um diesem Paradigma zu folgen. Es akzeptiert beliebige Eingabedateien, die es byteweise durchliest. Selbst wenn der Client anordnete, eine ausführbare Binärdatei zu lesen, hätte er keine Probleme. Da es nichts findet, wonach es sucht, füllt sich der interne Puffer. Das würde dazu führen, dass es ordnungsgemäß aufräumt, herunterfährt und dem Benutzer meldet, dass ich es mir ansehen muss.

Spencer Rathbun
quelle
0

Nun, die Antwort hat nicht viel mit Programmierung zu tun, außer dass es sich bei Software um eine gute Sache handelt, deren Qualität sich nur schwer beurteilen lässt.

Möglicherweise können Sie die Kultur nicht ändern, weil die Leute kein wirkliches Motiv haben, nicht schlampig zu sein, weil die von der Softwarequalität betroffenen Leute nicht viel mit dem Prozess zu tun haben. Zum Beispiel müssen Ihre Kunden möglicherweise Software kaufen und verwenden, um ihre Aufgaben zu erledigen, haben jedoch nur einen geringen persönlichen Einfluss auf die Effektivität dieser Software, da sie nicht persönlich für ihre Probleme verantwortlich gemacht oder für ihre Tugenden belohnt werden (zum großen Teil) weil niemand wirklich weiß, ob konkurrierende Software besser wäre). So müssen Sie möglicherweise nur die Feature-Anforderungen erfüllen, ohne zu lange zu brauchen, müssen sich aber keine großen Gedanken darüber machen, ob es fehlerhaft ist. Sie können also alle ziemlich nachlässig sein, ohne Konsequenzen zu haben (für jeden, der Entscheidungen trifft, die Sie betreffen).

Ich weiß nicht, ob so etwas der Fall ist, aber wenn es so ist, fällt es Ihnen möglicherweise schwer, die Kultur zu ändern, da die Menschen, die Sie zu ändern versuchen, nicht wirklich besser dran sind, wenn sie es tun.

Wenn es ihnen besser geht, haben Sie es vielleicht leichter, da Sie sie möglicherweise davon überzeugen können, warum sie es tun. Wenn es nicht eine Art politischer Situation war leider das macht Schlamperei OK sie wahrscheinlich nicht , dass seine in erster Linie schlampig, so ist es wahrscheinlich , stark zu sein. Sie könnten immer das Argument "Irgendwann haben Sie vielleicht einen Job, bei dem es darauf ankommt, die Dinge richtig zu machen" versuchen (vielleicht mehr diplomatisch formuliert ...)

bA
quelle