So organisieren Sie die effektive Arbeit eines verteilten Layout-Teams

Hallo allerseits! Mein Name ist Roman und ich werde heute meine Erfahrungen in einem verteilten Layout-Team teilen. Ich erzähle Ihnen von den Prozessen, die wir aufgebaut haben, und wie ein Team von vier Personen den Bedarf für das Layout einer gesamten Einheit abdeckt, die aus über 30 Produkten und über 20 Produktteams besteht.


So organisieren Sie die effektive Arbeit eines verteilten Layout-Teams

Ich werde auch darüber sprechen, wie:


  • Überwachen Sie die Arbeit eines verteilten Teams.
  • Code-Konsistenz in verschiedenen Projekten erreichen;
  • Aufgaben fair verteilen;
  • Pflegen Sie qualitativ hochwertige Arbeit;
  • Sammeln Sie keine unvollendeten Aufgaben;
  • Burnout zu verhindern und Mitarbeiter zu entwickeln.

Anstatt mitzumachen


Ich denke, es lohnt sich, sofort zu erklären, warum wir in Tinkoff Business engagierte Layout-Designer haben. Schließlich ist man der Meinung, dass sich jeder Webentwickler gut auskennen sollte.


In vielen Unternehmen setzen sich alle Entwickler selbst. Aber erstens setzen nicht alle Entwickler gerne und machen das ganz gut. Zweitens hat für den Entwickler das Layout nicht immer eine hohe Priorität, der Fokus wird auf den Code verlagert. Und wenn es keinen Fokus gibt, leidet die Qualität und Einstellung zum Detail.


Aus diesem Grund haben wir engagierte Layouter, die jedoch keinem bestimmten Projekt zugeordnet sind, da nicht alle Projekte jederzeit Layoutaufgaben bereitstellen können.


Wie war es vorher


Bisher war der Vorgang recht einfach.


In meiner Einheit gab es vier Schriftsetzer und einen speziellen Chatroom, in dem alle Interessierten Rätsel für das Layout lösten, und wir sortierten sie langsam. Im Allgemeinen funktionierte das System, aber es gab natürlich auch Nachteile.


Beispielsweise könnte eine Aufgabe ausgelöst werden, aber keiner der Setzer hat auf die Nachricht geantwortet. Der Autor der Aufgabe begann wieder im Chat zu schreiben - sie sagen, wer wird die Aufgabe übernehmen? Außerdem gab es keine Planung und kein Verständnis dafür, wer was tat, wann er freigelassen wurde und in welche Projekte er vertieft war.


Damit die Nachrichten der Autoren nicht unbeantwortet bleiben, selbst wenn alle beschäftigt sind, begann ich, alle Nachrichten zu beantworten und mich zu fragen, wer in der Lage sein wird, diese oder jene Aufgabe zu übernehmen. Gleichzeitig hat er festgelegt, wer an welchen Projekten beteiligt ist, wer welche Aufgaben am besten kennt. Es dauerte ungefähr einen Monat, das System begann besser zu funktionieren - eine sofortige Reaktion auf Aufgaben, die die Kunden vollkommen zufriedenstellten.


Dieser Ansatz hat zwar noch nicht viele Fragen beantwortet. Zum Beispiel war es schwierig, die Belastung vorherzusagen, es gab keine Einheit in den Ansätzen, es gab keine Art von Planung, jeder war für sich und löste unabhängig sein Problem. Neben dem Chat gab es keinen einzigen Einstiegspunkt in das Layout, es gab niemanden, der mit dem neuen Projekt diskutierte, um das Design zu bewerten, da nicht klar ist, wer wann daran arbeiten wird.


Bei einem der Treffen mit dem Leiter haben wir beschlossen, ein neues Layout-Team aus allen Layout-Designern zusammenzustellen, mit denen wir Aufgaben geteilt haben, um Prozesse zu erstellen und das Layout für alle Projekte bereitzustellen.


