Christof Ebert: Risikomanagement kompakt

Christof Ebert: Risikomanagement kompakt
Christof Ebert: Risikomanagement kompakt

Ein Buch das im Titel das Wort kompakt trägt darf kurz, knapp und präzise sein.
Christof Eberts Werk zu Thema Risikomanagement in IT- und Softwareprojekten erfüllt alle drei Kriterien.

Das Buch beginnt mit einem Zitat von Tom Gilb zum Thema Risiken, welches dem geneigten Leser ein Schmunzeln ins Gesicht zaubert. Der Autor hat den Anspruch, einen Einstieg und eine Übersicht zum Thema Risikomanagement zu liefern, was ihm auch gelingt. Das Buch beginnt mit einem recht trockenen Kapitel zur Frage was Risiken und Unsicherheiten überhaupt und insbesondere bei IT- und Software-Projekten sind. Darauf folgt jeweils ein Kapitel zu den Themen Identifizieren, Bewerten, Abschwächen und Verfolgen von Risiken. Zwei abschließende Kapitel widmen sich den Fragen der Risikostrategie und einigen allgemeinen Tipps.

Trotz der Kompaktheit des Buches gelingt es dem Autor, jede Menge hilfreiche Checklisten unterzubringen und beinahe sämtliche Standards und Vorgehensmodelle zum Thema Risikomanagement zu erwähnen. Sehr hilfreich sind auch die Hinweise zu weiterführender Literatur.

Leider ist der Schreibstil etwas zäh, so dass es Disziplin erfordert, das Buch komplett zu lesen. Länger als die knapp 140 Seiten hätte es nicht sein dürfen.

Fazit: Ein nützlicher Einstieg ins Thema Risikomanagement bei dem die Würze in der Kürze liegt. Muss man nicht gelesen haben, wenn man weiterführende Werke kennt.

Kent Beck: Test Driven Development by Example

Kent Beck: Test Driven Development by Example
Kent Beck: Test Driven Development by Example

Wer mit Test-Driven Development beginnen möchte, kommt um Kent Becks Buch nicht herum. Es langweilt nicht mit Theorie, wie es laufen sollte, sondern zeigt an drei sehr klaren Beispielen in Java und Python, wie Test-Driven Development funktioniert.

Im ersten Teil wird anhand des berühmten Money-Beispiels gezeigt, wie Test-Driven Development zu gutem Design und klaren Strukturen führt. Dabei entspricht das Ergebnis den Clean Code-Prinzipien, ohne dass man als Entwickler explizit darüber nachdenken muss. Kent Beck zeigt, wie man mit Test-Driven Development Design-Entscheidungen trifft, Refactorings durchführt und den Mut findet, einen Schritt zurück zu gehen, wenn eine Entscheidung sich als nicht mehr optimal herausstellt, weil sich die Anforderungen geändert haben.
Als Sprache für den ersten Teil kommt Java zum Einsatz und – natürlich – JUnit als Framework für die Tests.

Der zweite Teil zeigt am Beispiel von Python, wie man ein xUnit-Framework mit Test-Driven Development erstellen kann. Es lohnt sich, dieses Kapitel zu lesen, wenn man sich eine Vorstellung davon machen möchte, wie Test-Driven Development unter schwierigen Bedingungen funktioniert. Große Kenntnisse in Python sind ebensowenig erforderlich, wie Kenntnisse in Java für den ersten Teil.

Abgerundet wird das Buch mit einem dem Thema Pattern gewidmeten dritten Teil. Sämtliche Pattern werden im Umfeld des Test-Driven Development angewendet, wobei Kent Beck unterscheidet zwischen Test Pattern und Pattern für die Implementierung, die das Testen lediglich vereinfachen. Es ist interessant, dass Kent Beck in diesem Teil z.B. Mock Objects auf ein Pattern reduziert. Eingefleischte Fans von Mock Objects werden sich da sicherlich ungerecht behandelt fühlen, aber aus der Perspektive des Buches ist die Reduzierung an dieser Stelle sicherlich valide. Beispiele für Pattern zur Implementierung sind das Value Object, das Null Object oder die Factory Method.

Für diese und weitere Pattern gibt Kent Beck Empfehlungen dazu, ob sie beim Schreiben von Tests oder beim Refactoring sinnvoller einzusetzen sind. Den Abschluss des dritten Teils bilden Kapitel über Pattern zum Refactoring und zum Meistern von Test-Driven Development.

Der Stil des Buchs ist außergewöhnlich. Kent Beck schreibt, als würde er in einer Pair Programming Session neben einem sitzen. Das irritiert zu Beginn, hilft aber ungemein in das Thema zu finden. Das Buch ist dadurch extrem locker geschrieben und schnell gelesen. Die Code-Beispiele sind sehr gut verständlich.

Fazit: Wer mit Test-Driven Development beginnen möchte, muss dieses Buch gelesen haben. Für Fortgeschrittene ist es zu trivial.