12 Faktoren, die Programmierer am Arbeiten hindern

Niemand wird vom Entwickler verlangen, Code ohne Zugriff auf einen Computer zu schreiben, aber viele Unternehmen glauben, dass er irgendwie arbeiten muss, ohne seine mentalen FĂ€higkeiten voll ausnutzen zu können. Und das ist ungefĂ€hr so ​​unrealistisch.



Lassen Sie uns also eine Liste von zwölf Dingen durchgehen, die Entwickler daran hindern, in einen Stream-Status zu gelangen und maximale ProduktivitĂ€t zu erzielen. Ich werde versuchen, von den wichtigsten zu den weniger wichtigen Dingen ĂŒberzugehen. Schlagen Sie Ihre Optionen und Kommentare vor!

Wenn jemand Zweifel hat, ob es sich lohnt, dafĂŒr Geld und MĂŒhe auszugeben, reicht es aus, sich daran zu erinnern, wie viel die Programmierer bezahlt haben. Selbst eine Steigerung der ProduktivitĂ€t um 10% ist viel Geld!

1) Treffen und andere Ablenkungen


Meiner Meinung nach ist die Ablenkung des Entwicklers der sicherste Weg, seine ProduktivitÀt im Keim zu töten. Er kann den Ort, an dem er unterbrochen wurde, nicht einfach nehmen und fortsetzen. Zuerst muss er sich wieder in den Prozess einmischen und dann die gesamte Gedankenkette bis zum richtigen Moment durchlaufen - dies allein kann eine halbe Stunde oder lÀnger dauern. Und je mehr solche Pausen auftreten, desto mehr Irritationen hÀufen sich, desto geringer wird die QualitÀt der Arbeit, desto hÀufiger treten Fehler auf, und diese Liste kann fortgesetzt werden.

„Je öfter ich abgelenkt werde, wenn ich versuche, eine Aufgabe zu starten, desto mehr Zeit vergeht zwischen den Versuchen. Wenn ich den ganzen Morgen gezogen wurde, ist es nicht verwunderlich, dass sich der Tag als unproduktiv herausstellte. “- Anonymer Entwickler bei Reddit

Was ist mit dem Treffen? Ihr einziger Unterschied zu anderen Ablenkungen besteht darin, dass sie im Voraus geplant sind. Und das macht die Situation nur noch schlimmer. FĂŒr einen Programmierer ist es schwierig, ein Problem zu lösen, wenn er eine Unterbrechung der Arbeit im Voraus erwartet. Wenn er in ein oder zwei Stunden zum Planungsmeeting gehen muss, kann er höchstwahrscheinlich fĂŒr keines seiner Projekte etwas Bedeutendes tun - schließlich dauern die meisten technischen Aufgaben lĂ€nger.

Wie Paul Graham sagte: "Ein Meeting kann einen halben Tag töten: Die Zeit ist in zwei ZeitrĂ€ume unterteilt, fĂŒr die Sie nichts Ernstes tun können."

Wie vermeide ich diesen Zustand? Darauf wurde schon lange alles gemalt, daher gibt es keine Ausreden. Sie mĂŒssen die Hobel nur ganz am Anfang des Tages oder beispielsweise kurz vor dem Abendessen aufstellen, damit Sie die Menschen nicht ohne Notwendigkeit von der Arbeit ablenken mĂŒssen.

2) Nitpicking


Von allen Arten von Managern haben diejenigen, die aus irgendeinem Grund eingreifen, möglicherweise den schlimmsten Einfluss auf die MitarbeiterproduktivitĂ€t. Dies wird natĂŒrlich auch dadurch beeinflusst, dass dieser spezielle Typ besonders dazu neigt, eine Reihe von Besprechungen zu organisieren und aus unvorhergesehenen GrĂŒnden die Aufmerksamkeit der Entwickler zu fordern. Dies ist jedoch nicht der einzige Punkt. Solche Handlungen zeigen einen Mangel an Vertrauen, und infolgedessen haben die Menschen das GefĂŒhl, dass sie zu nichts fĂ€hig sind und ihre beruflichen FĂ€higkeiten in Frage stellen. Selbst wenn die Programmiererin trotz endloser Unterbrechungen immer noch motiviert ist, zu arbeiten, wird eine solche Einstellung sie völlig entmutigen. Die Folgen sind nicht auf einen Leistungsabfall beschrĂ€nkt. Besonders aufdringliche Manager zwingen Mitarbeiter hĂ€ufig, das Unternehmen oder zumindest das Team zu verlassen.

