Samstag, 13. Januar 2007

OOP 2007: .NET-Tag als Kickoff für mehr Industrialisierung – Teil 1

In diesem Jahr beschäftigt sich der .NET-Tag der OOP am 23.1. mit dem Thema Softwareproduktion. Ist dieser Begriff aber nicht synonym mit Softwareentwicklung? Nein. Produktion „baut etwas zusammen“, Entwicklung plant das, was „zusammengebaut“ werden soll. Produktion manifestiert Entwicklung.

Verortung der Softwareproduktion
Der Begriff Softwareproduktion wirft insofern sogar ein kritisches Licht auf den der Softwareentwicklung, der für sich ja beansprucht, für alle Tätigkeiten zu stehen, die damit zu tun haben, aus Anforderungen Software „abzuleiten“ und dann am Ende auch an den Kunden auszuliefern. Früher hieß das schlicht Programmierung. Dann wurde daraus Softwareentwicklung. Diese begriffliche Veränderung scheint also kein Fortschritt, sondern trägt eher dazu bei, den Blick auf den ganzen Prozess zu trüben.



Als Track Chair für den .NET-Tag habe ich daher bewusst Softwareproduktion als Thema gewählt, um den Blick auf einen Teil des ganzen Softwareherstellungsprozess zu lenken, der gewöhnlich keine so große Aufmerksamkeit bekommt. In der Ausbildung stehen Entwurf und Implementation im Vordergrund. Es geht vor allem um Konzepte zur Beschreibung von Software und Technologie bzw. Werkzeuge für die Implementierung.

Historisch gesehen ist das auch verständlich. Aber die Zeiten haben sich gewandelt. Die Ansprüche an Software sind gestiegen und steigen immer weiter. Ebenso steigt ihre komplexität bzw. die der Infrastruktur, in der sie funktionieren muss. Wenn früher Entwicklung und Produktion noch zusammen betrachtet werden konnten, weil die Produktion nur einen kleinen, unliebsamen Teil in Form des Setups für eine Software darstellte, so ist es heute aber angezeigt, die Produktion als eigenständigen Zweig des Herstellungsprozesses herausvorzuheben. Dies ist ein für die Weiterentwicklung der Branche notwendiger Schritt zu mehr Systematik und auch mehr Industrialisierung, d.h. mehr verlässliche Qualität.

Und was ist Teil der Produktion? Die Produktion überführt die Implementation des Entwurfs einer Software in einen auslieferbaren „Zustand“. Die Produktion macht aus dem Ergebnis der Entwicklung etwas Anwendbares. Früher war es da im einfachsten Fall mit der Übersetzung von Quellcode getan. Diese Zeiten sind jedoch vorbei. In der Java-Welt ist man sich dessen schon länger bewusst – die .NET- oder Microsoft-Welt hinkt hier jedoch noch hinterher. Deshalb der .NET-Tag zum Thema Softwareproduktion.

Das Ergebnis der Entwicklung sind Quellcode und vergleichbare Artefakte wie Datenbankschemata. Die Entwickler können über sie nicht mehr sagen, als dass sie meinen (!), diese Artefakte würden die Anforderungen des Kunden erfüllen. Weder haben diese Artefakte aber schon eine Form, dass ein Kunde damit etwas anfangen könnte, noch ist ihre Qualität gewiss.

1. Transformation der Implementationsartefakte
Die erste Aufgabe der Softwareproduktion ist daher, alle Artefakte in die endgültige, beim Kunden zu installierende Form zu transformieren. Das haben die Programmierer für Quellcode während der Implementation zwar auch schon durchaus getan – aber aus Sicht der Produktion ist das relativ unwichtig. Sie will sich nicht darauf verlassen. Am Ende hat sie die Verantwortung für die Qualität der ausgelieferten Produkte, selbst wenn Fehler auf Mängel in der Entwicklung zurückgeführt werden können.

Die Transformation ist insofern eine erste, sehr grobe Qualitätskontrolle. Sie prüft nicht nur, ob die Artefakte an sich strukturell korrekt sind, sondern auch unabhängig vom Ort der Implementation transformiert werden können. Das ist wichtig, um den Ort der Implementation bei Bedarf wechseln zu können. Das trägt zur Agilität und Modularität der Entwicklung bei.

2. Qualitätsprüfung der Produkte
Die zweite Aufgabe der Softwareproduktion besteht dann in der Prüfung der Artefakte. Halten Sie, was sie laut Entwicklungsplan versprechen? Die Softwareproduktion ist damit die Instanz, deren Tests am Ende des Tages wirklich zählbe. Ob Softwareentwickler während der Implementation getestet haben oder nicht… Es ist gut, wenn sie es tun und nur aus ihrer Sicht fehlerfreie Artefakte der Produktion übergeben. Aber die Produktion kann sich darauf nicht verlassen. Es ist letztlich ihre Verantwortung, die „Tragfähigkeit“ der Software im Einsatz zu garantieren.

Allerdings kann die Produktion diese Verantwortung nur durch Mithilfe von Entwicklung und Support wahrnehmen. Denn die Qualitätsüberwachung von Software ist keine Sache einmaliger Prüfung, sondern muss vorbereitet werden und erstreckt sich auch auf den produktiven Einsatz. Darüber hinaus gilt es auch, nicht nur die Erfüllung der Anforderungen an den Betrieb sicherzustellen. Die Softwareproduktion ist ja nicht nur daran interessiert, heute ein qualitativ hochwertiges Produkt auszuliefern. Sie will auch sicherstellen, dass diese Qualität morgen und übermorgen noch genauso hoch ist. Die Softwareproduktion ist damit die Triebfeder eines umfassenden Qualitätsmanagements, das auch die Organisation der Artefakte und des Entwicklungsteams im Blick behalten muss.

Mehr im nächsten Posting...

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.