Agile Programming = AP ist ein Schlagwort, hinter welchem sich Schwerpunkte auf bestimmte Methoden der Softwareentwicklung verbergen:
Individuen und Interaktionen anstelle von aufwändigen Entwicklungs - Prozessen (die typischen Kaffee-Kränzchen und teuren Werkzeugen, deren Eigenschaften sich nicht entfalten können.
Funktionierende Software anstelle umfangreicher Dokumentationen, Powerpoint - Blendwerken.
Mitarbeit des Kunden anstelle riesiger Vertragswerke.
Flexibles Antworten auf Veränderungen anstelle einem Plan zufolgen.
Höchste Priorität haben die Kundenanforderungen durch frühe Veröffentlichung von Versionen zum Testen.
Änderungswünsche sind stets willkommen, auch gegen Ende der Softwareentwicklung. "Agile Softwareentwicklung" hat stets das Softwaredesign im Auge, zugunsten späterer Weiterentwicklung, wie code reuse, refactoring, Wartbarkeit, ...
In kurzen Abständen werden stabile Versionen herausgebracht, um frühzeitig Fehler im Design entdecken zu können, besonders der GUI.
Anwender und Entwickler müssen fast täglich zusammenarbeiten.
Projekte (=Aufgabe für eine Gruppe von Menschen) werden immer nur hochmotivierten Personen anvertraut (weniger motivierte Personen raus, sie rauben den anderen nur Zeit und Begeisterung!!) Man gibt ihnen die Umgebung und Unterstützung, die sie benötigen, und vertraut ihnen, daß sie die Aufgabe lösen.
Die effektivste Methode, Informationen im Team zu verbreiten, ist - Kommunikation - Angesicht zu Angesicht.
Funktionierende Software ist das Maß aller Dinge.
Agile Programming basiert auf kontinuierlicher Entwicklung. Auftraggeber, Entwickler und Anwender werden gleichermaßen in den Prozess einbezogen.
Dauerhaftes Streben nach technischer Brillianz und gutem Design sind Anforderungen, die fester Bestandteil von AP sind.
Einfachheit - die Kunst, mit wenigen Codezeilen maximale Wirkung zu erzielen, also höchste Brliianz ist Maxime von AP. Die Arbeit macht als Programmierer dann sehr viel mehr Freude, Endorphin- Ausschüttung schon beim Code - Lesen.
Die besten Architekturen, Software - Designs, Pattern, entstehen aus der Selbstorganisation des Teams, wobei man jedoch immer beachten sollte, daß man sehr viel Zeit sparen kann, wenn man Strukturen aus ähnlichen OpenSource - Projekten sich genau anschaut, z.B. mit DoxyGen.
Teamleiter halten sich strikt aus der Entwicklung der Design - Patterns heraus, sie haben eh andere Aufgaben.
Regelmäßig trifft sich das Team, um über effizientere Methoden und Designs kritisch nachzudenken, und die eigenen Arbeits/Verhaltensweisen anzupassen.
Sobald ein effizienterer Weg entdeckt ist, wird dieser auch genutzt. Es wird sich später bei der Wartbarkeit der Software enorm auszahlen.
| Zurück | Inhaltsangabe | Weiter |
| Aspektorientierte Programmierung AOP | Extreme Programming |