3) Unklar


Unklarheit kann durch viele verschiedene Beispiele veranschaulicht werden. Zum Beispiel ein Fehlerbericht im Sinne von "Es funktioniert hier nicht, behebe es!" Offensichtlich erhalten Entwickler nicht alle fĂŒr die Arbeit erforderlichen Informationen. Übrigens kann in diesem speziellen Fall die EinfĂŒhrung einer Vorlage fĂŒr Fehlerberichte hilfreich sein.

Oder ein anderer Fall: vage Anforderungen fĂŒr einen Teil des Produkts. Mit einer solchen EinfĂŒhrung beginnen Entwickler einfach, das zu tun, was sie sich vorstellen, und dann kommt ein Manager mit einer detaillierteren Beschreibung des erwarteten Benutzerverhaltens, und alle mĂŒssen von vorne beginnen.

Undeutlich gesetzte PrioritĂ€ten gehören zur gleichen Kategorie. Programmierer verbringen viel Zeit damit, sich Gedanken darĂŒber zu machen, womit sie beginnen sollten, obwohl es sehr einfach wĂ€re, dies zu vermeiden. Wenn sie dem Manager jemals mitteilen mĂŒssen, warum sie damit beschĂ€ftigt sind und nicht (trotz der Tatsache, dass niemand die Bestellung festgelegt hat), können Sie sicher sein, dass dies sie großartig macht.



4) Möwenmanager


Schon mal was davon gehört? Es gibt Manager, die ĂŒberhaupt nicht am Workflow teilnehmen ... außer in den Momenten, in denen sie sich plötzlich dazu entschließen, jemanden anzugreifen und einen Fehler zu machen. "Das ist nicht gut, und das auch, aber es sieht ĂŒberhaupt nicht aus", und flog weiter. Ich muss zugeben, ich mag den Vergleich, aber das PhĂ€nomen dahinter ist viel hĂ€ufiger als wir möchten. Dieses Verhalten wirkt sich sehr stark auf die Entwickler aus: Viele mĂŒssen dann stundenlang eine Arbeitsstimmung entwickeln, und jemand fĂ€llt fĂŒr ganze Tage aus dem Stream aus.

5) Diebstahl von Lorbeeren


Ist Ihnen jemals passiert, dass einer der Manager oder andere Programmierer sich selbst zugeschrieben hat, was Sie mehrere Wochen lang gekĂ€mpft haben? Entwickler stellen ihre ProfessionalitĂ€t ĂŒber alles. Die Verdienste anderer Leute zu stehlen ist wie die Verweigerung der Kompetenz einer Person, um ihre eigene aufzublĂ€hen. Ich habe diesen Punkt hoch genug gesetzt, weil ich glaube, dass solche Dinge zu einer sehr angespannten Situation fĂŒhren, die die Leistung des gesamten Teams fĂŒr lange Zeit „beeintrĂ€chtigen“ kann.

6) Einrichtung: LĂ€rm, Bewegung, Gestaltung des Arbeitsbereichs ...


FĂŒr Menschen aus anderen Berufen mag es seltsam erscheinen, aber fĂŒr Programmierer entscheidet die Umgebung im Laufe der Arbeit sehr stark. Sagen wir, das weiße Rauschen - die summende Klimaanlage, das Summen von Autos und Lastwagen von der Straße - hilft ihnen, sich besser zu konzentrieren. Deshalb arbeiten viele von uns mit Kopfhörern! Übrigens habe ich kĂŒrzlich RainyMood entdeckt - eine großartige Sache!