Hier ist was dabei herausgekommen ist.


Ein Team aufbauen


Gegeben: vier Setzer aus verschiedenen Städten und sogar Ländern. Über 30 Projekte auf demselben Stapel, aber aufgrund der Art der Projekte, oft mit unterschiedlichen Architekturen, unterschiedlichen Versionen des Designs und der Komponenten, unterschiedlichen Entwicklungsteams, die manchmal ihre Ansätze üben.


Zunächst haben wir einen privaten Chat nur mit Layout-Designern erstellt. Auf diese Weise können Sie Teamprobleme schnell lösen, wenn Sie nicht viel Dringlichkeit benötigen, und Sie können immer eine Frage stellen, Ihre Kollegen um Hilfe bitten oder Ihre Arbeit überprüfen.


Kontrolle


Wie kann man die Arbeit der Mitarbeiter kontrollieren, wenn sie nicht neben ihnen sitzen?


Im Allgemeinen gibt es verschiedene Arten der Kontrolle, je nach Qualifikation und Vertrauensniveau des Mitarbeiters. Ich werde nicht im Detail auf sie eingehen, Sie selbst werden alles lernen.


Ich hatte Glück - alle Jungs waren gleich gut und hatten standardmäßig 100% Selbstvertrauen. Daher wurde das System weniger zur Steuerung als vielmehr zum Synchronisieren von Aktionen und zum Verstehen des Gesamtbildes benötigt. Zu diesem Zweck haben wir tägliche Vormittagstelefonate mit einer Länge von bis zu 10 Minuten eingeführt, in denen alle sagten, was sie gestern getan haben und was sie heute tun würden.


Diese Phrasen dienen nur zur Synchronisation durch Aufgaben und Projekte, sie implizieren keine Analyse von Problemen, Schwierigkeiten, Holivars oder anderen Problemen - all dies wird, falls erforderlich, in separaten Phrasen oder Diskussionen im Chat eingereicht. Es ist sehr wichtig, dies zu überwachen und alle Versuche zu unterbinden, den Anruf an ein stundenlanges Gespräch über das Wetter weiterzuleiten.


Code-Konsistenz


Wir erhalten Aufgaben aus völlig unterschiedlichen Projekten mit unterschiedlichem Code und unterschiedlicher Qualität. Daher musste für alle Projekte unabhängig von den Quelldaten ein einheitliches Layout auf hoher Ebene bereitgestellt werden. Zu diesem Zweck haben wir in allgemeinen Diskussionen und Abstimmungen Regeln und Richtlinien für das Layout entwickelt, die wir in unserem Team strikt einhalten und für alle anderen empfehlen. Sogar die Reihenfolge der Eigenschaften wird registriert.


Ja, wenn Sie eine CSS-Eigenschaft mit einer Farbe über der Breite schreiben, erhalten Sie einen Kommentar und Ihre PR wird nicht abgeblendet. Dies mag merkwürdig erscheinen, da in den meisten Fällen die Reihenfolge der Eigenschaften keinen Einfluss auf das Endergebnis hat, aber wir erinnern uns: Viele Projekte, ein einziges hohes Qualitätsniveau. Daher müssen wir die maximale Reihenfolge haben. Überall. Auch die Reihenfolge ist in der Reihenfolge der Eigenschaften.


Ich muss sofort sagen, dass es eine gute Idee war, die Bestellung zu korrigieren. Es ermöglicht Ihnen, strukturierteres und durchdachteres CSS zu schreiben. Beispielsweise gibt es eine Regel zum Gruppieren von Eigenschaften. Wenn Sie display: flex schreiben, sollten alle zugehörigen Eigenschaften (align-items, justify-content) nebeneinander beschrieben werden, um das Verständnis der Vorgänge zu erleichtern.


