Wie man eine Karriere als Programmierer macht, ohne ein Geschäftsproblem zu lösen

Der Artikel Ein Programmierer sollte keine geschäftlichen Probleme lösen, verursachte eine heftige Diskussion (und sogar eine Antwort mit der genau entgegengesetzten Aussage).

Und es ist lustig, dass alles auf dogmatisches Denken aus der Kategorie "Programmierer muss" oder "Geschäft sollte" hinauslief. Als ob es sich um ein System handelt, das für ein gemeinsames Ziel funktioniert, und das einzige Problem besteht darin, es richtig zu konfigurieren.

Tatsächlich ist alles viel komplizierter und ein Geschäft mit einem Programmierer hat sehr unterschiedliche Ziele. Wenn man also darüber spricht, wer, wen und was sollte, sieht es nach einer Aussage aus, dass der Käufer keine Waren im Geschäft stehlen sollte. Ja sollte es nicht. Genauer gesagt sollte er nicht stehlen, wenn er nach den Regeln der formalen Logik spricht. Einfach, verständlich, von der überwiegenden Mehrheit akzeptiert. Na und? Bedeutet dies, dass der Laden Wachen feuern und Kameras ausschalten kann?

In meinem ersten Artikel über Habré habe ich die Situation aus Sicht des Arbeitgebers (Unternehmens) untersucht und die Grundsätze erläutert, denen ich folge, um Menschen zu finden, die die Probleme des Unternehmens lösen . Und warum ist es so wichtig.

Aber es gibt eine Einschränkung, und es ist so, dass Menschen, die nicht von Interviewern wie mir aufgenommen werden, mit gebührender Geschicklichkeit mehr erreichen als diejenigen, die davon profitieren. Und es gibt gute Gründe dafür - sie maximieren erfolgreich die Fähigkeit, die am meisten mit dem Einkommen des Programmierers korreliert - die Fähigkeit, sich selbst zu verkaufen. Wie, - werde ich in diesem Beitrag erzählen.

Disclamer
, . . , , , , Junior -> Middle -> Senior -> Lead dev -> Tech lead -> Architect -> Chief architect -> CTO.

Formulierung des Problems


Zunächst werden wir herausfinden, was jede der Parteien erreichen möchte:
Unternehmen möchten eine kostengünstige und zeitnahe Lösung für ihre IT-Aufgaben, die die Erwartungen erfüllt und im Falle eines erweiterten Managements auch neue Geschäftsentwicklungsmöglichkeiten schafft.

Der Programmierer möchte seinen Wert auf dem Arbeitsmarkt steigern, die Arbeitsbedingungen maximieren (einschließlich US-Dollar, Zeitplan, strenge Kontrolle, Vorteile und Vergünstigungen), Probleme lösen, mit denen Sie Ihre Glaubwürdigkeit steigern und die Zufriedenheit mit der Lösung erzielen können.

Konflikt


Tatsächlich ist es einfach, ein Beispiel zu finden, bei dem es eine Win-Win-Situation gibt, beispielsweise die Entwicklung eines proprietären DBMS-Kernels, bei dem ein Programmierer atypische Anwendungen auf Olympiadenebene löst, sich davon abhebt, auf Konferenzen spricht und dann den Umsatz steigert und den Kunden zeigt, wie dies geht Effizienz und Stabilität des Kerns als Wettbewerber sparen sie Infrastruktur.

Aber wir werden nicht über solche Fälle sprechen. Lassen Sie uns über die Fälle sprechen, mit denen die überwiegende Mehrheit der Programmierer konfrontiert ist, die immer wieder gewöhnliche Entscheidungen treffen. Ein weiterer Online-Shop, ein weiteres Online-Casino, ein weiterer Betriebstag für ein gewöhnliches nicht-technologisches Bankgeschäft ...

Und es gibt einen akuten Konflikt. Weil zeitgemäße, zuverlässige, vorhersehbare, billige und gut unterstützte Lösungen auf bewährten Technologien basieren. Wenn das Admin-Panel Ihres Online-Shops mit ASP.NET-Kern in WebForms geschrieben ist und die Autoren des Codes immer noch nicht mit Ihnen abreisen, sollte das Kontrollfeld des neu erstellten Empfehlungssystems auch in WebForms geschrieben werden, obwohl das .NET Core + Angular + TypeScript-Bundle 1000-mal besser, und WebForms ist in der Tat ein Chaos. Immerhin wird das Team, das die 500 Formulare geschrieben hat, die 501. schnell und zuverlässig schreiben und dabei den Rechen umgehen. Und das Geschäft wird eine gute Lösung bekommen.

