Skill Stufen
Es werden verschiedene Skill-Stufen unterschieden, angelehnt an die japanische Metapher Shu-Ha-Ri. Das ist vergleichbar mit den Lehrling-Geselle-Meister Stufen.
"Shu: Lernen der Grundlagen, Regeln und Heuristiken. In dieser Stufe gibt es einen Meister und vorgegebene Regeln, die der Lehrling lernt, anzuwenden.Ich hatte in der Vergangenheit immer folgendermaßen unterschieden:
Ha: Die Regeln sind in Fleisch und Blut übergegangen, man konzentriert sich auf die Ausnahmen, hinterfragt die Regeln und entwickelt seinen eigenen Stil.
Ri: Es gibt keine isolierten Regeln mehr, alles ordnet sich in einen natürlichen Fluss ein."
Stufe 1 (Lehrling): Ausführung nur unter mehr oder weniger intensiver Anleitung (vergleichbar mit "Shu").
Stufe 2 (Geselle): Ausführung eigenständig; gemäß Lehrbuch (oben noch "Shu"). Man kann halt schon programmieren, aber "nur" genau so, wie man es gelernt hat. Es ist sehr wichtig lange genug genau so zu programmieren, wie man es im Lehrbuch gelesen hat! Dazu ein Zitat von Ron Jeffries: "My advice is to do it by the book, get good at the practices, then do as you will. Many people want to skip to step three. How do they know?"
Stufe 3 (erfahrener Geselle): Ausführung eigenständig; pragmatische, effiziente Arbeitsweise (oben "Ha"). Nach jahrelanger Praxis, kann man (das was man erlernt hat) nun selber bewerten. Man verwendet viele wiederverwendbare Bibliotheken zur Effizienzsteigerung und bricht auch mal (kontrolliert) Regeln, weil man vielleicht ein anderes Ziel erreichen möchte (Beispiel: Anpassbarkeit vs. Performance) oder weil die Rahmenbedingungen nicht idealtypisch sind (Beispiel: es gibt keine fachlichen Anforderungen).
Stufe 4 (Meister): Man kann andere anleiten (oben "Ri").
In dem Artikel wird weiter zwischen harten und weichen (sozialen) Skills unterschieden.
Harte Skills
Zu den wichtigsten technischen Fähigkeiten eines agilen Entwicklers gehören laut den Autoren:
- die Regeln über Clean Code (Uncle Bob)
- Refaktorisieren (Martin Fowler)
- Test Driven Development und die Weiterentwicklung: Acceptance Test Driven Development
- Versionskontrolle (CVS, Subversion, GIT etc.)
- Continuous Integration
- Objektorientierte Analyse- und Design (Grady Booch)
- Design Patterns (Erich Gamma)
- Design Principles and Patterns (Robert Martin)
Soft Skills
Im Artikel werden vor allem folgende Soft-Skills betont:
- Fähigkeit zur Teamarbeit
- Aktives Zuhören (den anderen durch nachfragen verstehen wollen)
- Fragen (vor allem: nach Hilfe und Hilfeleistung)
- Argumentieren (seine eigene Sicht in die Diskussion einbringen und vertreten)
- Respekt: die Meinung des anderen ist auch legitim ...
- Vertrauen untereinander (nicht: Fehler nur kritisieren, Schuldzuweisungen)
- Phasen der Gruppenarbeit kennen und durchleben wollen (Forming, Storming, Performing)
- Omnisophie (Gunther Dück)
- Miteinander Reden (Friedemann Schulz von Thun)
Skills entwickeln
Das geht gemäß Artikel wie folgt:
- Bücher lesen
- Wikis, Communities, und Blogs besuchen und gestalten
- Konferenzen besuchen
- Eigene Blogs schreiben
- Lernen in Retrospektiven im eigenen Team
- Pair Programming
No comments:
Post a Comment