Jetzt kommen wir nach und nach zu dem Schluss, dass wir alle Regeln in die Linters aufnehmen, um die Anzahl der unkritischen Kommentare zu der Überprüfung zu verringern und den Überprüfern zu ermöglichen, sich auf wirklich wichtige Dinge zu konzentrieren, z. B. Architektur.


Übrigens, unsere Linter-Konfigurationen sind gemeinfrei, vielleicht sind sie für Sie nützlich. Konfigurationen herunterladen .


Aufgabenverteilung


Die Kommunikation ist also hergestellt, die Spielregeln sind festgelegt, aber wie spielt man? Warum erledigt Vanya nur einfache Aufgaben und Pete wird kompliziert, und das sogar aus einem Projekt, an dem schon lange niemand mehr beteiligt war?


In der Tat gibt es Projekte, die:


  • ständig brauchen Layout;
  • ständig brauchen Layout und alles ändert sich ständig;
  • die vor langer Zeit geschrieben wurden und sich wieder zu entwickeln beginnen.

Dies wirft eine andere Frage auf: Wie können Aufgaben gleichmäßig und gerecht verteilt werden?


Ist Gerechtigkeit notwendig?


Sie können die Verwaltungsressource verwenden und genau sagen: "Petja, Sie erledigen diese Aufgaben, niemand mag sie, aber im Moment nehmen wir diese interessanten mit Wanja."


Dies ist natürlich möglich und wird für einige Zeit sogar funktionieren. Dies hat jedoch mehrere Nachteile:


  1. Petya fängt an, uns ein wenig zu mögen, was bedeutet, dass er weniger in die Teamarbeit involviert ist.
  2. Petya könnte eines Tages verbrennen und aufhören, ohne vorher gewarnt zu haben, und wir werden ein Loch in unseren Ressourcen haben;
  3. Petya hatte das größte Fachwissen in komplexen Projekten, und jetzt wird jeder der verbleibenden viel Zeit benötigen, um Petits Projekte zu verstehen.

Es scheint, dass Sie dies nicht tun sollten. Aber was tun?


Zuerst müssen Sie mehrere Gruppen auswählen, nach denen Sie alle eingehenden Aufgaben aufteilen können.


Für uns sieht es ungefähr so ​​aus.


Die Projekte A, B und C generieren ständig Hunderte von Aufgaben und sind bereit, uns Arbeit für das kommende Jahr zu liefern. Und es gibt andere Projekte, die alle paar Wochen ein oder zwei Aufgaben haben. Aufgrund von Ressourcenbeschränkungen sind wir uns einig, dass eine Person ständig an den Projekten A, B und C arbeitet und die vierte Person alle Aufgaben aus anderen Projekten übernimmt. Es scheint, dass alle Ressourcen verteilt sind, können Sie arbeiten.


Aber auch hier stoßen wir auf ein Problem, wenn eine Person, die ständig an Projekt A arbeitet, keine Ahnung hat, was in Projekt C passiert.


Um dieses Problem zu lösen, haben wir einen zweiwöchigen Dienst eingeführt.


Von Montag an und in den nächsten zwei Wochen arbeitet Petya an Projekt A, geht dann zu Projekt B und dann zu Projekt C - also wechselt er regelmäßig seine Aktivitäten.


Es sieht ungefähr so ​​aus:


VanyaPetjaMischaAndrej
Projekt A1. und 2. Woche3. und 4. Woche5 und 6 Wochen7 und 8 Wochen
Projekt B3. und 4. Woche5 und 6 Wochen7 und 8 Wochen1. und 2. Woche
Projekt C5 und 6 Wochen7 und 8 Wochen1. und 2. Woche3. und 4. Woche
Projekt D7 und 8 Wochen1. und 2. Woche3. und 4. Woche5 und 6 Wochen

Was gibt uns das? Erstens kennen sich alle gleich gut in allen Projekten aus und können sich leicht gegenseitig ersetzen. Zweitens gibt es interessantere Projekte, und dies ist ihre Lieblingsaufgabe, die zusätzlich motiviert, Kraft gibt und nicht zulässt, aus derselben Arbeit herauszubrennen.


