Die traditionelle Methode zur Messung von Aufgaben in unserer Branche ist die Uhr. Berechnen wir, wie viele Metriken in der Uhr wir verwenden.
Die ersten, wichtigsten Stunden sind die, die wir dem Kunden auferlegen. Je nach Situation vereinbaren wir entweder die Uhr im Voraus oder legen fest, wie viel der Programmierer ausgegeben hat.
Die zweiten Stunden hat der Programmierer angerufen und die Frage beantwortet, wie viel Zeit Sie benötigen, um das Problem zu lösen. Wenn wir im Voraus mit dem Kunden einverstanden sind, werden diese Uhren zum Verkauf angeboten. Wenn die Zahlung nachträglich erfolgt, bitten wir den Programmierer um eine Bewertung zu Planungszwecken.
Die dritte Stunde - wie viel der Programmierer tatsächlich für die Lösung des Problems ausgegeben hat. Diese Uhr fällt äußerst selten mit der geplanten Nummer zusammen, die er selbst angerufen hat, und das ist normal - niemand weiß, wie man seine Zeit genau plant, weil viele Kräfte aus der Umwelt auf die Arbeit des Programmierers einwirken - er ist abgelenkt, er ist nicht in der Stimmung, er ist konfrontiert mit unvorhergesehenen Schwierigkeiten usw.
Es gibt auch die vierte Stunde - wenn wir dem Kunden einen anderen als den zuvor vereinbarten Betrag festlegen. Natürlich, wenn die Bedingungen unserer Zusammenarbeit dies zulassen.
Und jetzt ist die Frage: Wo können Sie an Effizienz arbeiten? Oder auf andere Weise: die Effektivität dessen, was wir steigern werden?
Man kann vage antworten: die Effizienz des Programmierers. Nun, wie und was werden wir messen? In unserer Gegenwart erinnere ich Sie daran, drei oder vier Arten von Uhren.
Sagen Sie dem Programmierer: Wir möchten, dass Sie mehr Stunden produzieren. Was wird er antworten? Der Programmierer ist ein intelligenter Typ, er hat am Institut studiert und er erinnert sich sofort an die fünfte Metrik - die Anzahl der Stunden pro Tag. Und erzähl dir mutig davon - ich kann nicht mehr als 24 Stunden am Tag arbeiten, fürchte Gott.
Er wird sich auch an die Relativitätstheorie erinnern. Auch wenn es nicht im Detail ist, wird definitiv die Unmöglichkeit der Zeitkomprimierung erwähnt - bewegen wir uns nicht mit Lichtgeschwindigkeiten?
Wenn die Uhr nicht schrumpft, wie kann dann die Effizienz gesteigert werden? Wie kannst du überhaupt darüber reden? Wie kannst du es überhaupt zählen? Wie viele Stunden pro Stunde hat der Programmierer verbracht? Eine halbe Stunde für eine Stunde Arbeit aufwenden? Wie erstelle ich eine Formel? Ohne Formel führen Sie keine Berechnungen durch und setzen sich kein Ziel.
Gehen wir auf die andere Seite. Stellen Sie sich keinen Programmierer vor, sondern einen Fabrikarbeiter. Hier ist er, armer Kerl, eine ganze Schicht an der Maschine und produziert Teile. Wie ist seine Arbeit geplant? Angenommen, hundert Teile pro Schicht. Der Wechsel dauert acht Stunden, für einen Teil 4,8 Minuten.
Stellen Sie sich nun vor: Wir sind mit unseren Ansätzen zur Messung der Arbeit gekommen, um diesen Arbeiter zu führen. Wir sagen ihm nicht mehr "mach 100 Teile", wir lieben es, in Stunden zu messen, also klingt der neue Arbeitsplan wie "mach 8 Stunden pro Schicht".
Er wird uns natürlich zuerst als Idioten betrachten. Er fragt - aber wie viele Details sollten getan werden? Es spielt keine Rolle, wir werden antworten. Die Hauptsache ist die Uhr. Wir verstehen, dass es Variationen gibt, Sie gehen dort rauchen, unterhalten sich mit Freunden, aber wir stellen uns die durchschnittliche Rechnung vor - 4,8 Minuten pro Detail. Machen Sie uns deshalb 100 Mal für 4,8 Minuten Ihrer Arbeit.
Zuerst wird er natürlich versuchen, dem alten Plan zu folgen, aber wenn er seine Berechnung sieht, werden sich seine Lebenswerte ändern - es heißt: "In 20 Schichten von 8 Stunden wurde so viel berechnet." Was bringt es ihm jetzt im Allgemeinen, die Details zu tun, wenn nur die an der Maschine verbrachte Zeit bezahlt wird?
Wenn sie uns zu diesem Zeitpunkt noch nicht aus der Fabrik vertrieben hatten, werden wir das Verkaufssystem ändern. Wir werden keine Teile an Kunden verkaufen - die Rechnungen zeigen die Stunden, die unsere Mitarbeiter verbracht haben. Der Kunde bittet um 100 Teile, wir überlegen, dann senden wir eine Rechnung - 8 Stunden Facharbeit. Der Kunde ist überrascht, stimmt aber zu und bezahlt die Rechnung. Und nach ein paar Tagen bekommt er eine weitere „Steigerung“ - ein paar Stunden. Nun, was ist passiert? Der Arbeiter konnte nicht innerhalb von 8 Stunden halten.
Kunden beginnen sich zu ärgern - was zur Hölle, was für eine Uhr? Wir brauchen die Details! In Stücken, Kisten, Paletten, Wagen - das spielt keine Rolle. Es macht für uns keinen Unterschied, wie viele Stunden benötigt werden, um sie zu produzieren!
Hier, denke ich, werden sie uns definitiv rausschmeißen. Rückgabe der Buchhaltung in Teilen - sowohl intern als auch extern, für Kunden. Und wird in Effizienz engagiert sein.
Wo ist die Effizienz hier, wie lautet ihre Formel? Die Antwort liegt auf der Hand: Je mehr Teile pro Zeiteinheit der Arbeiter, die Werkstatt oder die gesamte Anlage produziert, desto besser. Natürlich vorbehaltlich Technologie, anständiger Qualität und ohne Strumpf.
Die Formel für Effizienz liegt jedoch auf der Hand - Stück pro Stunde. Und die Anweisungen für die Anwendung von Managementbemühungen liegen auf der Hand, um die Effizienz zu verbessern.
Wir kehren niedergeschlagen zu unseren Programmierern zurück. Und wir wollen auch eine einfache und verständliche Formel zur Berechnung der Effektivität. Was haben wir dort? Uhren, Uhren, Runduhren.
Jetzt verstehen Sie bereits, was mit der Uhr nicht stimmt. Eine Uhr misst die Zeit - ein physikalisches Phänomen, das außerhalb Ihrer Kontrolle aufgetreten ist, geschieht und immer eintreten wird. Es spielt keine Rolle, ob Sie arbeiten oder nicht, ob Ihr Unternehmen existiert oder geschlossen wurde, ob Sie Kunden haben oder nicht - die Zeit vergeht und wird in Stunden gemessen.
Alles, was Sie tun können, ist, Ihre Aktivitäten während der Ihnen vom Arbeitsgesetz zugewiesenen Stunden zu verwalten, d. H. etwas produzieren und irgendwie messen, was Sie produzieren.
Bei der Anlage ist alles klar - es gibt eine Messung in physikalischen Einheiten. Stücke, Liter, linear, quadratisch oder Kubikmeter. Und mit uns Programmierern, was tun? Woran messen wir unsere Aufgaben, außer an Stunden?
Das erste, was mir in den Sinn kommt, sind die Stücke. Ein solcher Gedanke ist jedoch nicht realisierbar - die Unterschiede zwischen den Aufgaben sind zu groß.
In der Tat ist die Antwort seit langem in der sogenannten gefunden worden. flexible Entwicklungsmethoden wie Scrum. Die Methode heißt "Poker Planning".
In welchen Einheiten werden Pokerplanungsaufgaben gemessen? Die Antwort ist ungewöhnlich - in jedem. Nennen Sie sie, was Sie wollen. Hunde, Papageien, Hocker, Spitzen, Gläser - das spielt keine Rolle. Der gebräuchlichste Name sind Story Points (Story Points, Story Points). Persönlich mag ich die einfacheren und prägnanteren Punkte. Ich werde es im Laufe der weiteren Darstellung verwenden. Sie können natürlich jede andere wählen.
Ein wesentliches Merkmal von Punkten ist ihre Relativitätstheorie. Dies ist keine Maßeinheit eines Klassifikators, sondern eine eindeutige Skala für jedes Unternehmen oder sogar Team. Dieselbe Aufgabe in zwei verschiedenen Teams kann unterschiedlich bewertet werden. Irgendwo - fünf Punkte, irgendwo - dreizehn usw.
Die Anzahl der Punkte - dies ist die tatsächliche Größe der Aufgabe. Die Einschätzung, die uns fehlte.
Die Pokerplanungstechnik empfiehlt die Verwendung von Schätzungen aus der Fibonacci-Reihe: 1, 2, 3, 5, 8, 13, 21, 34 usw. Punkte, an denen jedes nachfolgende Element gleich der Summe der beiden vorherigen ist. Der Grund ist einfach: Es muss einen signifikanten Unterschied zwischen den Bewertungen geben. Es ist ziemlich schwierig, eine Bewertung zwischen beispielsweise 5 und 6 Punkten zu wählen. Viel einfacher - zwischen 5 und 8 oder 8 und 13.
Die Methodik empfiehlt, das Team wie folgt zu bewerten. Allen Teammitgliedern müssen Karten mit Markierungen aus der Fibonacci-Serie ausgeteilt werden. Sie können spezielle Karten für die Pokerplanung kaufen, wenn Sie etwas Schönheit wünschen. Der Einfachheit halber reicht es jedoch aus, gewöhnliche kleine Zettel für Notizen wie Aufkleber nur ohne Klebestreifen zu verwenden.
Also versammelte sich das Team und hielt jeweils eine Karte in der Hand. Eine Aufgabe wird angekündigt, ihre Funktionen und Details werden aufgelistet, damit jeder versteht, was zu tun ist. Danach nimmt jeder Teilnehmer seine eigene Bewertung vor - wählt eine der Karten aus - und legt sie verdeckt auf den Tisch (so dass die Bewertung nicht sichtbar ist).
Wenn alle bewertet haben, werden die Karten umgedreht und eine Schlüsselprüfung durchgeführt. Es sollten keine Schätzungen vorhanden sein, die durch mehr als ein Element der Fibonacci-Reihe voneinander getrennt sind.
Zum Beispiel sind die Klassen 5 und 8 normal und die Klassen 3 und 8 sind nicht gut. Zu viel Überschwingen in den Schätzungen deutet darauf hin, dass jemand etwas nicht verstanden hat. Diejenigen, die eine niedrige Bewertung abgeben, wissen entweder zu viel (zum Beispiel haben sie ein solches Problem bereits gelöst) oder haben nichts verstanden und sind zu optimistisch.
Ebenso kann eine hohe Punktzahl auf ein Missverständnis der Aufgabe hinweisen. Zum Beispiel hat ein Programmierer solche Probleme einfach nie gelöst, oder sie sind mit ihm unbekannten Plattformmechanismen verbunden, und er gibt für alle Fälle, in Reserve, eine gute Note.
In jedem Fall ist eine zweite Diskussion erforderlich, wenn die Schätzungen stark voneinander abweichen - um die Details zu klären, die Feinheiten zu erörtern und maximale Informationen zu geben. Wenn die Diskussion stattfindet, wird die Bewertung wiederholt. Bei Bedarf immer wieder, bis die Schätzungen durch nicht mehr als ein Element der Reihe voneinander getrennt sind.
Manchmal ist es nützlich, eines der Teammitglieder von der Bewertung einer bestimmten Aufgabe auszuschließen. Wenn zum Beispiel ein Praktikant im Team ist, dann erkläre es ihm zumindest, erkläre es ihm zumindest nicht - er wird nicht verstehen, was die Schwierigkeit oder umgekehrt die Einfachheit der Aufgabe ist. Am Ende stimmt er einfach zu und gibt die gewünschte Bewertung ab, um das Team nicht zu verzögern.
Ein solches Ergebnis hat keinen Wert, da es die Pokerplanung in eine leere Formalität verwandelt. Daher empfehle ich eine einfache Regel: Nur Personen, die etwas in der Aufgabe verstehen, nehmen an der Bewertung der Aufgabe teil. Du verstehst nicht - setz dich und hör zu.
Natürlich kommt es manchmal vor, dass nur eine Person die Aufgabe versteht. Zum Beispiel, wenn es zu einem sehr spezifischen, selten genutzten Wissensgebiet gehört. Es ist okay, lass es eine Bewertung geben.
Es gibt einen Extremfall - niemand versteht, wie man das Problem löst. Es ist auch okay - wir legen fest, was passiert ist, dann werden wir es herausfinden.
Wenn die Noten festgelegt sind, wird der arithmetische Durchschnitt berücksichtigt - dies ist die endgültige Note der Aufgabe. Bei flexiblen Methoden schreiben sie es auf einen Aufkleber und hängen es an ein Whiteboard. Ich empfehle jedoch, es einfach Ihrem Informationssystem hinzuzufügen, in dem Sie Aufgaben aufschreiben. Natürlich müssen Sie zuerst das entsprechende Feld hinzufügen.
Ein anderer Bewertungsalgorithmus verwendet keinen Befehl. Zum Beispiel können Punkte von einem Führer oder einem Führer oder dem intelligentesten Programmierer gegeben werden. Normalerweise wechseln sie zu diesem Algorithmus, nachdem sie mehrere Wochen oder Monate im Pokerteam gespielt haben.
Der Grund ist einfach: Es ist notwendig, dass alle Teammitglieder an das Bewertungssystem gewöhnt sind. Sie drangen ein, lernten, Aufgaben schnell zu bewerten, und betrachteten keine Punkte wie einen Widder an einem neuen Tor. Wenn sich eine Gewohnheit entwickelt hat, kann eine Person bewertet werden. Natürlich bleibt dem Team das Recht, seine Meinung zu äußern - niemand ist perfekt, und der Anführer kann sich in den Schätzungen irren.
Manchmal haben Teams zu Beginn der Arbeit mit Punkten Schwierigkeiten - niemand weiß, was er für einen Referenzpunkt wählen soll. Ich empfehle die Auswahl mehrerer Anker - typische Aufgaben, die Sie regelmäßig lösen.
Der erste Anker ist die einfachste Aufgabe. Soweit ich weiß, wird die von Programmierern verbrachte Zeit in der Regel in Vielfachen von 15 Minuten berechnet. Welche Aufgaben lösen Sie normalerweise in 15 Minuten? Ein einfacher Bericht? Hinzufügen eines Benutzers zur Datenbank? Adressklassifikator füllen?
Diese Aufgabe sollte mit 1 Punkt bewertet werden. In Zukunft werden Sie sich davon leiten lassen.
Sie können je nach Ihren Angaben einige weitere Anker hinzufügen. Zum Beispiel ein einfacher externer Bericht über ein Restregister, ohne Schnickschnack, ohne Code in Form und Modul - seien Sie 3 Punkte. Fügen Sie die erforderlichen Informationen zum Dokument hinzu und zeigen Sie sie im Formular an, ohne Eingaben und Überprüfungen zu verarbeiten. Lassen Sie es 2 Punkte sein. Usw.
Es ist wichtig, dass das Team diese Anker selbst auswählt, ihnen zustimmt und sie in Zukunft verwendet. Schätzungen sind relativ und Anker spielen die Rolle von Ausgangspunkten.
Jetzt werden alle unsere Aufgaben in physischen Einheiten gemessen - Punkten. Wir wissen, wie viele Punkte in einer Woche, einem Monat, einem Jahr usw. erzielt wurden. Wir wissen, wie viele Punkte jeder Programmierer produziert. Wir sehen deutlich, wie viele Punkte ungelöste Aufgaben "wiegen".
Vor allem aber kennen wir die Effektivität als das Verhältnis von Punkten zu Stunden. Es ist natürlich einfacher, Punkte pro Tag zu zählen.
Ein Programmierer produziert 4 Punkte pro Tag, ein anderer - 8, der dritte - 2. Letzte Woche haben wir 50 Punkte gemacht, diese Woche - 80, was bedeutet, dass unsere Effizienz gestiegen ist.
Das Ziel der Effizienzsteigerung wird auch deutlich: Wir müssen lernen, mehr Punkte pro Zeiteinheit zu produzieren. Wie wir wissen, unterliegt die Zeit nicht unserem Einfluss, aber die Anzahl der aufgelösten Punkte ist immer noch wie. Genau das werden wir weiter studieren.
Punkte ist ein Schlüsselkoordinatensystem, das in der weiteren Präsentation verwendet wird. Dies ist ein Muss, der nicht übersprungen werden kann. Es ist wenig sinnvoll, einige andere Methoden einzuführen, bis die Punkte berechnet sind. Verstehst du warum?
Weil Sie die Wirksamkeit der angewandten Methoden nicht bewerten können. Wie kann man verstehen, dass es besser oder schlechter ist, keine Zahlen zu haben? Auf keinen Fall bleibt nur eine Fantasie. Ein auf Fantasien und Illusionen basierendes Management ist natürlich weit verbreitet, eignet sich jedoch nicht zur Steigerung der Effizienz.
Ich verrate Ihnen ein kleines Geheimnis: Durch die Implementierung eines Systems zur Bewertung von Aufgaben in Punkten können Sie bereits die Effizienz des Programmierteams steigern. Manchmal sogar zweimal habe ich diese Hypothese mehrmals getestet.
Der Grund ist einfach - es gibt echte Transparenz. Illusionen verschwinden, bloße Zahlen bleiben. Zusammen mit den vom Kunden bezahlten Stunden erhalten Sie ein ziemlich leistungsfähiges System zur Leistungsverfolgung. Menschen, die ihre Zahlen gesehen haben, werden selbst besser arbeiten, weil sie sich nicht mehr hinter der Uhr verstecken können.
Notieren Sie daher unverzüglich die Aufgaben in Ihrem System in Punkten. Dies ist überhaupt nicht schwierig, insbesondere wenn Sie ein System auf der 1C-Plattform verwenden. Fügen Sie dem Metadatenobjekt, in dem Ihre Aufgaben gespeichert sind, einfach ein Zahlenfeld hinzu. Schreiben Sie ein paar Berichte über ein Punktesystem - wie viele Probleme wurden gelöst, von wem, wann, wie viele wurden nicht in die Arbeit aufgenommen, wie viele warten auf die Annahme durch den Kunden usw.
Zusammenfassung
- Wenn Sie Aufgaben nur in Stunden messen, haben Sie nicht die Möglichkeit, die Effizienz zu steigern.
- Es ist besser, Aufgaben in physischen Einheiten zu messen - Punkte;
- Es ist besser, Punkte mit der Team-Poker-Planung zu implementieren.
- Wenn dem Team das Bewertungssystem klar wird, können Sie einer Person eine Bewertung geben.
- Das Scoring vermittelt ein Verständnis der Effektivität.
- Punkte müssen automatisiert werden.