Verhaltensbasiertes Software Lebenszyklus Management (CMM)

„Dieser Artikel ist eine Exzerption des zugehörigen Artikels der Wikipedia Enzyklopädie. Der Original Artikel ist fachlich fundiert und das Rad braucht an dieser Stelle nicht neu erfunden zu werden – trotzdem lohnt es sich, die Inhalte sachlich neu zu interpretieren.”

Neben den Klassikern, die vor allem den Software Entwicklungsprozess an sich unterstützen, erscheint seit einigen Jahren die Gruppe all der Vorgehensmodelle auf dem Bildschirm, die Software Entwicklung als Lebenszyklusmanagement beschreiben. Die Idee derartiger Modelle ist die Entwicklung von Software auf Grundlage eines Bewertungsverfahrens, das Entwicklungsschritte an ihrem Erfolg beschreibt und auszurichten vermag. Anhand von – und den für einen Erfolg zwingend notwendiger – Definitionen, werden einzelnen Anforderungen sachdienliche Fähigkeitsgrade wie auch bestimmte Reifegrade zugeordnet, die anschließend entsprechend realisiert werden. Software Lebenszyklus Management erhebt für sich den Anspruch, ausgehend vom Spezifizieren betrieblicher Prozesse (das „Was“) auf das „Wie“ bzw. den eigentlich technischen IT Prozess schließen zu können. CMM und CMMI Modelle versprechen damit dem Anwender bereits im Vorfeld das Gelingen und motivieren mit ihren Capabilities (unabdingbar) und stetig die Orientierung auf das Erreichen dieses Ziels.

HINTERGRUND – CAPABILITY MATURITY MODEL (CMM)

Ausgangspunkt und Denkanstoß für das Lebenszyklus Management ist die ISO/NEC Norm 12207, die Angaben zu Prozessen im Lebenszyklus einer Software macht und zusammen mit den ISO 9001 (Qualitätsmanagement) und ISO/NEC 15504 (Prozessassessment) den sogenannten SPICE Standard definiert. ISO 12207 wurde im Jahr 1995 vorgestellt und war zunächst für eine bessere Kommunikation zwischen Kunden und Lieferanten ausgelegt, beinhaltet aber auch einen Verständigungsstandard für Projektentwicklung und Betrieb sowie auch für die Wartung von Softwaresystemen an sich. Insgesamt wirkt ISO 12207 vor allem als Wegbereiter, der typischen Aktivitäten und Aufgaben des Software Life-Cycle Prozesses allgemeinsprachlich formuliert, dabei aber ohne die Festlegung auf ein bestimmtes Modell oder die Vorgabe von Entwicklungsmethoden auskommt.

Eine konkrete Umsetzung der Lebenszyklus Management Idee erleben wir dann bei CMMI. Das Capability Maturity Model Integration (CMMI) ist ein Verfahren, das seit dem Jahr 2000 als Vorgehensmodell unter anderem auf Grundlage von ISO 12207 existiert.

Das Interessante an CMMI ist die Vereinigung vieler Familien von Referenzmodellen, die von Produktionsentwicklung, über Produkteinkauf bis zur Serviceerbringung für jeweils ganz unterschiedliche Anwendungsgebiete stehen können. CMMI kann dann Wesentliches leisten, wenn es gilt sich einen Überblick über bewährte Praktiken zu verschaffen oder die Stärken und Schwächen einer Organisation objektiv analysiert werden müssen. Der Schwerpunkt und entscheidende Vorteil des CMMI-Models ist Gewährleistung professioneller Organisation und Ausprägung sinnvoller Organisationsgrößen sowie die Möglichkeit der Zertifizierbarkeit insgesamt. In seinen Ursprüngen vom US-Verteidigungsministerium und der Carnegie Mellon University/Pittsburgh erdacht, dessen direkte Anwendbarkeit auf eine einzelne Standardsoftware nur begrenzt gelingt, kann CMMI in Sachen Organisation zufällige Verbesserungen und Bürokratie über weite Strecken ausschließen und mit einem Return on Investment Verhältnis von 4:1 aufwarten.

Du brauchst Hilfe?

  • Wir sind erfahrene Web-Entwickler und Web-Designer aus Köln. Seit Gründung im Jahr 2011 arbeiten wir für unsere Kunden regelmäßig mit PHP, Ruby on Rails in der Softwareentwicklung und WordPress.

  • Du musst nicht länger suchen, wir vermitteln dir bezahlbare Agentur-Leistungen. Gerne arbeiten unsere Webentwickler auch als Teil deines Teams.

  • Beschreibe uns doch kurz deinen Bedarf. Wir rufen dich zurück, wann immer du Zeit hast. Fragen zu Aufwand und Komplexität eines Projektes beantworten wir natürlich kostenlos.

Neugierig geworden?

Nimm jetzt Kontakt mit uns auf. Wir freuen uns auf dich.

AUFBAU UND EIGENSCHAFTEN DES LEBENSZYKLUS MANAGEMENTS

CMMI bedeutet zunächst einen Plan zum Plan zu haben, der Prozessgebiete der Softwareentwicklung genau definiert. Ausgehend von einem Prozessgebiet (Projektplanung) werden Ziele aufgestellt (Schätzungen aufstellen, etc. ,) und Praktiken angegeben (Umfang des Projektes schätzen etc. ,) , die zusätzlich durch Erklärung typischer Arbeitsschritte ausgewiesen werden. Die Besonderheit an CMMI besteht nun in der Fähigkeit einzelne Prozessgebiete in Kategorien einzubinden, die unternehmens- oder projektgebunden einen speziellen oder gemeinsamen Ursprung haben, so dass selbst verschiedenste Abteilungen wie Service, Entwicklung und Wartung nahtlos miteinander verflochten werden können.

Die Anbindung an eine gemeinsame Kernstruktur lässt es so beispielsweise zu, weit voneinander entfernte und an sich ambivalente Unternehmenszweige gemeinsam zu verwalten Bezogen auf die Entwicklung von Software erlaubt dies, jedwedige komplexe Situation durch Kombination und Modellierung zu organisieren und zu verbessern. Zudem gestattet es die Struktur von CMMI gleiche Prozessgebiete mit generischen Praktiken auszustatten und Arbeit im Sinne einer Institutionalisierung so weit zu organisieren, dass täglich wiederkehrende Arbeitsweisen als selbstverständlich ausgelebt werden und ein stressresistentes Wirken entsteht. Wird ein Prozessgebiet zusätzlich um die Eigenschaft der Fähigkeitsgrade (capability levels) erweitert (0 – incomplete, 1 – performed, 2 – managed, ..) und um die Metrik der Reifegrade (maturity levels) ergänzt (1- initial, 2 – managed, .. , 5 – optimizing), entsteht das fertige Bild für das das Vorgehensmodell namentlich auch steht. Mit Capability Maturity Model Integration finden Wirtschaft und IT-Industrie eine sehr schöne Lösung für unternehmensweite und innerbetriebliche Strukturen, die eingesetzt als Vorgehensmodell in der Softwaretechnik, eine zielbasierte und sich stetig verbessernde Entwicklung verspricht und Evaluierbarkeit des Erfolgs von Software Engineering gewährleistet.