Wie man einen "Kult der Qualität" schafft [geschlossen]

21

DeMarco und Lister (Peopleware) schlagen vor, dass Sie innerhalb Ihres Programmierteams einen "Kult der Qualität" schaffen. Es ist frustrierend, dass sie nicht vorschlagen, wie Sie das machen!

Hat jemand irgendwelche Gedanken darüber, wie dies erreicht werden kann?

Craig Schwarze
quelle
1
Ihr "Qualitätskult" wird nur so effektiv sein, wie es die Zeit erlaubt. Wenn der Chef sagt , dass es bis Freitag erledigt sein muss, muss die Qualität aus Geschwindigkeitsgründen gesenkt werden. Offensichtlich ist dies nicht das, was Programmierer bevorzugen. Idealerweise bevorzugen wir Zeit, um Qualität zu gewährleisten!
Invertzucker
1
@WesleyWerner: Guter Punkt. Aber ich denke, dass ein "Kult der Qualität" auch die technische Verschuldung umfassen sollte, die (irgendwann) das von Ihnen erwähnte Boss-Problem lösen wird.
Talonx
@invert: Normalerweise antworte ich in solchen Fällen, dass wir hier eine Situation analog zum CAP-Theorem haben. Wir haben Qualität, Schnelligkeit und Arbeitskraft, und er kann zwei wählen.
JensG

Antworten:

37

Meine Erfahrung ist, dass Entwicklungsteams (aber im Allgemeinen jedes Team) aus drei Arten von Personen bestehen:

  • diejenigen mit einem eingebauten Antrieb für Qualität,
  • diejenigen, die nur für das Geld dabei sind (Bier / Mädchen / was auch immer) und sich nicht weniger dafür interessieren, wie auch immer Sie versuchen, sie zu motivieren,
  • die "mittelmäßigen" (mangels eines besseren Wortes).

Die letzte Gruppe ist die größte, und sie tendieren dazu, der Regierungspartei zu folgen. Wenn es genügend hochqualifizierte Mitarbeiter im Team gibt, können sie die Mehrheit mit sich ziehen, was zu einer starken Aufwärtsspirale in Teamgeist und Motivation führt. Wenn es jedoch zu viele Lockerer gibt, können sie leicht den gegenteiligen Effekt hervorrufen, eine Spirale des Todes.

Die wichtigste Aufgabe für den Manager ist es daher , die richtigen Leute auszuwählen und zu halten und die schlechten so schnell wie möglich loszuwerden . Allerdings nicht die "mittelmäßigen" - sie könnten dazu veranlasst werden, sich zu verbessern, die guten Ideen anderer zu unterstützen, und einige von ihnen könnten sogar selbst zu positiven Trendsettern werden.

[Update2] über Albs Antwort : IMO ist es nicht nötig, dass die Qualitätsentwickler die klare Mehrheit im Team haben (obwohl es nicht schadet :-). Es gibt eine "Trendschwelle" , oberhalb derer die Ansichten und das Verhalten einer Untergruppe schnell zum "Mainstream" innerhalb einer Community werden können , sodass andere Personen aufmerksam werden und anfangen zu folgen. Sie können dies in der Arbeit der größeren Gesellschaft ständig beobachten (z. B. (Nicht-) Rauchgewohnheiten, Gesundheit und Ernährung, Pop-Modeerscheinungen, Bio-Lebensmittel). Meine sehr grobe Schätzung ist, dass es irgendwo um 25-30% liegen kann, aber es hängt von vielen Faktoren ab. Hier können die bösen Menschen sehr weh tun. Selbst ein paar schlechte Leute in Ihrem Team können diese Schwelle erheblich anheben. [/ Update2]

