"Für das, was du angenommen wurdest, wirst du gefeuert", sagt die alte Weisheit. Ich wurde in dieses Werk gerufen, um Buchhaltung, Informationssystem, Code, Prozesse usw. zu prüfen. Aber sie sagten zunächst, dass sie einen schlechten Programmierer haben. Standard, Fabrik, schrecklich.
Die Fabrik schuf schöne Produkte. Und er selbst war hübsch. Wirklich schön - anscheinend waren dieselben Designer, die die Produkte gezeichnet haben, an der Gestaltung des Gebäudes beteiligt. Es gibt auch Schönheit und Harmonie in den Werkstätten. Sauberkeit, Ordnung, alles an seinem Platz. Und vor allem ist der gesamte Produktionsprozess wunderschön automatisiert.
Jede Produktcharge wird von einem Routenblatt begleitet, das alle erforderlichen technologischen Vorgänge enthält, was wohin zu bringen ist, wohin es zu senden ist usw. Auf einem Blatt Papier - nur Barcodes mit einem Minimum an Text.
Schönheit und Harmonie. Der Traum eines jeden Führers. Volle Transparenz - Sie wissen immer was, wo, wann. Daher führt der Führer die Exkursion in solch guter Stimmung durch. Er mag die Art und Weise, wie die Dinge funktionieren. Schöne Automatisierung.
Ich sehe, dass die Arbeiter verdächtig viel telefonieren. Wenn wir uns jemandem nähern, stehen und eine schöne Maschine oder die flinke Arbeit unserer Hände betrachten, lächelt die Person und arbeitet. Sobald wir gehen, ruft er jemanden an.
Der Arbeiter nimmt einfach eine Menge Teile, nimmt sie mit einem Scanner auf - und das System weiß sofort, dass er mit der Verarbeitung begonnen hat. Viele kleine, nicht mehr als eine Schicht wird verarbeitet, so dass es nicht erforderlich ist, sie zu teilen, wenn die Tatsache der Freigabe oder des Durchgangs der Operation reflektiert wird. Wenn der Arbeiter die gesamte Charge verarbeitet hat, wählt er einfach mit einem Scanner aus, und das System weiß, dass die Charge fertig ist und kann zur nächsten Person gehen. Das System weiß auch, dass die Teile zwischen den Behandlungen stecken bleiben - es gibt eine Spitze am Ende, aber keine Spitze am Beginn der nächsten Operation.
Nun, man weiß nie, vielleicht sind sie hier gesellig. Oder ist die Unternehmenskultur so - Sie können sie den ganzen Tag ausprobieren. Ich habe keine Zeit - ich muss herausfinden, wo sich das Skelett im Schrank befindet. In jedem Fall sitzt die Buchhaltungsabteilung irgendwo und hämmert eine wilde Menge von Dokumenten ein, um Probleme, technische Abläufe und die Bewegung von Halbzeugen zu beheben.
Wir gehen zur Buchhaltung - nein, dort ist es ruhig. Sie sitzen und trinken Tee. Auf Computerbildschirmen - ja natürlich das Informationssystem - aber sicher nicht die Eingabe von Themen. Regelmäßige Buchhaltung. Mach weiter.
Wahrscheinlich eine Blockade in der Planungsabteilung (PDO). Wir gehen dorthin. Nun, nicht dass eine Blockade - nur viel Arbeit. Der Manager sagt ehrlich, dass der Engpass im Moment das Drucken einer großen Anzahl von Routenblättern ist - für jede Charge und Bestellung. Aufgrund ihrer geringen Größe wird viel Papier beschafft - tatsächlich dauert es die meiste Zeit der PDO-Mitarbeiter.
Wo ist das Skelett? Es kann nicht so gut sein. Okay, lassen Sie uns vom Manager trennen, ich werde mit dem Programmierer sprechen. Er weiß es genau.
Der Programmierer sitzt in einem engen Schrank und telefoniert, während er hektisch etwas im System tut. Ich warte ein paar Minuten, bis ich es verstanden habe, schaffe es, mich schnell kennenzulernen - und wieder klingelt das Telefon des Programmierers. Ich warte wieder. In der nächsten Pause füge ich die Frage "Kann ich sehen, wie Ihr System funktioniert?" Ein. - und wieder der Anruf. Gleichzeitig blinken Instant Messenger aller bekannten Farben - Grün, Blau, Violett - auf dem Computer des Programmierers.
Der Programmierer, der weiter spricht, öffnet mir das System und die Quellcodes auf einem nahe gelegenen Computer. Er fährt zurück, öffnet Chats, schaut sich Bilder an, fährt schnell etwas ins System.
Da ich nichts zu tun habe, schaue ich mir das System an. Ich erstelle Berichte - über Umsatz, Leistung, Kosten, Preise usw. Alle Berichte sind als eine schön. Das Minimum an verfügbaren Einstellungen - nur schöne Schalter, z. B. nach Region, Produktgruppe usw. Sie klicken und genießen die schöne Aussicht - alles ist ordentlich, geleckt, gekämmt.
Dies erfolgt normalerweise nicht in Unternehmenssystemen für den internen Gebrauch. Dort ist der Ansatz technologisch fortgeschritten - es gibt eine bestimmte universelle Form und nur die Anforderung, die Daten extrahiert, ändert sich von Bericht zu Bericht. Dann dreht die Engine sie nach Bedarf und gibt die Benutzereinstellungen an - Gruppierungen, Filter, Sortieren, Färben usw. Wie in BI-Systemen nur einfacher, ohne Würfel und andere Schönheit. Seltsam, Sie müssen sich den Code ansehen.
Ich schaue auf den Code - meine Füße sind in meinem Mund ... 4-5 Tausend Codezeilen, um einen Veröffentlichungsbericht zu erstellen. Zum Vergleich - normalerweise reichen 50 bis 100 Zeilen aus, und alle sind Abfragetexte, der Rest wird von der Plattform bereitgestellt. Es ist seltsam, was macht er hier in diesen 4-5 Tausend Zeilen?
Ich schaue mir die Namen von Prozeduren und Funktionen an - wieder eine Art Wildheit. Sie sind für Menschen lesbar und bereits unter den Namen ist klar - er hat verdammt noch mal ein eigenes Verfahren für jede Einheit. Einer zeigt Daten für Workshop 1 an, der zweite für Workshop 2 usw.
Ein paar weitere Module teilen - der gleiche Müll. Kilotonnen Code, der schöne Berichte zeichnet. Obwohl die Berichte jetzt nicht mehr so hübsch erscheinen. Ich freue mich auf das Mittagessen. Das Mittagessen ist heilig.
So ist das. Pünktlich um 12.00 Uhr beendet der Programmierer das Gespräch, wirft das Telefon unter den Monitor, steht auf und geht vom Büro weg. Ich folge ihm. Zum Glück ist er so wütend, dass er bereit ist zu reden.
Nun, es stellte sich heraus. Ich habe als Programmierer in einer Fabrik gearbeitet und niemanden berührt. Langsam half er den Benutzern, fügte etwas hinzu, wartete das System und die Server und füllte die Patronen nach. Wie gewöhnlich.
Nein, okay, es passiert - die Gewinnerklärung wird schrecklicher. Ich entfalte die Texte, ich schaue. Wie viele Unterschiede sehen wir? Eins - der Anforderungsparameter ändert sich. Anstelle von Shop 1 - Shop 2.
Aber dann machte der Unternehmensleiter eine Geschäftsreise ins Ausland - er sah, wie Menschen leben. Und die Menschen im Ausland leben wunderschön.
Und er brachte die Idee einer schönen Automatisierung. Ich habe den Programmierer gefragt, antwortete er - eine Art Unsinn. Schwach. Der Leiter hat Auftragnehmer gefunden, sie passen hinein - warum dann nicht hinein? Die wichtigsten funktionalen Anforderungen sind, dass jeder in den Läden Scanner in die Hand nimmt und nicht mit den Händen mit einem Computer arbeitet. Daten zu Freisetzungen, Vorgängen und Bewegungen werden sofort nach der Implementierung realer Ereignisse angezeigt.
Gesagt, getan. Mehrere Monate der Qual, und die Workshops waren voller magischer Spitzen von Barcode-Scannern, wie ein echter SB-Warenhaus. Der Manager wurde aufgefordert, die Arbeit zu übergeben, um die Schönheit der Automatisierung persönlich zu sehen. Sie brachten einen großen Fernseher mit, brachten ein Schild heraus, das das Leben der Werkstatt in Echtzeit zeigte.
Wir haben es mit einem Knall bestanden. Der Arbeiter pflückte mit einem Scanner - das Ergebnis wurde sofort auf dem Fernseher angezeigt. Der zweite Höhepunkt, der dritte, der zehnte - das Leben begann zu kochen, sowohl im Laden als auch im Fernsehen. Der Manager war zufrieden. Ich habe die Gesetze unterschrieben, die Auftragnehmer sind gegangen.
Und der Programmierer blieb. Er versuchte dem Manager zu sagen, dass das, was getan wurde, gelinde gesagt nicht das war, was gebraucht wurde. Dass eine einfache flache Tabelle, zu der Barcode-Messwerte nacheinander hinzugefügt werden, nicht das Problem widerspiegelt. Dies ist nur eine Laborarbeit zum Anschließen von Scannern im Tastaturmodus - Lesen von Daten, Schreiben in eine Tabelle, Entschlüsseln eines Barcodes - es war lang, zusammengesetzt, mit eingenähten Bestellnummern, Chargen, technischem Betrieb, Nomenklatur usw.
Aber der Anführer wollte diesen Unsinn nicht hören. Es war wunderschön in der Werkstatt. Sie wissen nie, was dieser Dorf-Nerd trägt. Wahrscheinlich ohne Rollback - und dient ihm rechts.
Nun, dann begann die Hölle für den Programmierer. Er arbeitete mehrere Tage ohne Unterbrechung, um zumindest eine gewisse Funktionsweise des Systems sicherzustellen. Überzeugen Sie sich selbst: früher, zwar an einer Stelle, mit Verzögerung, aber die Veröffentlichungsdaten kamen dort an, wo sie benötigt wurden. Es gab Standardpapiere mit Versionsnummern, die aus der Werkstatt in die Buchhaltungsabteilung oder PDO gezogen wurden, und diese Nummern wurden in das System eingegeben, der interne Umsatz funktionierte, die Salden waren korrekt, die Kosten wurden berücksichtigt.
Jetzt gibt es nur noch einen flachen Tisch mit gescannten und decodierten Barcodes. Nun, der Pferdemechanismus für die Bildung und den Druck dieser Barcodes aus Produktionsplänen. Die Ausgabedaten gingen einfach nicht zu den Teilen des Systems, in denen sie benötigt wurden - weder zum Management noch zum Buchhaltungsumsatz. In der Nähe stand ein flacher Tisch, auf dem einfach Barcode-Scandaten gesammelt wurden.
Dann schrieb ich mit halbem Kummer Code, der Daten von der flachen Tabelle in die normalen Systemanmeldeinformationen übertrug. Und es schien möglich zu sein, sich zu beruhigen, aber es war nicht da. Der Manager ging erneut zu einem Unternehmen und erfuhr, dass schöne Berichte vom System empfangen werden können.
Zuerst druckte der Programmierer unter dem Druck der Buchhaltungsabteilung den Druck dieses sehr flachen Tisches auf sein Knie - ungefähr in der Form, wie handgeschriebene Papiere aus dem Laden zuvor aussahen. Ich habe diese Tabelle einmal am Tag für sie gedruckt, Bukhs wurden in das System gefahren.
Zuvor wurden, wie in den meisten Fabriken, Berichte für den Manager von speziellen Personen erstellt - Buchhaltern, Ökonomen, Finanziers usw. Sie nahmen Daten aus dem System und brachten sie in eine prägnante, verständliche, schöne Form. Jetzt wollte der Manager Berichte direkt vom System erhalten.
Der zweite Kreis der Hölle begann. Die Fristen waren natürlich extrem eng - der Programmierer galt bereits als Gimmick-Sabotage-Fortschritt, und niemand ließ ihn sich entspannen. So erschienen Kilotonnen Copy-Paste-Code, der in Eile und auf dem Knie geschrieben wurde. Und Dutzende schöner Berichte.
Der dritte Kreis der Hölle kam von dort, wo niemand damit gerechnet hatte - von einem flachen Tisch mit Barcodes. Als Demonstrationsstand sah es gut aus, aber in der realen Arbeit wurden alle Konstruktionsfehler sehr schnell behoben, sowohl in Bezug auf die Technologie als auch in Bezug auf den Nutzungsprozess.
Zunächst hat die Leistung beim Schreiben an den Tisch schrecklich abgenommen. Dann sank die Lesegeschwindigkeit. Blöcke gestartet. Wir haben vom Auftragnehmer geschriebene Anfragen gefunden, die an jeder Spitze des Scanners 1,5 Tausend (!) Mal ausgeführt wurden. Es gab Orte mit einer endlosen Rekursion, die im zehntausendsten Schritt durch Willensanstrengung unterbrochen wurde, ausgedrückt durch den Kommentar "// wir werden für Demonstrationen einschränken". Irgendwie fanden viele Benutzer plötzlich die Rechte, Daten manuell zu bearbeiten, was einige nicht versäumten, auszunutzen. Die Steuerung der Reihenfolge der Operationen erfolgt anhand der Nummer der Zeile in der technischen Karte und nicht anhand der Nummer der technischen Operation (dies sind dumm unterschiedliche Spalten der Tabelle, und sie müssen nicht zusammenfallen), wodurch Personen die informative Meldung "Die Reihenfolge der Operationen wurde unterbrochen" erhalten. Verwenden von Papierführungsblättern,Ohne die Tatsache der Lieferung an den Shop zu korrigieren und Änderungen zu kontrollieren, kam es zu ständigen Scanfehlern - Änderungen an Daten im System änderten dumm die Zusammensetzung des Barcodes, und der gedruckte wurde nicht mehr erkannt. Usw.
Natürlich ging der Programmierer mit diesen Informationen mehr als einmal zum Manager. Natürlich hörte niemand auf ihn. Daher hatte der Programmierer die schwersten Zeitprobleme.
Zum einen musste der aktuelle Betrieb des Systems sichergestellt werden. Dies drückte sich in dem ständigen Sitzen am Telefon und der manuellen Bearbeitung von Daten in einem flachen Tisch aus - es ist banal, damit der Shop nicht stolpert. Andererseits versuchte ich langsam, solange Zeit war, alles zu reparieren. Die Anlage arbeitete rund um die Uhr, aber abends und nachts riefen sie irgendwie weniger an, so dass der Programmierer diese Zeit nutzte, um die schöne Automatisierung zu reparieren.
Das vom Anführer angesammelte Negativ konnte jedoch nicht länger eingedämmt werden. Sie wollten den Programmierer feuern. Tatsächlich war dies einer der Gründe für das Audit, auf das ich mich stützte.
Ein paar Tage später, als der Bericht fertig war, verbrachte ich zwei Stunden damit, sie davon zu überzeugen, den Programmierer nicht zu feuern. Ich empfahl ihm, befördert zu werden und endlich zuzuhören, was er zu sagen hat. Nehmen Sie sich Zeit für das Umgestalten und Aufräumen. Wir haben es geschafft, sie davon zu überzeugen, dass der Programmierer zumindest heute nicht rausgeschmissen werden sollte. Wir haben vereinbart, mehrere weitere Sitzungen abzuhalten, einschließlich - mit einem Programmierer. Und das war mein Fehler.
Am nächsten Tag kamen alle zusammen. Führungskräfte aller Art begannen, die Probleme aufzulisten, die der Programmierer nicht lösen konnte. Er beantwortete zuversichtlich alle Fragen. In der Regel mit dem gleichen Satz: „Ich habe das schon getan, ich habe es dir gezeigt“, zu dem der Fragesteller verstummte. In den meisten Fällen bestätigte ich, dass der Programmierer die Wahrheit sagte.
Für eine effektivere Argumentation nahmen sie einen Computer heraus und zeigten unterwegs, was "der Programmierer in keiner Weise tun kann". Wir fanden fast alles, "was uns für die normale Arbeit so sehr fehlte". Und alles ist schön genug. Zumindest funktioniert es.
Am Ende des Treffens verstand niemand, was sein Zweck war. Der Programmierer ging mit Hoffnung in den Augen zu seinem Arbeitsplatz. Die Führer zerstreuten sich ebenfalls, einige der wichtigsten blieben übrig. Ich saß da und wartete auf das Urteil - natürlich in der Hoffnung auf eine zweite Chance für den Programmierer und folgte meinen Empfehlungen ("Sie haben alles, was Sie brauchen, Sie wissen einfach nicht, wie man es benutzt").
Aber das Urteil kam anders heraus - "Sie sehen, er muss gefeuert werden." Wofür?! Natürlich, weil das System schön ist. Aber es funktioniert nicht. Und der Programmierer ist dafür verantwortlich.
PS Der Programmierer war froh, dass er gefeuert wurde. Er selbst ging nicht, weil er sich verantwortlich oder sogar überverantwortlich für das fühlte, was in der Anlage geschah. Eine Woche später arbeitete er in einem neuen Job mit einem höheren Gehalt.