Heradergrafik

Framework gestützte Software Konzeptions- und Entwicklungsmethodik

Die meisten Schwierigkeiten, die bei Entwicklungsprojekten auftreten, sind auf drei wesentliche Kernprobleme zurückzuführen:

Anforderungen können selten präzise genug beschrieben werden

Dokumente und Diagramme sind immer eine Abstraktion der Realität. Hinzu kommt, dass es selten gelingt, Sachverhalte so zu beschreiben, dass wenig Spielraum für Interpretationen des Lesers entsteht. Missverständnisse und Change Requests sind die Folge. Viele der gängigen Methoden zur Anforderungsbeschreibung sind nur für Techniker lesbar. Die angehenden Endbenutzer werden heute in Form von Workshops häufig in die Entwicklung neuer Systeme einbezogen. Aus den oben genannten Gründen gelingt es jedoch selten, diesen für den Projekterfolg entscheidenden Personenkreis effektiv in die Diskussion einzubinden.

Erste Auslieferungen erfolgen erst in der zweiten Hälfte der Projektlaufzeit

Meilensteinplanungen sehen häufig ein horizontales und seltener auch ein vertikales Prototyping (der sog. Durchstich) vor. Diese Prototypen dienen meist zur rudimentären Abstimmung der Oberflächen und zur Klärung von Fragen der technischen Machbarkeit.

Nach Abschluss der entsprechenden Projektphase erfolgt allerdings häufig eine sehr ausgedehnte Entwicklungsphase ohne Beteiligung des Kunden.

Da der Prototyp zumeist wenig mit der Endanwendung gemeinsam hat, kann dieser nicht zu Schnittstellen-, Last- und fachlichen Tests herangezogen werden. Das gesamte Spektrum der Testabwicklung wird in das letzte Projektdrittel komprimiert. Fehler und Missverständnisse werden spät entdeckt. Die Behebung ist überproportional aufwändig und teuer.

Eine weitere Folge der späten Erstauslieferung ist die damit verbundene geringe Transparenz des Projektfortschritts. Wenn Aufwände/Kosten aus dem Ruder laufen, wird dies sehr spät erkannt. Ein Gegensteuern wird erschwert, da z.B. eine auf einer unscharfen Spezifikation beruhende Lösung zum Zeitpunkt der Auslieferung bereits implementiert und mit dem Gesamtsystem verwoben ist.

Technologie wird in den Vordergrund gestellt und oft unzureichend beherrscht

Entwickler diskutieren gerne über diese oder jene Technologie. Es werden häufig komplexe Framework-Stacks aufgebaut, die in 'Lines of Code' gemessen den eigentlichen Applikationscode um ein Vielfaches übersteigen. Dazu kommt, dass es selten Personen im Team gibt, die diese Komplexität vollständig beherrschen.

Den Endanwender interessiert das nicht. Er möchte eine funktionierendes System.

Diese typischen Fehler werden durch die „Framework gestützte Software Konzeptions- und Entwicklungs-Methodik“ der C1 SetCon vermieden.

Die Methodik basiert auf einem abgewandeltem „Extreme Programming“ Ansatz in Kombination mit massivem Einsatz von Framework Technologien und Softwaregenerierung aus Metadaten. Kleine bis mittlere Entwicklungsprojekte mit starkem Bezug zu Endanwendern (und hoher Interaktivität) profitieren am stärksten von diesem Vorgehen.

Folgende Leitsätze sind konsequent umgesetzt:

Spezifikation in Form von Metadaten

Durch die eingesetzte Technologie sind wir in der Lage, Anforderungen während eines Workshops aufzunehmen und innerhalb weniger Tage in einem ersten Prototyp umzusetzen.

Dabei werden die Spezifikationsinformationen in Form von Metadaten (XML) erfasst und automatisch in einen Prototyp überführt. Der Prototyp wird in Folge-Workshops - bereits während den Veranstaltungen - durch Modifikation der Metadaten so angepasst, dass Masken, Validierung und Workflows eindeutig beschrieben sind.

So entstehen keine potenziell inkonsistenten Dokumente, der Overhead wird minimiert und das Ergebnis ist von hoher Aussagekraft und für nicht ITler verständlich.

Der Umfang und die Anzahl von Spezifikationsdokumenten sinkt drastisch.

Frühzeitige Auslieferung testfähiger Software

Der Prototyp steht dem Kunden ab dem ersten Workshop für Tests zur Verfügung.

Im Laufe des Projekts wird der Prototyp zur endgültigen Anwendung ausgebaut. Wir streben dabei eine 14tägige Auslieferung und Abstimmung mit unseren Kunden an. Die ausgelieferte Software enthält zu keinem Zeitpunkt „Wegwerf-Module“, welche ausschließlich zu Prototyping-Zwecken entwickelt wurden.

Daher sind im Bezug auf die integrierte Funktionalität bereits sehr frühzeitig, oft schon nach 14 Tagen, erste für das Endprodukt relevante Tests planbar und durchführbar.

Der Endanwender führt

Der Endanwender (oder eine repräsentative Gruppe) ist vollständig in den Entwicklungsprozess integriert. Es sieht schon nach wenigen Wochen, wie sein zukünftiges Werkzeug aussieht und wie es sich während der Arbeit verhält. Probleme und Inkonsistenzen in der geplanten Funktionalität und in der Usability werden so früh erkannt.

Schnittstellen zuerst

Bei Systemen, deren Funktion von Schnittstellen abhängig ist, wird dies zuerst realisiert und so früh wie möglich inkl. entsprechender Testtreiber bereitgestellt.

Technologie ist nur ein unterstützender Faktor

Unsere Methodik ist auf den Endkunden der zu erstellenden Systeme fokussiert. Wir sehen Technologie als unterstützenden Faktor.

Das heißt, wir setzen ausschließlich Werkzeuge ein, die wir entweder selbst entwickelt haben oder die wir aufgrund unserer Projekterfahrung vollständig, bei Open Source auf der Ebene des Quelltextes, beherrschen. Additiv integrieren wir gerne technologisches Know How unserer Kunden.