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.