Für Programmierer, die den Wert von WebForms auf dem Markt erkannt haben, kann das Schreiben darauf wie Folter sein, da sie genau verstehen, dass sie beim Schreiben dieses Formulars den Wert des Geschäfts steigern, aber gleichzeitig ihren Wert senken, weil die Branche stillsteht rennt an dir vorbei. Daher wird in dieser Situation jeder vernünftige Programmierer (selbst wenn er Miteigentümer ist, wird niemand garantieren, dass das Geschäft für immer leben wird, und es wird sehr schmerzhaft sein, im Falle einer Insolvenz des Geschäfts nach Arbeit zu suchen) irgendwie versuchen, das Recht zu bekommen, die Aufgabe für etwas zu erledigen dann frisch und gefragt, natürlich mehr Zeit zur gleichen Zeit verbringen, mehr Käfer zulassen und auf mehr Rechen treten.

Es ist klar, dass diese Situation übertrieben ist. Das Wesentliche bleibt jedoch unabhängig von Domäne und Technologie gleich.

Ein einfacher Code auf einer bewährten, nicht von HYIP bekannten und bekannten Teamlösung bietet Geschäftsvorhersehbarkeit und Zuverlässigkeit, und das Team verschlechtert sich. Code auf einem neuen Hype-Framework und / oder mit hoher algorithmischer Komplexität gibt dem Team die Entwicklung, aber das Unternehmen leidet unter Risiken. Ein Fokus auf ein tiefes Verständnis des Themenbereichs durch den Programmierer kann den Wert des Geschäfts erheblich steigern (genau das zu schreiben, was erforderlich ist und nicht das, was nicht erforderlich ist), erhöht jedoch nicht den Wert des Programmierers (Kenntnisse der Buchhaltung werden oben auf dem Markt für Programmierer selten gefragt). im Gegenteil zu Technologien und Algorithmen.

Schließlich findet ein Programmierer, der sich mit Algorithmen und Technologien gut auskennt, leicht Arbeit mit einem Schub, während für Unternehmen das meiste Wissen redundant und nicht anwendbar ist. Und ein Service, der auf modischen Frameworks mit der richtigen Verwendung von Mustern und der richtigen algorithmischen Komplexität geschrieben wurde, wird dem Unternehmen nicht viel helfen, wenn er nicht das tut, was erwartet wurde.

Ja, es gibt Nebenfaktoren. Zum Beispiel vereinfachen Hype-Themen die Einstellung, und das höllische Erbe verringert den Abfluss von vorhandenem Personal (die Leute würden gerne gehen, aber nirgendwo), aber dies sind Nuancen, und sie sind nicht so wichtig.

Lösungen


Stellen wir uns also den Moment vor, in dem der Programmierer erkannte, dass das Unternehmen ihn für eine gemeinsame Sache leicht belohnen wollte (okay, sagen wir, um seine Entwicklung zu verschieben). Was kann getan werden?

Gehorchen. Und in ihren eigenen Interessen verlieren. Kommentare sind überflüssig.

Gehen Sie direkt in Konflikt. Sozusagen sagen sie, ich bin kein Sklave für dich. Wenn Sie einen primitiven Code zum Kopieren und Einfügen mit umfassenden Kenntnissen der Buchhaltung wünschen, suchen Sie nach einem Narren. Das werde ich nicht tun. Vielleicht einmal eine Fahrt. Über eine Karriere muss hier aber nicht gesprochen werden.

Um das Unternehmen davon zu überzeugen, dass es genau das braucht, was Sie brauchen.Dies ist eine korrekte Option für den Programmierer. Ja, es ist schwierig, mit einem hohen technischen Niveau des Managers und geringen Überzeugungsfähigkeiten des Programmierers zu erreichen. Aber es ist immer einen Versuch wert. Nach dem Verlieren können Sie immer p1 wählen und bis zum nächsten Mal speichern. Und wenn Sie gewinnen, erhalten Sie gleichzeitig Respekt und Wertschätzung für das Geschäft und Ihr berufliches Wachstum.

