am 25. August 2010
Es ist wieder so weit. Es wurde ein neuer Ausdruck erfunden oder zumindest wurde er geprägt. Dabei geht es eigentlich um eine Begründung, warum man in vielen Softwareprojekten so schlecht Refaktorieren kann und warum ein Rewrite auch nicht immer klappen muss.
Computerprogramme entwickeln irgendwann ein Eigenleben. Meistens beginnen sie zwar strukturiert und wahrscheinlioch sogar mit sauber aufgeschriebenen User Stories oder Use Cases, irgendwann kommt man aber in den Wartungsbetrieb. Dort kommt es sehr häufig vor, dass man auf Zuruf noch eine Kleinigkeit ändert oder ein Feature einbaut. In den meisten Fällen werden diese Änderungen nicht dokumentiert und wenn, dann nur im Ticketsystem. Es dauert nicht lange, bis das System genau so viele dokumentierte, wie undokumentierte Bestandteile hat. Ist ja eigentlich nicht schlimm, das System kann dennoch stabil laufen.
Begeben wir uns aber mal in die Situation, dass wir einen Teil einer Applikation neu schreiben müssen. Vielleicht weil der existierende Sourcecode unwartbar geworden ist. Wie geht man jetzt vor?`Angefangen wird mit der Dokumention, die man noch irgendwo findet. Dort wurden die grundsätztlichen Verhaltensweisen beschrieben. Ist ja schon mal ein Anfang. Dann fängt das richtig fiese an. Man muss sich durch die Applikation klicken, um das tatsächliche Verhalten der Anwendung rauszufinden. Da fallen dann wohl ein paar Features raus, die man ja nachprogrammieren muss. Wenn man jetzt noch nicht alles zusammen hat, was man für einen Relaunch braucht, dann geht es in den Source Code. Hier ist es wohl am schwierigsten die Anforderungen rauszulesen, aber es ist möglich.
Joa das war’s dann. Reverse Requirement Engineerung und ich hasse es.