Wahl ist böse

Ich beginne mit der Hauptsache: Wenn Ihre Programmierer ihre eigene Aufgabe wählen, haben Sie große Probleme.

Wir sind es gewohnt, eine Auswahl als bedingten Operator in einer Programmiersprache oder einem Algorithmusschema zu betrachten. Denken Sie daran, eine solche Raute ist gezeichnet, sie enthält eine Auswahlbedingung und zwei Zweige - ja und nein. Wenn der Algorithmus ausgeführt wird, wird die Bedingung sofort überprüft, sodass ihre Leistung normalerweise nicht berücksichtigt wird.

Und welche Wahl trifft der Mensch? Dies ist kein sofortiger Algorithmus, sondern ein Prozess. Dieser Prozess hat einen Anfang, ein Ende (Gott bewahre es) und vor allem eine Dauer. Wie lange kann die Aufgabenauswahl Ihrer Meinung nach dauern?

Sie können raten, aber es ist besser zu messen. Ich habe diesen Prozess viele Male beobachtet und die Schlussfolgerung ist enttäuschend: Der Programmierer kann eine Aufgabe für mehrere Tage auswählen.

Der Auswahlprozess ist schlecht, weil er vor unseren Augen verborgen ist. Wenn eine Person im Büro herumwanderte, von einer Seite zur anderen eilte und ihren Kopf in einem langen Heulen hochwarf, würden wir verstehen, dass sie ein Problem hatte. Aber es passiert anders.

Programmierer haben sich lange einen Algorithmus wie die Aufklärung im Kampf ausgedacht. In Bezug auf Aufgaben bedeutet dies: nicht nur die Bedingung lesen, sondern hineingehen und sehen. Sehen Sie sich Code, Formulare, Links, Metadaten, Wiedergabebeispiele und Analyseberichte an.

Sie müssen schauen, um die Aufgabe „wie sie sollte“ zu bewerten, nicht vom Sehen. Wenn Sie einen Programmierer in diesem Beruf erwischen, wird er sagen: Ich bin ein Profi, und ich kann die Aufgabe nicht übernehmen, ohne alle Feinheiten zu kennen. Es scheint, warum ist das so? Ist es richtig, dass ein Mann es tut?

Natürlich ist es richtig. Aber nur, wenn er nach den Ergebnissen seiner Forschung die endgültige Entscheidung trifft - die Aufgabe zu übernehmen oder nicht. Nehmen Sie die Aufgabe optional mit Vorbehalten an, z. B. wenn zusätzliche Mechanismen untersucht werden müssen.

Wenn der Programmierer beschlossen hat, die Aufgabe zu übernehmen, und sich dazu gesetzt hat, ist alles in Ordnung. Wenn er die Aufgabe aufgegeben hat, ist alles schlecht. Die für die Forschung aufgewendete Zeit wird verschwendet.

Es gibt zwei Möglichkeiten. Erstens wird der Programmierer pauschal ablehnen und jemand anderes wird die Aufgabe beobachten. Grundsätzlich ist es möglich, dass der erste Programmierer die zweiten Ergebnisse seiner Forschung, entdeckte Fallstricke und damit verbundene Schwierigkeiten einfach nacherzählt. In der Praxis bevorzugen Programmierer jedoch die Unabhängigkeit voneinander, auch von den Meinungen der Kollegen. Einige erleben sogar eine gewisse Aufregung und verstehen eine Aufgabe, die ein Kollege nicht übernommen hat.

Die zweite Option - der Programmierer lehnte nicht ab, sondern verschob die Aufgabe auf später. Wenn dies "später" kommt - es ist nicht bekannt, aber höchstwahrscheinlich - nach ziemlich langer Zeit. Was wird während der zweiten Iteration der Aufklärung im Kampf passieren? Beginnen Sie dort, wo Sie in Ihrer Forschung aufgehört haben? Natürlich nicht - er wird von Anfang bis Ende den gleichen Weg gehen. Und mit hoher Wahrscheinlichkeit wird es an der gleichen Stelle wie zum ersten Mal stehen bleiben.

Und so stellt sich heraus. Programmierer verbringen Zeit damit, Probleme zu lösen. Normal, richtig, gute Zeit. In der Regel wird Zeit für die einmalige Lösung eines Problems aufgewendet.

Und es gibt Zeit, die Programmierer für die Mehrfachaufklärung aufwenden. Derzeit gibt es keinen besonderen Vorteil - weder für den Programmierer noch für den Kunden oder für Ihr Unternehmen. Zeit für Aufklärung im Kampf ist fast ein reiner Verlust.

Das Problem ist aber nicht nur die Intelligenz. Es passiert schlimmer.