Die Frage ist nur, wie man diesen heiligen Gral bekommt.

Hier sehen wir uns einige faszinierende Geschichten an.

Geschichte 1. Über den Abteilungsleiter Wassili


Vasily war einer der erfahrensten Programmierer im Unternehmen. Im Laufe seiner zwanzigjährigen Karriere hat er sich von einem Junior-Programmierer zu einem Abteilungsleiter entwickelt. Er hatte 40 Mitarbeiter mit direkten Untergebenen, die Probleme direkt mit dem Gründer und nicht mit dem CEO und seinem Stellvertreter lösten, wie andere Manager seiner Ebene. Und immer noch Code pinkeln, um in Form zu bleiben. Er machte seine Karriere aufgrund der Tatsache, dass er außergewöhnliche Intelligenz hatte und außerdem das Geschäft mit ihm in derselben Sprache kommunizieren konnte. Zuvor war Vasily in einem ständigen Rennen. Er machte Versprechungen und erreichte sie mit aller Kraft. Dafür wurde er verehrt. Ja, es wurde gemunkelt, dass er immer zu lange Fristen beantragt habe, aber andererseits habe er sie viel seltener verschoben als andere Abteilungsleiter.

Und dann wurde er als bester Manager des Jahres anerkannt, sie begannen, allen ein Beispiel zu geben, und Vasily (der in seinem Herzen nie aufhörte, Programmierer zu sein) erkannte, dass es Zeit war, neue Technologien zu lernen und auf Kosten seiner Untergebenen, insbesondere mit DDD, mit neuen Ansätzen zu experimentieren.

Das Flaggschiff der Vasily-Abteilung, die automatisierte Workstation (AWP) des Futures-Händlers, trug dazu bei, viel Geld zu verdienen, und im Laufe der Betriebsjahre wurden fast alle Fehler darin gefangen und auf Hochglanz gebracht. Das Problem war, dass es sich um eine Desktop-Anwendung für Windows handelte (während alle um das Web wechselten) und MSSQL als DBMS verwendete, was laut Vasily auch eine Steinzeit war, da relationale DBMS verwendet wurden, während Menschen habe nicht gelernt, wie man normale Basen macht.

Und jetzt sprechen wir über die Notwendigkeit, einen automatisierten Arbeitsplatz für einen optionalen Händler zu schreiben. Das Projekt dauerte ungefähr 6 Monate, einschließlich des Einstiegs in das Thema eines neuen Teams und Betatests, wenn wir die Rüben des Futures-Terminals abspalten und eine Reihe von Modulen ersetzen. Aber verdammt noch mal, ein anderes Produkt mit veralteten Technologien herzustellen ... Nun, das ist nicht interessant. Ja, und die Menschen werden über dem Markt jagen müssen, weil niemand dies nutzen will (und die Fähigkeit, Menschen 20% unter dem Markt zu jagen und zu halten, war Vasilys Killer-Feature), und daher hätte die Tatsache, über dem Markt zu jagen, seinen Ruf erschüttert.

Was hat Vasily also getan? Er überzeugte den CEO, dass aus Gründen des Gewinns und der Stabilität des Geschäfts alles mit 0 geschrieben werden sollte, einem neuen Team, immer im Internet und nicht mit einem einzigen Byte von der alten Lösung, obwohl es 2 Jahre dauern würde. Angesichts seines Rufs und seiner Berufserfahrung war es nicht so schwierig.

Zwei Jahre später wurde die Entscheidung getroffen. Neue Frameworks, MongoDB, DDD, funktionieren über den Browser, kein einziges Byte vom Terminal für Futures ... Richtig, Berge von Copy-Paste, Architektur, die keine Integration von Algorithmen ohne Krücken ermöglicht, neu geschrieben aus 0 Modulen, wobei die eleganten Algorithmen von der Futures-Workstation durch Tonnen von Boilerplate-Code ersetzt wurden. Basil hat seine Autorität jedoch recht gut erhöht. Die optionale Workstation wurde lange Zeit als Beispiel für andere Manager angeführt. Nach ein paar Jahren geriet Wassili immer noch in Ungnade, aber das ist eine andere Geschichte.

