Code-Qualität
Unsere Aufgabe ist Software zu produzieren, die das Leben unsere Kunden vereinfacht. Es muss unser Anspruch sein, dass diese Anwendungen eine hohe Qualität besitzen. Leider geschieht es viel zu oft, dass wir aus unterschiedlichen Gründen nur Mittelklasse Software erstellen. Wir sollten uns zum Ziel setzen, hohe Qualität in allen Bereichen zu erreichen, nicht nur die äußeren und sichtbaren Merkmale, sondern auch die innere Qualität der Software muss deutlich erhöht werden, da wo es möglich und sinnvoll ist.
Wie Code aussieht, ist nicht wichtig. Hauptsache es geht. Ich bin diese Aussage leid! Ich halte diese Meinung für obsolet, wenn nicht sogar für gefährlich.
Craft: Die Werkzeugtasche
Es gibt viele Möglichkeiten die innere Qualität unserer Software zu verbessern. Ihr möchtet Beispiele? Natürlich, hier sind einige:
- Four Rules of Simple Design
- Test first, Testautomatisierung, TDD, ATDD, BDD
- Refactoring
- Continuous Integration
- Pair- und Mobprogramming
- Design Patterns und die SOLID Prinzipien
Die Liste ist bei Weitem nicht komplett, es gibt noch viele andere Techniken, Prinzipien und Methoden, die angewandt werden können, um diese innere Qualität deutlich zu erhöhen. Die oben genannte Methode sind momentan unter den Besten, die wir haben und trotzdem werden sie viel zu oft viel zu selten eingesetzt. Warum ist das so? Ich kann mir das nicht erklären. Wir sollten uns damit beschäftigen sie zu erlernen, zu verstehen, wie sie funktionieren und vor allem, warum sie funktionieren.
Autonomie
Weiterhin sollten wir, als Softwareentwickler über die Autonomie verfügen zu entscheiden, was wir tun. Schlagwörter wie Pull-Prinzip oder die 20%-Regel sind das Motto. Auch das Thema Arbeitszeiten ist hier relevant, dass 9 bis 5 Prinzip ist längst überholt. Heimarbeitsplätze und flexible Arbeitszeiten sind hier die Devise. Kreativität erreicht man selten, indem man die Lösungsmöglichkeiten einschränkt.
Weiterbildung
Wir müssen uns weiterbilden. Das ist kein nice-to-have. Ich glaube wirklich daran, dass kontinuierliches Lernen und der Weg zur Meisterschaft, das einzige erfolgversprechende Pfad sind. Selbstverständlich ist Perfektion eine Asymptote, absolute Perfektion kann nicht erreicht werden, aber wir sollten uns so nah wie möglich an ihr herantasten. Wir müssen unsere Fähigkeiten erweitern und verbessern, auch wenn der Weg dahin hart ist und uns vieles abverlangt.
Ziele
Für ein motiviertes Team ist es auch nötig, ein Verständnis dafür zu entwickeln, wozu wir etwas tun und auch das Gefühl zu haben, beitragen zu können. Jeder Mensch braucht Ziele und diese müssen nicht zwingend nur wirtschaftliche Natur sein. Es hat auch viel damit zu tun, wie man miteinander kommuniziert. Die Art und Weise, wie man miteinander umgeht und redet, beeinflusst, wie wir wahrgenommen und verstanden werden.
Fazit
Jeder Mensch erwartet exzellente Qualität von den Produkten, die er bekommt.
Es ist unsere Aufgabe, uns darum zu kümmern, die höchstmögliche Qualität in unsere Produkte einfließen zu lassen. Das bedeutet, sowohl die externen als auch die internen Qualitätsmerkmale zu berücksichtigen. Klarheit, Änderbarkeit, Nutzbarkeit, Zweckdienlichkeit, etc. sind genauso wichtige Eigenschaften, wie Funktionalität und Optik.
Wir brauchen technische Exzellenz und müssen diese auch anwenden, um die Voraussetzungen zu schaffen, in denen die agile Entwicklung seine Versprechen auch einhalten kann.