Wenn das BĂŒro jedoch so gestaltet ist, dass sich immer etwas um die Person bewegt, hat dies den gegenteiligen Effekt. Und wenn Monitore zusĂ€tzlich so installiert werden, dass Manager stĂ€ndig sehen, was auf dem Bildschirm angezeigt wird, entsteht unnötiger Stress und unnötige GrĂŒnde, um Entwickler vom GeschĂ€ft abzulenken.

7) Versetzen Sie die Projektgrenzen


Im Projektmanagement wird dieser Begriff fĂŒr Situationen verwendet, in denen das Projektvolumen unkontrolliert wĂ€chst. Dies geschieht normalerweise, wenn sie anfangs nicht genau definiert und dokumentiert waren oder dabei nicht ĂŒberwacht wurden.

Aufgrund der Verschiebung von Grenzen wachsen relativ einfache Abfragen zu verwirrten Monstern, die viel Zeit verbrauchen! In den meisten FĂ€llen beginnt dies, wenn sich das Produkt bereits in der Entwicklung befindet.

Nehmen Sie zum Beispiel eine einfache Funktion:

  • Erste Version (vor der Implementierung): Die Funktion ist definiert als "Standortkarte anzeigen"
  • Die zweite Version (wenn die erste Iteration fast abgeschlossen ist): Die Beschreibung Ă€ndert sich in "3D-Positionskarte anzeigen".
  • Dritte Version (wenn die zweite Iteration fast abgeschlossen ist): Die Beschreibung Ă€ndert sich in "Anzeige einer 3D-Positionskarte, auf der sich der Benutzer bewegen kann".

8) Prozess zur Bestimmung des Produktmerkmals


Es mag auf den ersten Blick unverstĂ€ndlich erscheinen, aber tatsĂ€chlich ist alles einfach. Wenn die Verantwortlichen des Produkts PrioritĂ€ten setzen, ohne ihre Hypothesen (durch Feedback oder auf andere Weise) ĂŒber das Interesse des Publikums an bestimmten Opportunities zu testen, und die Entwickler feststellen, dass diese Opportunities einfach nicht genutzt werden, haben sie das GefĂŒhl, dass Ihre Arbeit macht keinen Sinn und die Motivation wird zusammenbrechen. Wir alle möchten das GefĂŒhl haben, dass wir Spuren in der Welt hinterlassen, und dies ist besonders wichtig fĂŒr Entwickler!



9) Technische Schulden ignorieren


Technische Pflicht ist eine bewusste Entscheidung, bei der Auswahl von Lösungen und beim Schreiben von Code eine gewisse Anstrengung zuzulassen, um das Produkt schneller einzufĂŒhren. Ein gewisses Maß an technischer Verschuldung entsteht zwangslĂ€ufig bei jedem Projekt und kann bei Fristen ĂŒber kurze Strecken helfen. Auf lange Sicht erhöht dies jedoch die KomplexitĂ€t des Systems und verlangsamt dadurch die Entwickler. Menschen, die weit davon entfernt sind, zu programmieren, unterschĂ€tzen hĂ€ufig die Auswirkungen dieser Prozesse auf die ProduktivitĂ€t und mĂŒssen ununterbrochen vorankommen - in dieser Situation treten Probleme auf. Wenn Refactoring immer außerhalb der PrioritĂ€tenliste bleibt, leidet nicht nur die ProduktivitĂ€t der Mitarbeiter, sondern auch die QualitĂ€t des Produkts.

10) Eine Vielzahl von Werkzeugen und GerÀten


Entwickler verwenden tĂ€glich viele Tools zum Schreiben, Pushen und ZusammenfĂŒhren von Code. Je mehr sie es schaffen, Prozesse zu automatisieren, desto besser. Es versteht sich von selbst, dass alte Werkzeuge einen direkten Einfluss auf die Leistung haben. Es entscheidet auch viel darĂŒber, woran die Arbeit erledigt wird - auf einem Laptop oder auch auf einem zusĂ€tzlichen Bildschirm. Wenn wir die Eisenpreise mit den GehĂ€ltern der Programmierer vergleichen, zahlt sich sogar eine Steigerung der ProduktivitĂ€t um 5% definitiv alle Kosten aus! Sie mĂŒssen dem Team nur die GerĂ€te und Werkzeuge zur VerfĂŒgung stellen, die es bevorzugt (fĂŒr GerĂ€te sollte die Lösung individuell sein, fĂŒr Werkzeuge - kollektiv).