Insgesamt das Fazit: Vasily fand neue Technologien heraus, blies das Personal auf, erhöhte seine Bedeutung, und das Unternehmen blieb völlig zuversichtlich, dass es dem Unternehmen half und seine Versprechen erneut erfüllte.

Geschichte 2. Über die Hauptjungfrau Anton


Anton, Mitte 30, liebte es, neue Technologien zu lernen und Olympiadenprobleme zu lösen. Er nahm einen fast idealen Platz für seinen Typ ein, - war das leitende Mädchen des Infrastrukturteams. Anton kannte die Spezifikationen und die neuesten architektonischen Trends sehr gut. Und Antons beliebteste intellektuelle Herausforderung bestand darin, die Gründe dafür zu finden, wie Hype-Technologie dem Unternehmen helfen würde und wo genau es sich lohnen würde, sie zu schieben. Dabei wurde er vom Architekten unterstützt, der auch nicht abgeneigt war, den neuen Rechen mit Antons Stirn zu untersuchen. Infolgedessen wurde Anton eingeladen, mit FAANG zu sprechen, wo er den gesamten theoretischen Teil ohne Probleme durchlief und die Aufgabe des Entwurfs der Ebay-Architektur brillant erledigte (obwohl in der vorherigen Arbeit nichts dergleichen erforderlich war). Dann setzte er die Segel in den USA und hinterließ 3 hoch beladene Module im Produkt, die jetzt niemand mehr warten und entwickeln will.weil niemand versteht, wie (und warum) sie arbeiten.

Fazit: Anton wusste genau, was er wollte und kam zu seinem Ziel, indem er seinem Arbeitgeber das Maximum abnahm. Das Unternehmen war sich auch sicher, dass Anton ein sehr wertvoller Mitarbeiter war, denn wie ich bereits erwähnte, hat er die Gründe immer sorgfältig durchdacht, auch wenn sie wild auf Menschen in diesem Bereich waren.

Die Geschichte des Architekten Ivan


Timlid Ivan und Timlides Vladimir und Yuri sägten das Produkt unter der Leitung des Architekten Sergey. Sergey brachte alle drei ins Unternehmen, und die vier trafen wichtige Entscheidungen. Nachdem das Produkt in 4 Betriebsjahren in den Handel kam, aber noch weit von der Stabilität entfernt war, griff die Führung Sergey an und er ging mit erhobenem Kopf. Vladimir und Yuri folgten ihm und gingen.

An einem Punkt wurde Ivan der einzige Wissensträger über das, was geschrieben wurde (mit Ausnahme des Senioren und des Mittleren, die Sergei der allgemeinen Vision nicht besonders widmete). In dem Gefühl, dass es nach gebraten riecht, ernannte die Führung Ivan zum Architekten mit den entsprechenden Mitarbeitern in der Hoffnung, dass er nicht gehen würde. Zu dem, was Ivan gesagt hat, sagen sie, das ist natürlich gut, aber das reicht nicht aus, damit ich nicht gehe. Wenn Sie möchten, dass ich das unterstütze, was wir mit Sergey gesehen haben, lassen Sie mich alles mit 0 umschreiben. Das Geschäft stimmte widerwillig zu. Ivan erhielt ein Gehalt, eine Position und die Fähigkeit, an einem Tag alles von 0 zu schreiben.

Total: Ivan hat richtig verstanden, was das Geschäftsproblem war - das Geschäft hat panische Angst, dass das, was sie während der Zeit von Sergey gesehen haben, scheitern könnte, und es gibt niemanden, der es herausfindet. Und er drückte das Geschäft auf das Maximum.

Gesamt


Ob Sie es wollen oder nicht, aber für eine Karriere, $ und die Möglichkeit, Dinge zu tun, die für Sie interessant sind, müssen Sie zumindest über den geschäftlichen Wert sprechen und nachdenken. Ja, Sie können es bringen, nicht bringen oder sogar das Negative bringen. Aber in diesem Beziehungssystem ist die Verhandlungsposition und die Fähigkeit, das zu tun, was Sie wollen, anstatt zu deklarieren, umso stärker, je länger die Wertschöpfungskette ist, die Sie für denjenigen bezahlen, der bezahlt.

All Articles