Um manuelle Regelungen aufzuheben, haben wir uns darüber hinaus darauf geeinigt, dass das Projekt selbst die Priorität für die Arbeit festlegt. Das heißt, wir wählen die Person aus und sie führt die Aufgaben aus, die das Projekt gibt. Dies ist sehr praktisch: Wir müssen das Team nicht priorisieren und über die Reihenfolge nachdenken. Dies übernimmt das Projekt, sein Team und der Produktmanager.


Stimmt, Sie können das Problem finden. Eine Person versteht die Aufgaben aller Projekte, die unregelmäßig kommen - wer nicht an einem der Hauptprojekte im laufenden Dienst arbeitet.


Es scheint, dass er mit Aufgaben bombardiert werden kann und Kunden von allen Seiten angezogen werden und infolgedessen nicht arbeiten dürfen. Um dieses Risiko auszuschließen, haben wir eine spezielle Seite mit solchen Aufgaben. Wenn die nächste Aufgabe angezeigt wird, wird sie am Ende der Liste hinzugefügt.


Hier ist ein Beispiel für eine solche Seite:


Aufgabenlistenseite

Alle Aufgaben und deren Status sind darauf sichtbar. Der Kunde kann jederzeit den Fortschritt verfolgen und nachvollziehen, wann ungefähr seine Aufgabe zur Arbeit gehen wird.


Natürlich hat jeder die dringendsten Aufgaben und jeder möchte aus der Reihe gehen. Speziell für solche Situationen wurde der folgende Mechanismus erfunden: Wenn der Kunde "in Flammen" steht und seine Aufgabe geben möchte, schneller zu arbeiten, muss er sich mit jemandem einigen, der auf der Liste über ihm steht. Wenn er bereit ist, seinen Platz zu vergeben - kein Problem, tauschen Sie die Aufgaben in der Liste aus.


Sie mögen denken, dass dies eine ziemlich schwache Stelle ist und uns füllen sollte, aber seit sechs Monaten funktioniert es.


Natürlich können die Situationen anders sein, aber niemand hat manuelle Regulierung und administrative Ressourcen gestrichen;)


Qualitätskontrolle


Jeder macht Fehler. Ich habe noch keinen einzigen Entwickler oder Layouter gesehen, der sich nie geirrt hat. Wie kann man die Anzahl solcher Fehler minimieren?


Zu diesem Zweck wenden wir die Praxis der Entwurfsprüfung aktiv an. Was beinhaltet es?


Wenn die Arbeit am Layout abgeschlossen ist, ruft der Layouter den Designer auf und zeigt ihm das Ergebnis der Arbeit auf seinem Bildschirm. Auf diese Weise können Sie mehrere Probleme gleichzeitig lösen:


  1. Der Designer kann so schnell wie möglich sowohl den Fehler des Layoutdesigners als auch seinen eigenen Fehler erkennen, wenn sich eine Ungenauigkeit in das Layout eingeschlichen hat.
  2. Beheben Sie umgehend Probleme wie "Wie soll es angezeigt werden, wenn Sie den Mauszeiger bewegen oder sich konzentrieren?". Es sei denn natürlich, diese Bedingungen waren nicht in der Konstruktion berücksichtigt.
  3. Und ein großes zusätzliches Plus: Der Designer kann feststellen, dass das Ergebnis nicht optimal aussieht, und Änderungen online vornehmen.

Gleich zu Beginn der Umsetzung dieser Praxis befürchteten wir, dass die Arbeit verlangsamt würde, weil:


  • der Designer ist nicht an seinem Platz;
  • Der Designer ist krank und niemand weiß Bescheid.
  • Während der Überprüfung entschied sich der Designer, das Layout vollständig zu ändern.

In der Praxis hat dieser Ansatz jedoch gut funktioniert, und wir haben ihn bei den meisten Projekten umgesetzt.