11) Dokumentation


WĂ€hrend des Programmierunterrichts haben wir alle gelernt, dass Sie so schnell wie möglich und so oft wie möglich Kommentare zum Code hinzufĂŒgen mĂŒssen. Die Idee war, dass es besser wĂ€re, wenn es zu viele Kommentare gĂ€be, als nicht genug. Leider haben viele Leute dies missverstanden und entschieden, dass jede Zeile einer ErklĂ€rung bedarf. Deshalb haben wir Beispiele wie dieses aus Jeff Atwoods Artikel „Code ohne Kommentar“:

r = n / 2; // Set r to n divided by 2
// Loop while r — (n/r) is greater than t while ( abs( r — (n/r) ) > t ) { r = 0.5 * ( r + (n/r) ); // Set r to half of r + (n/r)
}


Verstehst du, was dieser Code im Allgemeinen macht? Also habe ich nichts verstanden. Das Problem ist, dass hier viel darĂŒber gesagt wird, wie alles funktioniert, aber kein Wort darĂŒber, warum dies benötigt wird. Wenn wir davon ausgehen, dass ein Fehler im Programm aufgetreten ist und Sie ein solches Codefragment unter der Haube gefunden haben, hĂ€tte dies Ihnen nicht geholfen, die Situation herauszufinden.

12) Extrem enge Fristen


Der letzte Punkt hĂ€ngt mit der Tendenz der Manager zusammen, die Entwickler zu bitten, grob zu schĂ€tzen, wie viel Zeit sie benötigen, dann auf sie zu drĂŒcken, um diese SchĂ€tzung zu unterschĂ€tzen, und dann das Enddatum auf magische Weise mit der Frist gleichzusetzen! Gleichzeitig glauben die Manager sogar, dass die Entwickler, da sie „die Fristen selbst festlegen“, sich fĂŒr die entsprechende Frist angemeldet haben und als endgĂŒltig genehmigte Option betrachtet werden sollten, die an die GeschĂ€ftsleitung ĂŒbertragen werden kann.

Die Entwickler glauben, dass eine solche Frist völliger Wahnsinn ist und es unmöglich ist, sie einzuhalten. Es gibt Zwietracht im Team und niemand kann sich konzentrieren.

Aber geht es nur um Entwickler?


Wenn Sie sich all diese 12 Punkte ansehen, werden Sie feststellen, dass sie grĂ¶ĂŸtenteils fĂŒr alle an Projekten Beteiligten relevant sind. Es ist nur so, dass Programmierer besonders kritisch sind, da ihre Arbeit ein tiefes Eintauchen in den Prozess erfordert.

Wenn Sie feststellen, dass einige der genannten Punkte fĂŒr Ihr Unternehmen typisch sind, sollten Sie diese Liste mit dem Entwicklerteam durchgehen, einen Dialog mit ihnen aufbauen, herausfinden, wo die Probleme auftreten und wie sie am besten gelöst werden können. Was auch immer sie sagen, es ist Ă€ußerst wichtig, dieses Feedback und diese Kommentare ernst zu nehmen. In den letzten dreißig Jahren hat sich in Bezug auf die Technologie viel geĂ€ndert, aber das Grundprinzip der Teamarbeit bleibt dasselbe: Bei der Diskussion ĂŒber die Leistung muss der menschliche Faktor berĂŒcksichtigt werden. Verbessern Sie Ihre Arbeitsprozesse, Ihre Umgebung und Ihre Teamgewohnheiten und geben Sie ihnen die Möglichkeit, Ihnen zu erklĂ€ren, wie Sie maximale ProduktivitĂ€t erzielen können.

Source: https://habr.com/ru/post/de428293/


All Articles