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.