Rückblick


Wir haben unser Layout-Team gut gepumpt, Sie können an die Arbeit gehen! Aber nein, da ist noch eine Sache. Wir haben die Praxis der gegenseitigen Überprüfung übernommen.


Das bedeutet, dass jeder Ihre PRs überprüfen und Kommentare dazu hinterlassen kann. Nur, um ehrlich zu sein, viele Entwickler möchten nicht in die Layout-Überprüfung eintauchen und sind bereit, das "ohne zu schauen" nach oben zu stellen - wenn nur das Layout so schnell wie möglich vorbeikäme und sie mehr Logik schreiben könnten.


Um dies zu verhindern, haben wir eine Regel: Jeder Layout-Designer muss alle Layout-Designer zu all seinen Pool-Anfragen hinzufügen.


Und PR kann nicht eingefroren werden, wenn Sie nicht mindestens ein Upruv von einem anderen Schriftsetzer erhalten haben. Nicht schlecht, aber anscheinend besteht die Gefahr von Verkehrsstaus in Form einer großen Anzahl von PRs, da Mitarbeiter den Code von Kollegen unangemessen anzeigen können, was die Arbeit verlangsamt.


Um dies zu verhindern, möchten wir Sie daran erinnern, dass Sie zweimal täglich um 10:00 und 15:00 Uhr eine Überprüfung unserer Kollegen durchführen müssen. Und wenn Sie sich verstecken, sehen Sie, wie viele PRs auf Ihre Analyse warten.


Beispiel für eine Überprüfungserinnerung

Wir versuchen, diese Zahl auf ein Minimum zu beschränken. Hierfür gibt es eine andere Regel für eine gute Überprüfung. Wenn Sie die PR bis zum Ende durchgesehen haben, gibt es keine Konflikte und es gibt keinen Status „In Arbeit“ - dies bedeutet, dass Sie eine Reaktion haben müssen: entweder „Auf“ oder „Zur Überarbeitung“. Wenn Sie Kommentare hinterlassen, aber Ihre Position nicht angegeben haben, bedeutet dies, dass Sie die PR nicht vollständig verfolgt haben.


Außerdem besteht eine zusätzliche persönliche Verantwortung für die Poolanfragen. Was bedeutet das?


Sie haben das Layout erstellt, alles entspricht dem Layout, alles ist schön, aber es gibt keine Funktionalität. Und es ist unmöglich, so etwas ins Essen zu rollen. Sie können sich also nicht einfrieren. Und Sie haben offene PR, es gibt Aruvs und es scheint, dass Sie Ihren Job gemacht haben. Außerdem kommt der Entwickler zu Ihnen und sagt: "Warten wir ein paar Tage, ich lade die Logik direkt in Ihre Filiale hoch - und arbeite sofort an der Funktion und sie ist relegierbar?" Aber nein! Also klappt es nicht. Und das sollte es nicht.


Die Arbeit gilt erst dann als beendet, wenn Ihre PR mit Layout nicht gelöscht wurde. Was ist in einer solchen Situation zu tun? Ja, es ist sehr einfach: Der Entwickler erstellt einen eigenen Zweig, in dem er Logik schreiben möchte, und wir ahmen das Layout in seinem Zweig nach. Profit


Jeder Setzer überwacht unabhängig seine PR-s und geht auf solche Situationen ein: Wenn es keinen Ort zum Einfrieren gibt, werden Builds nicht gesammelt, und das Unternehmen hat beschlossen, den Starttermin zu verschieben und so weiter. Seine Arbeit wurde nicht abgeschlossen, bis PR tot ist.


Von Zeit zu Zeit führen wir eine telefonische Umfrage durch: Wer hat wie viele offene PRs und wie viele PRs müssen überprüft werden? Die Zahlen sind durchweg kleiner als 10, wir bemühen uns, kleiner als 5 zu werden. Solche Umfragen bestätigen, dass die automatischen Erinnerungen im Chat noch funktionieren und die Mitarbeiter darauf reagieren.


