Software Developement in der Industrie

Der Begriff des Software Development ist aus einer Notwendigkeit heraus geboren, die eine klar abgrenzbare Definition ohne grundlegendes Verständnis nicht zulässt. Ein kurzer Blick in die doch recht junge Geschichte der Programmentwicklung lohnt sich hierbei und hält auch Zukünftiges bereit. Wie bekannt brauchen Computer zu programmierende Rechenvorschriften, um Daten in einer bestimmten Form verarbeiten zu können. Seit den Anfängen in den vielleicht 40er und 50er Jahren bis in die 80er galt es in diesem Zusammenhang als Kunst, ausführbaren Programmcode zu erzeugen.

Software Developement als Sinnbild von Komplexität


Es galt die Gangbarmachung und weniger das Programmieren eines Computers. Erst die in diesem Zusammenhang einsetzende Anerkennung von Software als echtes Industrieprodukt führte auf Initiative der NATO im Jahr 1967 zur Prägung des Begriffs des Software Engineerings und der Ausbildung als Ingenieurdisziplin. Marktsegmentierung durch weiterentwickelte Produkte, und Umsetzung wissenschaftlichen Know-hows in Programmiersprachen wie LISP oder Prolog erlauben es nun professionales Verständnis zu schaffen, das Entwicklungsmethoden und geeignetes Vorgehen auch öffentlich kommuniziert. Ohne offene Standards und wissenschaftliche Maßstäbe war es fast unmöglich profitabel Software zuentwickeln. Die Softwarekrise der 70er Jahre ist als Sinnbild bezeichnend. Durch die Entwicklung der Computer Spiele, die enorm zu nahm übertrafen Softwarekosten erstmals die Ausgaben für Hardware, zunehmende Komplexität und überforderte Auftraggeber, ließen Softwareprojekte, wie auch angehörige Firmen reihenweise scheitern in Ihrer Existenz. Die Anforderung MMORPG Games ausführen zu können, stoß die Hardwarehersteller in den Wahn, in kürzester Zeit, unglaubliche Erfolge zu erzielen.

Die Forderungen, die als Konsequenz der Softwaresinneskrise aufgestellt wurden, haben folglich auch heute noch Bestand. Software Development versteht sich nicht nur auf die Programmierung als Sourcecodeimplementierung oder auf Umsetzung von Softwaretechnikrichtlinien. Kernelemente von Software Development sind Design, zur Verifizierung der Korrektheit von Software, die Produktion mit Ihren Kompetenzen an Effizienz und dem Service um das Softwareprodukt, wobei Letzterer auch heutzutage noch bei Entwurfproblemen und Implementierungsschwierigkeiten in den Hintergrund gerät. Verständliche Software zu schaffen, die robust und wiederverwendbar ist, garantiert also vor dem Erfolg das eigentliche Gelingen. Kritisch hierbei ist die Komplexität einer Software, denn Komplexität bedeutet Risiko. Durch Datenabstraktion kann Komplexität, und somit auch Inkonsistenz, gemindert werden.

Diese Fortschritte hat das Software Developement erbracht

Wesentliche Fortschritte hierzu gelingen in den 80er und 90er Jahren. Während die Forschung an Programmiersprachen den Denkansatz der Objektorientierung lieferte, stellte die Softwaretechnik ihrerseits, beispielsweise mit dem UML Ansatz, Methoden und Werkzeuge zur Verfügung, um Software besser zu planen und zu entwerfen. Durch Entwurfsmuster und Vorgehensmodelle hervorgerufene Paradigmenwechsel runden das inzwischen gefestigte Bild des Softwareerzeugungsprozesses ab, während Design Pattern eine vorherige Krise fast vergessen lassen und die Dimensionalität von Datenstrukturen erhöhen. Momentane Schlagwörter wie Automatisierung von Software oder Metagenerierung verdeutlichen den Übergang zu einer Zukunft, in der sich Software letztlich vielleicht selber schreibt.