banner

Sie sind hier

Agiles Code Design - Wie bleibt Code flexibel?

Track: 
Main Track (Agile Reengineering)

Agile Prozesse ermöglichen uns jederzeit auf geänderte Kundenwünsche einzugehen. Aber was ist schief gegangen wenn plötzlich die Entwickler sagen, dass sie das neue Feature nicht mehr in vernünftiger Zeit einbauen können?

Agile Softwareentwicklungsmethoden wie Scrum und Kanban führen zu neuen Herausforderungen bezüglich Architektur und Design von Software. Quellcode muss auf eine Art strukturiert sein, dass Änderungen an den Anforderungen bei gleichbleibender hoher Qualität und Entwicklungsgeschwindigkeit eingearbeitet werden können.

Prinzipien wie SOLID, Modularität, Loose Kopplung, Dependency Injection und Praktiken wie Akzeptanztest- und Test-getriebene Entwicklung ermöglichen uns ein veränderbares Design

Durch diese Flexibilität wächst die Architektur Funktionalität um Funktionalität zusammen mit den Kundenanforderungen.

Relevanz

Entwickler: Der agile Entwickler ist auch der Designer seiner Software. Ohne das Bewusstsein, dass das Design auf langfristige Entwicklungsgeschwindigkeit und Qualität optimiert werden muss, geraten Projekte schnell ins Stocken und Ertrinken in einer Unmenge an Technical Debt.

Architekt: Als Leader des Teams bezüglich Architektur und Design, muss der Architekt Schwerpunkte setzen bezüglich Verwendung von Modulen, Looser Kopplung, Dependency Injection und auch Praktiken einvordern, welche eine evolvierbare Architekur ermöglichen.

Projektmanager: Nur wenn neben dem gewählten Prozess auch der Quellcode agil bleibt und ohne Zusatzaufwände erweitert und verändert werden kann, ist langfrisitg ein Eingehen auf neue und geänderte Kundenwünsche möglich.

Vortragsfolien: 
Referenten: 
Firma: 
bbv Software Services
Biografie: 

Dipl. Inf. Ing. ETH, Certified Scrum Master,
Senior Software Architect, bbv Software Services AG

Urs Enzler hat an der ETH Zürich Informatik studiert. Er ist Software Architekt und Consultant bei bbv Software Services AG. Seine Schwerpunkte liegen in der agilen Softwareentwicklung (Scrum, Kanban) und Test Driven Development (TDD/ATDD).

Er bloggt auf www.planetgeek.ch und www.bbv.ch/blog