Disziplin der Softwareentwicklung

vier moralische Werte

Kommunikation
Probleme in Projekten können immer auf Fehler in der K. zurückgeführt werden
Einfachheit
"Was ist die einfachste, funktionierende Lösung?"
Rückkopplung
zusammen mit K. & E. weiß man, was zu testen ist.
Mut
z.B. Code wegzuschmeißen, oder Alternativen zu implementieren

Prinzipien

Schnelle Rückmeldung
Zeit zwischen Aktion und Rückmeldung ist kritisch beim Lernen
Unterstellte Einfachheit
Löse heutige Probleme heute und die zukünftigen in der Zukunft und nicht wie gelernt, alles im Vornherein
Inkrementelle Änderungen
Problemlösung durch kleinste Änderung die eine Unterschied macht
Qualitätsarbeit
selbstverständlich nur das beste

asymptotische Änderungskostenkurve

Basisaktivitäten der Softwareentwicklung

Codieren
Artefakt der Softwareentwicklung für alle Bewandnisse
Testen
Tests sagen, wann man fertig ist - wenn der Test erfolgreich läuft ist man für den Moment fertig. Wenn einem kein Test, der schiefgehen könnte, mehr einfällt, ist man komplett fertig. Tests sind Resourcen und Verantwortung zugleich
Zuhören
Programmierer wissen nichts und schon gar nichts darüber, was Geschäftsleute für interessant halten. Deshalb müssen sie fragen, um die Antworten der Tests mit den erwarteten vergleichen zu können oder  auch um einige ungewöhnliche Fälle aus Geschäftssicht zu erfahren
Gestalten
Gestalten kreiert eine Struktur, die die Logik eines Systems organisiert. Ein guter Entwurf organisiert die Logik so, daß Änderungen an einem Teil des System nicht Änderungen an einem anderen nach sich ziehen. Gutes Gestalten gibt jedem logischen Teil genau ein Zuhause, legt die Logik nahe an die Daten auf denen sie operiert und erlaubt Erweiterungen des Systems durch Änderungen an nur einer Stelle.

Praktiken, Strukturierung der Aktivitäten

Planspiel
Kleine Ausgaben
Metapher
Einfacher Entwurf
Testen
Überarbeitung(refactoring)
Paarweise Programmierung
Gemeinsames Eigentum
Kontinuierliche Integration
40-Stunden Woche
im Haus Kunde
Codierungsstandards