Seit einiger Zeit sind agile Entwicklungsprozesse im Mainstream angekommen. Viele Teams entwickeln Software mit agilen Methoden. Doch reicht es, den Prozess umzustellen? Wie sollen wir spät erkannte Anforderungen in unsere Software integrieren, wenn diese nicht flexibel ist? Wie soll ich nach jedem Commit alles integrieren, wenn schon der Build 3 Stunden braucht? Wie sollen wir nach jedem 2-Wochen-Sprint ausliefern, wenn schon das Testen 4 Wochen dauert?
Die Erfahrung der letzten Jahre hat gezeigt, dass es vielen Scrum-Teams nicht gelingt, Iterations-Ergebnisse mit ausreichend hoher Qualität zu erstellen. Martin Fowler bezeichnete dies als Flaccid Scrum und auch Ken Schwaber gestand ein, dass viele Entwicklungsteams nicht ausreichend mit modernen Entwicklungspraktiken vertraut sind. Zu agiler Entwicklung gehört also mehr, als nur den Prozess umzustellen. Dieser Vortrag zeigt, welche agilen Entwicklungspraktiken helfen, flexible Systeme zu bauen, die leicht änderbar und wartbar sind. Wie sieht der Werkzeugkasten aus, den ein Entwickler im agilen Umfeld benötigt? Welche Techniken und Tools helfen ihm, nach jedem Sprint ein potentiell auslieferbares Produktinkrement zu erstellen?
35. Liskov Substitution Principle
LSP
!
Sei q(x) eine beweisbare
Eigenschaft von Objekten x des
Typs T. Dann soll q(y) für Objekte y
des Typs S wahr sein, wobei S ein
Untertyp von T ist.