Natürlich ist es nicht immer möglich, genügend Top-Leute einzustellen. Wenn die erste Fraktion nicht stark genug ist, um die Dinge selbst zu steuern, muss das Management ihnen helfen. Ein paar Gedanken dazu:

  • Ich denke, dass Scrum mit Produktdemos eine gute Idee dafür hat. Das Vorführen der von Ihnen implementierten Funktion vor einem Publikum, das nicht nur aus Ihren Teamkollegen, sondern möglicherweise auch aus Entwicklern aus anderen Teams, dem Management und sogar aus Anwendern der App besteht, kann eine enorme Quelle des Stolzes und auch ein starker Faktor sein, der das Team zum Winken bringt.

  • Eine andere Sache ist, dass das Management dem Entwicklerteam ernsthaft in Bezug auf die Qualität zuhört. DeMarco und Lister erwähnen sogar, dass es Unternehmen / Abteilungen gibt, in denen Entwicklerteams ein Veto einlegen, was in die Produktion gehen kann. Wenn sie der Meinung sind, dass die App noch nicht zur Hauptsendezeit bereit ist, können sie die Veröffentlichung verschieben, unabhängig davon, was das Management möchte. Das ist hart für das Management, aber ich kann mir vorstellen, dass es den Teamgeist stärkt und die Botschaft vermittelt, dass Qualität hier wirklich wichtig ist, nicht nur auf der Ebene der Worte.

  • Dies führt zum nächsten Punkt: Um einen "Kult der Qualität" zu schaffen, muss das Management gründlich verstehen, was die meisten erfahrenen Entwickler bereits wissen: Diese Qualität ist kein nachträglicher Gedanke - sie muss von Anfang an in das Produkt eingebaut werden. Daher sollten die Menschen ermutigt (und dafür belohnt) werden, über langfristige Wartbarkeit nachzudenken und nach guten Lösungen zu streben , anstatt nach schnellen .

Aktualisieren

@Machado in seinem Kommentar gab der Frage eine neue Wendung (zumindest für mich):

Was kann ich als Teammitglied und nicht als Manager tun, um die Codequalität meines Teams zu verbessern?

Ein paar Gedanken:

  • Lernen Sie weiter und verbreiten Sie das Wissen an alle, die zuhören. Lernen und verwenden Sie die Best Practices in Ihren Fachgebieten.
  • Sei stolz auf deine Arbeit .
  • Diese beiden werden Sie fast selbstverständlich zu einem positiven Vorbild für andere - insbesondere für Neueinsteiger und Junioren - machen. Seien Sie sich dessen bewusst und nutzen Sie Ihre Rolle zum Wohle des gesamten Teams. Der beste Weg, andere zu beeinflussen, ist ein positives Beispiel.
  • Betrachten Sie nicht nur den Code, sondern den gesamten Prozess der Softwareentwicklung. Stellen Sie immer wieder Fragen und geben Sie Feedback, um den Entwicklungsprozess zu optimieren .

Und zu guter Letzt: Finden Sie einen Ort, an dem Sie ein "Top-Typ" sein können . Wenn Sie gerade in der "mittelmäßigen" Gruppe sind, bemühen Sie sich, sich weiterzuentwickeln - hoffentlich helfen die obigen Ideen dabei. Wenn Sie sich jedoch in Ihrem derzeitigen Team in der "unteren Schicht" befinden, empfehle ich Ihnen, die Gründe zu analysieren. Was demotiviert dich? Schlechte Arbeitsbedingungen? Teamkollegen? Verwaltung? Art von Arbeit? Und was reizt und interessiert Sie? Möglicherweise müssen Sie mit Ihren Kollegen und / oder Vorgesetzten darüber sprechen. Oder Sie müssen sich nach einem besseren Job umsehen - oder sogar nach einem neuen Beruf -, bei dem Sie anfangen können zu glänzen. Es lohnt sich wirklich nicht, einen wesentlichen Teil seines Lebens mit unbefriedigenden oder deprimierenden Aktivitäten zu verbringen.

Es kann auch sein, dass Sie aufgrund externer Faktoren (Mangel an besseren Beschäftigungsmöglichkeiten, Notwendigkeit, die Rechnungen zu bezahlen usw.) gezwungen sind, Ihren derzeitigen, suboptimalen Job fortzusetzen - dies geschieht von Zeit zu Zeit. Versuchen Sie auch in diesem Fall, das Beste daraus zu machen. Qualitativ hochwertige Arbeit zu produzieren (soweit die Umstände dies zulassen), ist eine Belohnung für sich selbst, die dazu beiträgt, Ihr Selbstwertgefühl aufrechtzuerhalten und sich langfristig gesund und offen zu halten. Wenn sich also eine Gelegenheit für etwas Besseres ergibt, sind Sie besser bereit, diese zu ergreifen.

