Eine der am stĂ€rksten mit Idioten ĂŒberfĂŒllten Berufe ist das Management von Programmierern. Nicht alle, aber die, die niemals selbst Programmierer waren. Die, die denken, dass man die Effizienz (oder âEffektivitĂ€tâ?) mit Methoden aus BĂŒchern steigern kann. Ohne sich auch nur die MĂŒhe zu machen, diese BĂŒcher tatsĂ€chlich zu lesen â schlieĂlich gibt es ein Video dazu.
Diejenigen, die nie Code geschrieben haben. Die, ĂŒber die Hollywood-Filme ĂŒber Programmierer gedreht werden â nun ja, die, in denen man die E-Mails ĂŒber die Kommandozeile liest. Die, die sich fĂŒr nichts interessieren auĂer fĂŒr Kennzahlen, Fristen und ihr eigenes Gehalt.
Diejenigen, die die Mehrheit bilden.
Aber sie sind aus einem anderen Grund Idioten. Sie wollen Effizienz oder zumindest EffektivitĂ€t (komm schon, Manager, google mal, wo der Unterschied liegt), ohne sich mit dem einen oder anderen auseinanderzusetzen. Sie verstehen nicht einmal die Essenz, den Prozess der Ergebnisgewinnung, die Verluste, die wĂ€hrend dieses Prozesses auftreten, die Kosten fĂŒr die Entwicklung. Kurz gesagt, sie arbeiten mit Programmierern wie mit einer Blackbox.
Die Programmierer sind aus einem einzigen Grund hierher geströmt: Es gibt Hype, Geld, einen Markt und eine Menge genauso Naiver. Hier kann man sich verstecken.
WĂ€re im Maschinenbau Hype, wĂ€ren sie dorthin gelaufen. Schlechtes Allround-Talent. Ich wĂ€re nicht ĂŒberrascht, wenn der Typ, der im Dezember WeihnachtsbĂ€ume in unserer Nachbarschaft verkauft, ein IT-Manager im Urlaub ist.
Kurz gesagt, wenn möglich, schickt diese Kerle zum Teufel. Keine Sorge, sie finden Arbeit. Keiner von ihnen wird jemals etwas AnstÀndiges zustande bringen, solange er nicht selbst Programmierer wird. Denn sie verstehen die Essenz, den Mechanismus, die Logik des Prozesses, den sie verwalten, nicht.
Genug ĂŒber die Manager. Jetzt zum Wesentlichen, fĂŒr Programmierer. Wie man die Effizienz der Entwicklung steigert, indem man lernt, qualitativ hochwertigen Code zu schreiben.
Um die Effizienz zu steigern, muss man Aufgaben schnell lösen, ohne die QualitĂ€t zu verlieren. Um Aufgaben schneller zu lösen, muss man in der Lage sein, sofort qualitativ hochwertigen Code zu schreiben. âQualitativ hochwertigâ, âschreibenâ und âsofortâ. Ich werde das mit einer Metapher erklĂ€ren.
Qualitativ hochwertigen Code zu schreiben ist wie richtig eine Fremdsprache zu sprechen. Wenn man die Sprache nicht beherrscht, verbringt man viel Zeit damit, seine Gedanken in dieser Sprache zu formulieren.
Wenn es schnell gehen muss, klebt man einfach ein paar Wörter aneinander, oft die falschen, vergisst die Artikel, die richtige Wortstellung, ganz zu schweigen von der Zeitform der Verben und der mangelhaften Aussprache.
Wenn man Zeit hat, eine Antwort zu formulieren, muss man in ein Wörterbuch oder einen Online-Ăbersetzer schauen und viel Zeit darauf verwenden, seine Gedanken zu formulieren. Das GefĂŒhl bleibt trotzdem unangenehm: Man gibt eine Antwort und weiĂ nicht, ob sie richtig ist oder nicht. Ăhnlich verhĂ€lt es sich mit Code â man hat ihn scheinbar geschrieben, und er funktioniert, aber ob er qualitativ ist oder nicht â keine Ahnung.
Das fĂŒhrt zu einem doppelten Zeitverlust. Es dauert Zeit, eine Antwort zu finden. Auch die Formulierung dieser Antwort kostet Zeit â und zwar nicht wenig.
Wenn jedoch die FĂ€higkeit, qualitativ hochwertigen Code zu schreiben, vorhanden ist, kann man die Antwort sofort formulieren, sobald sie im Kopf gereift ist, ohne zusĂ€tzliche Zeit fĂŒr die Ăbersetzung aufzuwenden.
Die FĂ€higkeit, qualitativ hochwertigen Code zu schreiben, hilft bei der Planung der Architektur. Man wird einfach keine falschen, unrealistischen oder minderwertigen Optionen im Kopf in Betracht ziehen.
Zusammenfassend lÀsst sich sagen, dass die FÀhigkeit, qualitativ hochwertigen Code zu schreiben, die Lösung von Problemen erheblich beschleunigt.
Aber das ist noch nicht alles. Aufgrund der âWalenka-Managerâ gibt es einen Haken â es gibt keinen Grund, qualitativ hochwertigen Code zu schreiben. Der Manager sieht sich keinen Code an, der Kunde sieht keinen Code an. Wir zeigen uns gegenseitig selten Code, nur manchmal in bestimmten Projekten, wo es einen zugewiesenen 'Code-Reviewer' oder regelmĂ€Ăiges Refactoring gibt.
Das bedeutet, dass in den meisten FĂ€llen miserabler Code in die Produktion oder an den Kunden geht. Bei der Person, die miserablen Code geschrieben hat, entsteht eine feste neuronale Verbindung â miserablen Code zu schreiben ist nicht nur erlaubt, sondern auch nötig â er wird angenommen und man erhĂ€lt dafĂŒr sogar Bezahlung.
Infolgedessen hat die FĂ€higkeit, qualitativ hochwertigen Code zu schreiben, ĂŒberhaupt keine Chance sich weiterzuentwickeln. Der Code, der von einem hypothetischen Mitarbeiter geschrieben wurde, wird niemals von jemandem ĂŒberprĂŒft. Der einzige Grund, warum er lernen wĂŒrde, richtig zu programmieren, ist die innere Motivation.
Doch diese innere Motivation steht im Widerspruch zu den PlĂ€nen und Anforderungen hinsichtlich Effizienz und ProduktivitĂ€t. Dieser Widerspruch wird offensichtlich nicht im Sinne von qualitativ hochwertigem Code gelöst, denn fĂŒr schlechten Code wird man nicht einmal bestraft. Doch fĂŒr das Nichteinhalten des Plans schon.
Was tun? Ich sehe und schlage zwei Wege vor, die man kombinieren kann.
Der erste Weg ist, seinen Code jemandem innerhalb des Unternehmens zu zeigen. Nicht reaktiv (wenn man darum bittet/zumuten), sondern proaktiv (hey, schau dir bitte meinen Code an). Hier ist es wichtig, nicht um den heiĂen Brei herumzureden, sondern die Kritik am Code direkt auszusprechen. Wenn der Code schlecht ist, sagen wir: der Code ist schlecht. NatĂŒrlich mit ErklĂ€rungen und Empfehlungen, wie man ihn besser machen kann.
Doch dieser Weg hat auch seine TĂŒcken. Seine Anwendbarkeit hĂ€ngt davon ab, an welchem Punkt der Kontakt stattgefunden hat. Wenn die Arbeit bereits in der Produktion ist und sich herausstellt, dass der Code von schlechter QualitĂ€t ist, macht es keinen Sinn, ihn zu ĂŒberarbeiten. Genauer gesagt, wird es noch einen weiteren Grund geben â die Kennzahlen werden leiden. Die Manager werden kommen und mit Anforderungen zur Effizienz ĂŒberfluten. Und versuche erst gar nicht, ihnen zu erklĂ€ren, dass schlechter Code sich zwangslĂ€ufig in Form von Bugs zurĂŒckmelden wird â das wird dir nur schaden. Man kann nur die Verpflichtung ĂŒbernehmen, so etwas in Zukunft zu vermeiden.
Ist die Arbeit jedoch noch nicht eingereicht oder gerade erst begonnen, kann es durchaus sinnvoll sein, den Code (oder sein Projekt, seine Idee) scharf zu kritisieren â dann wird die Person es richtig machen.
Der zweite Weg, der beste â sich in der Freizeit mit Open-Source-Entwicklung zu beschĂ€ftigen. SchlieĂlich ist das Ziel: dass viele Programmierer, eben Programmierer, deinen Code sehen und sich dazu Ă€uĂern. Innerhalb des Unternehmens hat niemand Zeit. Aber Programmierer auf der ganzen Welt haben nichts anderes zu tun und wenn du etwas NĂŒtzliches schreibst, das aus praktischer Sicht hilfreich ist, werden sie garantiert einen Blick darauf werfen.
Das Hauptmerkmal, meiner Meinung nach, ist das Programmieren in der Freizeit, da so kein Widerspruch zwischen CodequalitÀt und Schnelligkeit des Ergebnisses entsteht. Du kannst ein Jahr lang an deiner Entwicklung arbeiten. Weder Fristen, noch Anforderungen, noch Geld, noch der Chef setzen dich unter Druck. Vollkommene Freiheit und KreativitÀt.
Nur in der freien KreativitĂ€t wirst du verstehen und empfinden, was tollen Code ausmacht, die Schönheit von Programmiersprachen und Technologien sehen und die Faszination von GeschĂ€ftsaufgaben spĂŒren. Und du wirst lernen, hochwertigen Code zu schreiben.
Allerdings wird dies von dir persönliche Zeit erfordern. Wie jede andere Form der Weiterentwicklung. Betrachte dies nicht als Kosten, sondern als eine Investition â in dich selbst.
Quelle: habr.com