Jetzt hat man das Gefühl, dass die Arbeit sehr gut aufgebaut ist, man kann sitzen bleiben und endlos sehen, wie Aufgaben von einem Status auf einen anderen übertragen werden (wir halten uns übrigens strikt daran), aber was ist mit der Entwicklung? Tabellen setzen? Weißt du nicht, dass das Web nicht still steht?


Entwicklung


Damit sich das Team nicht nur in Bezug auf die Fachkenntnisse zwischen den Projekten, sondern auch in Bezug auf die Fähigkeiten weiterentwickeln kann, haben wir eine spezielle wöchentliche Aufgabe namens Green Flag. Wenn Sie diese Woche eine grüne Flagge haben, verbringen Sie täglich Zeit damit, nach nützlichen Informationen zum Satz, zu Ansätzen oder nur zu Technologien zu suchen und Links zu Artikeln in unserem privaten Chat zu werfen. Dies geschieht normalerweise morgens oder unmittelbar nach dem Mittagessen.


Beispiel-Link für einen Chat-Artikel

Informationen werden über Ihre bevorzugten Ressourcen abgerufen, beispielsweise über dasselbe "Habré". Dies ist praktisch genug, weil Sie wissen, dass Ihr Kollege jeden Tag Links zu Top-Artikeln in den Chat wirft und Sie ihn nur am Abend nach der Arbeit lesen müssen.


Es ist erwähnenswert, dass trotz der Tatsache, dass jeder diese Aktivität unterstützt, viele vergessen, es täglich zu tun. Deshalb haben wir auch wöchentlich eine neue Pflicht eingeführt, die die grüne Flagge motivieren soll, unsere Pflichten nicht zu vergessen. Und wenn Sie die grüne Flagge immer noch vergessen, kann der Inspektor die Informationen von sich abwerfen. Interessant, aber dieser Ansatz funktioniert ohne Fehler und manchmal werfen beide Teilnehmer Gültigkeit in den Chat.


Wenn Sie Angst vor der Zahl der Pflicht haben, ist alles nicht so schlimm. Stall ein Mitarbeiter hat eine Aufgabe - das ist das Projekt, an dem er arbeitet. Und in regelmäßigen Abständen wird eine zweite Uhr hinzugefügt - die grüne Flagge oder der Motivator für die grüne Flagge - was eigentlich nur eine Formalität ist.


Zusammenfassung


Also haben wir gerade ein verteiltes und vor allem ein funktionierendes Layout-Team zusammengestellt. Erinnern wir uns, was uns geholfen hat:


  1. Mit dem privaten Chat können Sie alle auftretenden Probleme schnell lösen.
  2. Tägliche Geschäfte helfen Ihnen dabei, den Überblick darüber zu behalten, wer was tut, und das Gesamtbild zu verstehen.
  3. Die festgelegten Arbeitsregeln und deren strikte Einhaltung ermöglichen es, die Konsistenz des Codes in allen Projekten aufrechtzuerhalten.
  4. Zweiwöchige Schichten rund um die Uhr ermöglichen es Ihnen, im Kontext aller Projekte zu sein und eine gerechte automatische Aufgabenverteilung zu gewährleisten.
  5. Mithilfe der Entwurfsprüfung können Sie sicher sein, dass die Qualität des Ergebnisses den Kunden erreicht.
  6. Wir stellen sicher, dass die Überprüfung regelmäßig durchgeführt wird und dass sich die unvollendete Arbeit nicht ansammelt.
  7. Responsible Daily wirft neue Artikel zur Entwicklung in den Chat, diskutiert neue Ansätze und Praktiken, probiert es aus und bewirbt sich.

All dies hilft uns, Aufgaben abzuschließen und das Layout für die gesamte Einheit bereitzustellen. Und welche Aktivitäten sind in Ihren Teams?

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


All Articles