Péter Török
quelle
4
Ein gefährlicher Rat. Was ist, wenn das OP zur 2./3. Gruppe gehört? ;)
1
tolle antwort, so habe ich noch nie darüber nachgedacht, aber es macht so viel sinn.
Alb
9
@Entwickler, wenn sie es wären, würden sie DeMarco und Lister nicht lesen oder die Frage hier stellen.
Alb
Ich dachte, die Frage sei eher aus Sicht der Teammitglieder gerichtet. Wenn das Management wirklich Qualität will, werden sie ihren Top- / Core-Entwicklern zuhören. Was kann ich als Teammitglied und nicht als Manager tun, um die Codequalität meines Teams zu verbessern?
Machado
1
@ Thorbjørn, ausgezeichnete Frage! Ich gebe zu, dass ich dies an den meisten meiner Arbeitsplätze bisher vermisst habe. In der Hoffnung, dass ich nicht zu selbstgefällig klinge, habe ich immer nach Teamkollegen gesucht, zu denen ich aufblicken und von denen ich lernen kann, aber ich habe sie selten gefunden. Also habe ich mich Büchern und dem Internet zugewandt. Soweit es möglich ist, fand ich Vorbilder bei Martin Fowler, Onkel Bob Martin et al. Und in letzter Zeit in der SO Community! Es ist ein großartiger Ort zum Lernen. Auch ein potenter "Reality Check Provider". Die demütigenden Erfahrungen, die Grenzen und Wissenslücken aufdecken, sind zwar schwer zu ertragen, aber für mich sehr gesund.
Péter Török
2

Großartige Antwort von Péter Török, um hervorzuheben, dass Sie dies nur mit der Mehrheit der guten Leute schaffen werden. Wenn Sie gute Leute haben, müssen Sie mehr auf den Karottenansatz als auf den Peitschenansatz abzielen. Befähigen Sie die Entwickler, lassen Sie sie Projekte / Aufgaben übernehmen und fördern Sie den Qualitätswettbewerb. Lassen Sie sich vielleicht kurz vorstellen, wie sie die Qualität von Projekten verbessern. Gute Entwickler werden motiviert sein, ihre Kollegen zu beeindrucken.

Alb
quelle
+1 Gute Punkte zur Motivation. Ich war anscheinend in Bezug auf die Mehrheit unverständlich; Ich habe meine Antwort aktualisiert, um dies zu klären.
Péter Török
2

Zusätzlich zu den Kommentaren von Peter (die eigentlich das Kernproblem darstellen) müssen Sie sicherstellen, dass Qualität kein Merkmal ist, das später hinzugefügt wird.

Genauer:

  • Entfernen Sie alle Spuren des Denkens "Wir werden es später aufräumen". Geben Sie sich stattdessen zu Beginn die Mühe, es richtig zu machen.
  • Es ist erforderlich, dass Änderungen überprüft und durch eine Art QS-Prozess geführt werden, an dem nicht der Entwickler beteiligt ist.
  • Erzwingen Sie Gedanken über Qualität in frühen Phasen von Projekten. Behalten Sie Dinge wie "Wie einfach es für andere ist, dies beizubehalten" während der Entwicklung im Fokus.
  • Verfolgen und melden Sie auftretende Fehler. Wenn es Trends gibt, schauen Sie nach Möglichkeiten, um die Grundursache der Fehler zu bekämpfen.
  • Führen Sie die Gedanken der Software als ein Handwerk, die verbessert werden kann, auf und etwas die Schöpfer stolz sein können.
jzd
quelle
1

Ich würde sagen , dass der beste Weg , um Qualität über Ausgang zu fördern ist. Dies ist eine der Prämissen der Lean-Software-Bewegung (basierend auf Lean Manufacturing). Was ich habe einen langen Blog - Eintrag zum Thema geschrieben Lean dreht sich alles um . Ich sage Ihnen, wie Sie einen Qualitätskult schaffen. Investieren Sie in Ihre Mitarbeiter und lassen Sie sie in Ihrem Unternehmen investieren (nicht finanzielle Investition, sondern eine persönliche Investition).

Dan Rosa gab einen großen Vortrag auf TED über das, was uns antreibt. Während er es nicht ausdrücklich verweisen. Maslows Hierarchie der Bedürfnisse erklärt das beobachtete Phänomen perfekt. Solange der Arbeitgeber die ersten beiden Bedürfnisse anspricht (dh genug Geld zahlt, damit Geld kein Problem darstellt), bleibt nur noch Zugehörigkeit, Achtung und Selbstverwirklichung.

  • Bieten Sie eine solide Gemeinschaft für Zugehörigkeit.
  • Geben Sie ein Umfeld, in dem der Arbeitnehmer fühlt sich frei, Fehler zu machen, so dass sie Wertschätzung aufbauen kann, wenn sie Leistungen zu machen.
  • Hand Ihre Entwickler die Zügel, damit sie die wichtigen Entscheidungen für die Selbstverwirklichung machen

Qualität kann nicht diktiert werden, sondern ist möglich. Vertrauen Sie Ihren Mitarbeitern, dass sie das Beste tun und aus dem Weg gehen. Schließlich musst du ihnen sagen, dass sie gehen müssen. Anstatt sie zu bitten, mehr Stunden einzuplanen

Michael Brown
quelle