Ein Programmierer versteht beispielsweise alle Aufgaben auf seiner Liste, kann jedoch einfach nicht auswählen, was zu tun ist. Das Problem wird durch die Tatsache verschärft, dass die Wahl so erfolgt, wie Gott es der Seele auferlegt - ohne einen bestimmten Algorithmus, Kriterien und Prioritäten. Und dann gibt es viele Leute.

Man wählt, was interessanter ist. Ein anderer wählt, was einfacher ist. Der dritte wählt Aufgaben nach Mechanismen, die ihm vertraut sind. Der vierte wählt die Aufgaben seines geliebten Kunden, weil das Ergebnis leichter zu übergeben ist. Der fünfte wählt die ehrgeizigste Aufgabe, um sich zu zeigen.

Gleichzeitig, was wichtig ist, erlebt fast jeder von ihnen aufgrund der Unsicherheit der Kriterien ernsthafte seelische Qualen. Er versteht ungefähr, welche Aufgaben er lösen möchte, hat aber entweder bewusst oder unbewusst das Gefühl, dass er etwas falsch macht. Es scheint ihm notwendig, eine völlig andere Aufgabe zu wählen, basierend auf der Strategie des Unternehmens, dem Stand des Projekts, dem Entwicklungsplan ihrer eigenen Kompetenzen usw. Aber ich möchte nicht wählen, was gebraucht wird, sondern was ich mag.

Solche mentalen Qualen erschweren den Auswahlprozess noch mehr. Ein Mensch taucht in düstere Gedanken ein und wägt seine Wahl auf der Skala des Gewissens ab. Und so können Stunden und Tage vergehen.

Aus der Sicht des Managers, der am Rande steht, ähnelt dieser ganze Prozess einem Murmeltier aus einem berühmten Film, der aus einem Loch kriecht und „das Wetter für die nächsten sechs Wochen auswählt“. Was folgt er dort, sieht seinen Schatten oder nicht und warum macht das Murmeltier das überhaupt? Wenn der Manager diesen Prozess häufig von außen betrachtet, ist die Frage für ihn wahrscheinlicher als für Programmierer.

Auch im Kontext der Wahl ist Urlaub von großer Bedeutung. Ein Programmierer ist in erster Linie eine Person und kein Roboter. Was will eine Person nach Abschluss schwieriger Arbeiten? Urlaub natürlich!

Die erledigte Aufgabe sollte notiert werden. Gehen Sie rauchen, trinken Sie Tee oder Kaffee, unterhalten Sie sich mit Freunden, prahlen Sie mit einem gelösten Problem, sitzen Sie in sozialen Netzwerken, lesen Sie die Nachrichten - im Allgemeinen gibt es viele Möglichkeiten. Leider verzögert sich dieser Urlaub manchmal.

Es ist besonders schlimm, wenn die Aufgabe in einer oder sogar zwei Stunden vor dem Ende des Arbeitstages erledigt wurde. Nun, wer wird bei klarem Verstand eine neue Aufgabe für sich selbst wählen, wenn bald - zu Hause?

Wie schwierig es ist, aus dem Zustand der Feiertage herauszukommen, weiß jeder Russe - wir alle ruhen uns an den Neujahrsferien aus. In unserem Fall ist es noch schwieriger, weil Der Programmierer sollte nicht zur Lösung des Problems zurückkehren, sondern zur Auswahl des nächsten. Wie schmerzhaft die Wahl ist, haben wir bereits besprochen.

Wenn man die Verluste aus der Auswahl zusammenfasst, dann sind sie immer da. Die Frage ist nur ihre Menge. Um Sie zu inspirieren, nenne ich Sie diese Zahl: Die Auswahl einer Aufgabe dauert bis zu 50% der Zeit. Denken Sie nur an diese Zahl.

Aber im Kontext unseres Materials ist diese Figur einfach wunderschön. Indem Sie den Verlust der Auswahl vermeiden, können Sie die Effizienz verdoppeln.

Wie kann man die Wahl loswerden? Einfacher geht es nicht. Eigentlich wissen Sie selbst, wie es geht. Ich werde meine Vorschläge vorstellen, und Sie werden sie mit Ihren eigenen Methoden kombinieren, und es wird eine anständige Steigerung der Effizienz resultieren.

Das erste und wichtigste ist zunächst das Controlling. Unabhängig davon, welches Prioritätssystem und welche Aufgabenverteilung Sie sich einfallen lassen, funktioniert es erst, wenn die Programmierer „auf Sie hören“.

Kurz gesagt, das Steuern ist eine numerische Kontrolle. In diesem Fall handelt es sich nicht um Gewinn oder Umsatz, sondern um die Sequenznummer der Aufgabe in der Warteschlange. Sie müssen die Aufgabenauswahl anhand dieser Nummer verwalten und sicherstellen, dass die Aufgaben in der angegebenen Reihenfolge gelöst werden.

