Titel: Gute Softwareentwicklung: unsere Bausteine
Autor: Liantis Gmbh & Co. KG (http://www.liantis.com/)


Bausteine für einen guten Entwicklungsprozess

So entwickeln wir Software

1. Anforderungen

Anforderungen werden schriftlich mit ihrem Verantwortlichen erfasst. Damit nachher keiner sagen kann: "Das habe ich doch gesagt!", "Das habe ich aber anders gesagt!" oder "Das habe ich gar nicht gesagt!".

2. Abnahmekriterien

Das sind fachliche Testfälle. Mit ihrer Hilfe kann objektiv entschieden werden, ob eine Anforderung erfüllt ist oder nicht. Deshalb gibt es zu jeder Anforderung mindestens ein Abnahmekriterium.

3. Testplan

Es gibt einen schriftlichen Testplan, der dokumentiert, was von wem mit welchem Erfolg getestet wird bzw. wurde. Das gibt Sicherheit, dass alles "wie geplant" getestet wurde.

4. Modell

Für Ihre Software erstellen wir einen Bauplan - heute in der Regel in UML. Warum? Gegenfrage: Lassen Sie Ihr Haus bauen, ohne dass ein Architekt vorher einen Bauplan angefertig hat?

5. Software-Architektur

Es gibt eine definierte, generierungsfähige Software-Architektur als Fundament der Softwareentwicklung. Und auf das Fundament verwenden wir besondere Sorgfalt.

6. Generierung

Programmcode entsteht zum Großteil über MDA aus den Modellen. Ein wichtiger Vorteil ist die Zeitersparnis, aber es sprechen auch konstruktive Qualitätskriterien für einen Generierungsansatz.

7. Forward Engineering

Eine Änderung der Programmquellen ist die Folge einer Änderung des Bauplans - und nicht umgekehrt. Denn Sie sollen einen jederzeit aktuellen Bauplan haben und eine leistungsfähige Grundlage für die Generierung.

8. Richtlinien

Durch Entwurfs- und Codierrichtlinien haben Entwurf und Implementierung eine einheitliche "Handschrift". Richtlinien dienen nicht nur der Fehlervermeidung, sondern erleichtern auch die Lesbarkeit durch Kollegen, die Einarbeitung neuer Mitarbeiter und die Pflege Ihrer Software. Sie sind ein wichtiges Element konstruktiver Qualitätssicherung. Und gute Richtlinien schränken die Kreativität Ihrer Mitarbeiter nicht ein.

9. Versionsverwaltung

Alle Elemente ("Artefakte", "Zwischenprodukte") der Softwareentwicklung werden in einem Versionsverwaltungssystem gepflegt. Jeder (definierte) Entwicklungsstand ist reproduzierbar; es werden identifizierbare Releases definiert.

10. Regressionstests

Komponententests und Integrationstests werden reproduzierbar mit Hilfe von Testframeworks durchgeführt. Von großem Vorteil sind dabei automatisierte Tests, die immer wieder ausgeführt werden können, damit jede kleine Änderung und Weiterentwicklung sofort getestet wird. Dann weiß man am Ende jeden Tages, dass das, was heute entwickelt wurde, wirklich richtig ist.

11. Inkrementelles Vorgehen

Die Entwicklung läuft in kleinen Schritten mit lauffähigen Zwischenversionen. Dabei ist die Dauer der Iteration von Art und Umfang des Gesamtvorhabens abhängig.

12. Aktivitätenmanagement

Ein Gesamtvorhaben bzw. Projekt wird in Arbeitspakete (Aufgaben) zerlegt. Diese Aufgaben werden Personen zugeordnet und mit Termin versehen. Der Grad der Zielerreichung wird regelmäßig gemessen. Einzelne Aufträge (Bugs, Neuanforderungen, Änderungen etc.) werden ebenfalls als Aktivitäten oder Aktivitätenbündel definiert und eingeplant.

Im Endeffekt: eine professionelle Softwareentwicklung, gekonnt gemanagt und mit allen notwendigen Freiheiten.

Free your work!


zurück zur normalen Ansicht