Die Idee eine Software zu erstellen, deren Grundlage die CMMI 1.3 ist, das war schon lange ein Traum von mir. Über den Umweg der Erstellung eines Ratgebers, und später der Entwicklung einer Business Kurzgeschichte, bin ich nun hier angelangt.
Willkommen in der neuen Blog Serie zur CMMI.
Ich werde mir den Spaß machen, auf der Grundlage von Überschriften und Kurzbeschreibungen mit Ihnen gemeinsam Schritt für Schritt eine auf der CMMI basierende Software zu entwickeln. Und beginnen möchte ich mit dem spezifischen Ziel „Anforderungen verwalten“ des REQM, des Anforderungsmanagements.
Vielleicht wundern sie sich darüber, dass der chinesische Philosoph Konfuzius im Titelbild des Willkommen Artikels von mir gewählt wurde. Warum?
Hier kommt die Antwort: Konfuzius (gelebt von 551 bis 479 vor Christus) entwickelte schon sehr früh Theorien zur Sprach-Philosophie. Auf die Frage eines Schülers antwortete er: “Wenn ich die Regierung eines Staates übernähme, würde ich als Erstes die Begriffe in Ordnung bringen”.
Als ich das gelesen habe, war für mich klar: Es ist vollkommen in Ordnung auf der Grundlage von Überschriften und Kurzbeschreibungen die Grundstrukturen für eine neue Software zu entwickeln. Und diese ist dann am Ende der Blog Serie auch wirklich fertig entwickelt. Und kann dann auch gerne von Ihnen und/oder ihrem Unternehmen gekauft werden.
Anmerkung: Wenn Sie schon jetzt Lust haben in die neue QuoMod Software zu investieren. Das wäre natürlich fantastisch. Kontaktieren Sie mich gerne. Nutzen Sie unten das Kontaktformular. Ich freue mich auf Sie!
Beginnen möchte ich mit den Software Inhalten zum Managen von Anforderungen; in der CMMI als Prozessgebiet mit dem Namen REQM im Bereich des Projektmanagements benannt.
Spannend ist dabei, das selbst in der spezifischen Praktik 3 “Anforderungsänderungen verwalten” als ein mögliches Arbeitsergebnis eine “Anforderungsdatenbank” genannt wird. Solch eine Datenbank entwickele ich nun hier schrittweise gemeinsam mit Ihnen.
Lassen Sie uns gleich hier beginnen!
Anforderungen verwalten – Das Spezifische Ziel des REQM
In der Kurzbeschreibung zum spezifischen REQM Ziel heißt es:
Anforderungen werden verwaltet und Inkonsistenzen zu Projektplänen und Arbeitsergebnissen werden erkannt. (Kurzbeschreibung zum spezifischen Ziel „Anforderungen verwalten“ SG 1)
Auffällig ist die Nutzung des Hilfsverbs “werden”. An sich ist das auch vollkommen in Ordnung. Es handelt sich ja schließlich um die Beschreibung eines Zieles, eines spezifischen Zieles, und das befindet sich in der Zukunft, also “werden”.
Schon alleine in der Überschrift erkennen wir 3 Objekte
- Anforderung
- Projektplan
- Arbeitsergebnis
Und die Anforderungen sollen “verwaltet” werden. Verwalten, so ein mächtiges Verb. Ich mag es da lieber etwas konkreter: die 3 verschiedenen Objekte können angelegt, bearbeitet sowie gesucht, gefiltert und somit gefunden werden.
Um es dann noch einfacher zu halten – wir befinden uns ja noch am Anfang der Erstellung unserer Software – gibt es pro Objekt ein einfaches einzeiliges Eingabefeld. Und schon jetzt definieren wir: Jeder Anforderung können mehrere Projektpläne und Arbeitsergebnisse zugewiesen werden.
Inkonsistenzen bearbeiten
In einem Software System zum Managen von Anforderungen werden die verschiedensten Projektpläne und Arbeitsergebnisse vorhanden sein. Inkonsistenz könnte so definiert werden, dass alle nicht passenden Verbindungen als inkonsistent zu bezeichnen sind. Da im Laufe der Zeit recht viele Projektpläne und Arbeitsergebnisse in der neuen Software angelegt sein werden, kann man sich darauf einigen, dass nur konsistente Zuweisungen getätigt werden.
Bei genauer Betrachtung haben sie nun die Idee, das einzeilige Textfeld der Anforderung zu einem mehrzeiligen Textfeld zu wandeln. Der Text von Anforderungen kann recht lang werden. Das finde ich eine gute Idee und so machen wir das geschwind: Aus dem Eingabe Typ “Text” wird ein “Memo”. Eine Besonderheit ist dann auch, dass im neuen “Memo” Eingabe Feld Scrolle Balken erscheinen, sobald der Inhalt der Eingabe einer Anforderung größer sein darf als die Darstellung auf dem Bildschirm.
Somit genügt das oben beschriebene einfache Modell für eine erste funktionierende Software Version.
Bonus
Um Inkonsistenzen gegeben falls zu “erkennen”, das Verb am Ende der Beschreibung des Zieles, müssen weitere Mechanismen in die Software einfließen. Wir wollen den Kopf des Anwenders der neuen Software ja nicht überlasten! Und so muss das auch noch drin sein: Der Vorgang des Erkennens kann mit gezielten Darstellungen auf dem Bildschirm unterstützt werden.
Ein Weg entsteht, wenn man ihn geht. (Konfuzius)
Das beschriebene Modell ist aktuell aus der Richtung der Anforderung angelegt. In der spezifischen Praktik 4 wird die „bidirektionale Nach-Verfolgbarkeit“ gefordert. Ich verstehe es so, dass auch aus der Sicht der anderen Objekte ein Weg zu den jeweiligen Anforderungen möglich sein, und somit “erkannt” werden muss.
Wir sollten auch schon jetzt in der ersten funktionierenden Software Version bei dem Anklicken eines Projektplans oder Arbeitsergebnisses die jeweils zugewiesenen Anforderungen anzeigen und anklickbar zur Verfügung stellen. So unterstützen wir das allgemeine QuoMod Software Paradigma: “Immer möglichst schnelle Wege zum Ziel unterstützen”.
Was ist konkret zu tun?
Hier die einzelnen Schritte:
Technische Vorbereitung, Fachliche Definition und Erster Test
(Anmerkung: Übernahme aus vorhandenen Kundenprojekten): 1. Neue Datenbank erstellen 2. SQL Skripte für das Tabellen Modell in der Datenbank ausführen 3. Programm Dateien der vorhandenen QuoMod Qualitätsmanagement Software Lösung kopieren 4. QuoMod öffnen 5. Stammdaten Struktur eingeben 6. Anforderungen anlegen 7. Projektpläne anlegen 8. Arbeitsergebnisse anlegen 9. Projektpläne einer Anforderung zuweisen 10. Arbeitsergebnisse einer Anforderung zuweisen
Programmierung und Zweiter Test
(Anmerkung: Übernahme aus vorhandenen Kundenprojekten): 1. Neues Fenster mit eigenem Menü Punkt und der Beschränkung auf die 3 Objekte: Anforderung, Projektplan und Arbeitsergebnis entwickeln 2. Bidirektionale Anzeige von Projektplänen sowie Arbeitsergebnisse zu den Anforderungen programmieren 3. Bidirektionale Anzeige prüfen.