Kontrolle ist notwendig, wenn Sie ein Team leiten und selbst wenn Sie sich selbst kontrollieren. Sich selbst zuzustimmen ist schließlich einfacher als mit einem Chef? "Ja jetzt, zum letzten Mal und dann sicher!"

Im Allgemeinen werden wir mehr über das Steuern im Detail sprechen, hier bin ich vorausgelaufen, aber es lohnt sich. Wenn Sie sich die Regeln für die Auswahl einer Aufgabe ausgedacht haben, diese aber von niemandem ausgeführt werden, funktioniert nichts.

Alles, was getan werden muss, ist, die Aufgaben in der Warteschlange auszurichten und sicherzustellen, dass diese Warteschlange eingehalten wird. In einigen Quellen wird empfohlen, die Warteschlange vor Programmierern auszublenden, sodass nur zwei Aufgaben in Sicht bleiben - die aktuelle und die nächste. Wenn Sie dem Programmierer alle Aufgaben auf einmal zeigen, wird er, egal wie sehr Sie es versuchen, immer noch „gucken“ und studieren, was vor Ihnen liegt.

Die erste Methode ist die Verteilung von Aufgaben durch den Chef ohne Automatisierung. Sie sagen nur, wer was in welcher Reihenfolge tut. Sie können einfache Pläne erstellen - beispielsweise in Form kleiner Zettel wie Arbeitsaufträge oder Produktionsaufgaben. Sie können einfach die Aufgabennummern für das Schreiben in ein Notizbuch diktieren.

Sie können ein Brett wie Scrum erstellen und dort Aufkleber für den Tag aufhängen. Die Methode des Scrums beinhaltet zum Beispiel das Aufhängen vieler Aufgaben - für eine Woche oder einen Monat, aber das passt nicht zu uns, da die Auswahl erneut angezeigt wird.

Die manuelle Aufgabenzuweisung ist sehr einfach zu starten und ebenso einfach zu stoppen, da Sie sich schnell langweilen. Sie benötigen eine beträchtliche Willenskraft oder gute Managementfähigkeiten, um sich zu zwingen, Aufgaben täglich zu verteilen. Wenn es um Sie geht, können Sie heute beginnen.

Für faule Automatisierung ist geeignet. In Ihrem Informationssystem, in dem Aufgaben gespeichert sind, müssen Sie einen Mechanismus zum Sortieren einrichten. Wie bist du näher? Nach Produktionsdatum sortieren? Bis zum Stichtag? Jeder Weg ist gut. Die Hauptsache ist, dass es von Programmierern bestimmt und gleichermaßen verstanden wird. Persönlich empfehle ich, nicht nur zu sortieren, sondern Nummern in einer Warteschlange als separates Feld zu speichern. Moderne Systeme sind für den Benutzer zu bequem und ermöglichen es ihm, die Sortierung unabhängig zu konfigurieren. Sie haben also entschieden, dass Sie Aufgaben in der Reihenfolge des Eingangs (FIFO) ausführen müssen, und der Programmierer hat versehentlich oder absichtlich die Sortierung in die entgegengesetzte Richtung geändert und LIFO erhalten.

Wenn die Nummer in der Warteschlange gespeichert ist, dann sortieren, nicht sortieren, es ist schwierig, einen Fehler zu machen.

Sie können nicht an die Sortierung angehängt werden, sondern die Nummern manuell festlegen. Es funktioniert auch, wenn Sie genug Willenskraft haben, um diese Zahlen zu ordnen.

Ich denke, das Prinzip ist klar. Jedes Warteschlangensystem, das von Programmierern verstanden wird und dessen Einhaltung überwacht. Dies ist der erste Schritt, um eine Wahl zu treffen, die Effizienz erfordert.

Den zweiten Schritt werden wir weiter betrachten. Dadurch können wir viel mehr Nutzen aus den Warteschlangen ziehen - nicht nur, um die Auswahl zu vereinfachen, sondern auch, um sie richtig zu machen.

Zusammenfassung

  • Die Auswahl einer Aufgabe ist kein sofortiger, sondern ein langwieriger Prozess.
  • Der Programmierer wählt eine Aufgabe basierend auf seinen eigenen Ideen;
  • Es wird sehr viel Zeit für die Auswahl aufgewendet.
  • Das Auswahlverfahren ist weder gut noch angenehm;
  • Die Wahl muss beraubt werden;
  • Sie können Aufgaben wie einen Vorarbeiter manuell verteilen.
  • Automatisierung kann beim Anstehen helfen.

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


All Articles