Wie wächst Software?

In diesem Artikel will ich beschreiben, wie Software wächst bzw. sich entwickelt. Wachsen kann die Software selber nicht, da sie nur eine Maschine ist, aber sie wird immer weiterentwickelt. Das ist wie bei langlebigen Produkten oder Bauwerken (z.B. ein Fabrikgebäude) oder Organisationen, die sich immer wieder an die aktuellen Erfordernisse anpassen müssen.

Üblicherweise wächst die Software indem an den einzelnen Stellen immer mehr und detaillierterer Programmcode eingebaut wird. Es können neue Eingabemasken, Auswertungen oder Schnittstellen hinzukommen. Vielfach sind es kleinere Details, die ergänzt werden (z.B. Prüfungen, Bedingungen, geänderte Feldinhalte für einzelne Ausnahmefälle oder ähnliches). Im Laufe der Zeit werden diese Programmstellen immer umfangreicher und auch unübersichtlicher.

Damit die Programme leichter verständlich bleiben, bietet es sich an die Programmteile, die umfangreich geworden sind, in neue Klassen oder Methoden aufzuteilen. Diese übernehmen nur noch einen Teil der Aufgaben, sind somit kürzer und dadurch schneller durchschaubar. Die Organisation dieser Teilaufgaben wird von der ursprünglichen Methode ausgeführt. Sie legt die Reihenfolge fest in der die neuen Methoden aufgerufen werden.

Wenn Unternehmen wachsen läuft es auf ähnliche Weise ab. Am Anfang übernimmt ein Mitarbeiter Aufgaben zu verschiedenen Themenbereichen. Je größere das Unternehmen wird, desto mehr Aufgaben kommen hinzu und der Mitarbeiter kann nicht mehr alles alleine machen. Dann werden weitere Mitarbeiter eingestellt und es entstehen Abteilungen. Diese werden immer größer und es entstehen weitere Abteilungen. Ab einer gewissen Größe muss die Arbeit zwischen und innerhalb der Abteilungen organisiert werden. Das wird vom Management übernommen.

Gerne werden neue Aufgaben einfach ergänzt, ohne dass die Strukturen angepasst werden, weil es so einfacher und schneller umgesetzt werden kann. Aber irgendwann kommt in Unternehmen und in einer Software der Zeitpunkt, dass die Arbeit nicht mehr in der bestehenden Weise organisiert werden kann. Dann ist eine Neustrukturierung notwendig, was durchaus zu einem umfangreichen Projekt werden kann bis alles umgestellt ist und wieder reibungslos läuft. In vielen Fällen ist es allerdings nicht so umfangreich und es gleicht eher einem Aufräumen und einer Neuabsprache wie Informationen weitergereicht werden, sei es zwischen zwei Mitarbeitern oder zwischen zwei Programmteilen.

Neben den ganzen neuen Sachen in einer Software gibt es auch Programmteile, die nicht mehr gebraucht werden. In einigen Fällen lassen sich diese Teile sehr einfach identifizieren und ggf. entfernen. In vielen Fällen ist allerdings unklar, ob die Programmteile nicht doch noch gebraucht werden, sodass sie lieber nicht entfernt werden. Mit der Zeit sammeln sich viele unnütze Programmzeilen an. Da Programmcode nicht viel Speicherplatz benötigt, ist es erstmal nicht sonderlich dramatisch. Erst wenn die Programme dadurch langsam, schwer verständlich und schwierig änderbar werden, entsteht ausreichend Handlungsbedarf für eine Überarbeitung. Aber das ist genau wie in Unternehmen, Mitarbeiter und Aufgaben wechseln, Sachen werden angefangen, aber nicht beendet und irgendwann weiß keiner mehr wofür einige Sachen überhaupt zu gebrauchen sind.

Eine Software, vor allem eine Verwaltungssoftware, hat viele Ähnlichkeiten zu dem Wachstum eines Unternehmens. Solange es neue Anforderungen gibt, wird sie an die aktuellen Situationen angepasst. Mal kommt etwas Neues hinzu, anderes wird umgebaut und einiges wird einfach nicht mehr benutzt bis keiner mehr weiß, wofür es gut war.

Über mich
Stefan Themann Ich bin Stefan Themann und arbeite als selbstständiger SAP ERP Berater und Softwareentwickler. Hier auf der Seite schreibe ich über die Softwareentwicklung.