Inhalt
Was ist Reverse Engineering?
Reverse Engineering (RE) kommt ursprünglich aus dem Maschinenbau. Dabei wird zur Konkurrenzanalyse und zur Optimierung des eigenen Produkts, das Konkurrenzprodukt zerlegt, um dessen Aufbau, Struktur und Funktion zu verstehen.
Heutzutage wird die Methode auch im Bereich der Softwareentwicklung verwendet. Allerdings in den meisten Fällen zur Produktanalyse, Fehleroptimierung und Qualitätsprüfung der eigenen Software.
Von Unternehmen wird Reverse Engineering vor allem eingesetzt, um Prozesse oder Produkte zu optimieren sowie Fehler und Best Practices zu identifizieren.
Verwandte Begriffe:
- Forward Engineering ist der normale Prozess der Softwareentwicklung, bzw. der Produktentwicklung. Dieser startet bei den Anforderungen, über den Entwurf, zu einem Prototyp bis hin zum fertigen Produkt. Sozusagen das Gegenteil von Reverse Engineering.
- Redokumentation ist ein Teilbereich beim Reverse Engineering. Dabei geht es darum, verlorene oder nicht vorhandene Dokumentation über das System wiederherzustellen.
- Design Recovery ist ebenfalls Teil des Reverse Engineering. Ziel ist es, alle Informationen zu reproduzieren, die man benötigt, um zu verstehen, was ein Programm tut, wie es und warum es dies tut.
Wo kommt Reverse Engineering zum Einsatz?
Reverse Engineering kommt in verschiedensten Branchen zum Einsatz. Besonders im produzierenden Gewerbe werden die Produkte der Konkurrenz genau analysiert und die gewonnenen Erkenntnisse für die eigene Produktentwicklung genutzt. Doch auch für die Softwareentwicklung und in der Prozessoptimierung kommt es zum Einsatz:
Hardware Reverse Engineering
Hierbei wird Hardware in die einzelnen noch so kleinen Bestandteile auseinander gebaut und jedes Bauteil und die Funktionalität der einzelnen Teile genau analysiert. Ziel ist es, Funktionsweisen und Best Practices zu verstehen und für das eigene Produkt zu nutzen. Zudem können Schwächen bei der Konkurrenz identifiziert und beim eigenen Produkt vermieden werden.
Bei der Analyse des eigenen Produkts kann dadurch zudem ein Konfigurationsaudit durchgeführt werden. Also eine Prüfung, ob sich die Produkteigenschaften mit den tatsächlich geplanten Eigenschaften decken.
Software Reverse Engineering
Auch beim Software RE wird Fremdsoftware genauer geprüft, häufig wird es jedoch für die Prüfung eigener Softwarelösungen verwendet. Bezogen auf Software versteht man unter RE meistens einen der folgenden Prozesse:
Rückgewinnung des Quellcodes
Dafür wird in der Regel ein Decompiler , ein Tool, das den Quellcode aus dem Binärcode in für Menschen lesbare Sprache übersetzt, verwendet. Ist das nicht möglich, kann der Maschinencode zudem mit einem Disassembler, der ebenfalls Binärcode in lesebaren Code umwandelt, manuell analysiert werden, was allerdings zeitaufwändiger ist.
Meist ist es jedoch nicht möglich, den Quellcode vollständig zu rekonstruieren. Für die meisten Entwickler ist jedoch das Verstehen der Idee und Programmierlogik wichtiger als der Code an sich.
Verstehen der Regeln des Kommunikationsprotokolls
Die Regeln des Kommunikationsprotokolls nachzuvollziehen ist zum Beispiel wichtig, um ein gut funktionierendes Netzwerk sicherzustellen. Mit sogenannter Sniffer Software kann dabei der Datenverkehr innerhalb eines Rechnernetzwerks analysiert und Verbindungsprobleme oder Sicherheitslücken aufgedeckt werden.
Die nachträgliche Modellerstellung ausgehend vom Quellcode
Die nachträgliche Modellerstellung ist vor allem für objektorientierte Programmierung interessant. Der rekonstruierte Quellcode einer Software wird genutzt, um nachträglich einen Entwurf bzw. ein Modell der Software zu erstellen, das dann weiterbearbeitet werden kann.
Was ist objektorientierte Programmierung?
Objektorientierte Programmierung ist ein Programmierstil, der dem menschlichen Denken sehr ähnlich ist. In der Sprache wird jedes Element durch „Objekte“ mit bestimmten Eigenschaften und Funktionen beschrieben und kann anhand dieser in verschiedene Klassen unterteilt werden.
Business Process Reverse Engineering
Auch für Unternehmensprozesse kann Reverse Engineering angewendet werden. Dabei wird ein bestehender Prozess auf seine einzelnen kleinen Prozessschritte heruntergebrochen und diese analysiert. Regelmäßiges RE der Prozesse hilft Unternehmen, sich schnell an Veränderungen anzupassen und wettbewerbsfähig zu bleiben.
Insbesondere beim Sales Funnel lohnt es sich, diesen immer wieder rückwärts zu engineeren, um Optimierungspotenziale aufzudecken und auf Veränderungen zu reagieren.
Was bringt Reverse Engineering?
Im Bereich Hardware
Im Hardware Bereich liegen die Vorteile von RE auf der Hand: Die Produkte der Konkurrenz werden bis ins kleine Detail analysiert, sowie Bau- und Funktionsweisen hinterfragt. Positives kann für die zukünftige eigene Produktentwicklung genutzt werden. Fehler, die die Konkurrenz macht, werden auf diese Weise vermieden.
Im Bereich Software
Beim Software RE sind, wie oben bereits geschrieben, die Anwendungsbereiche weiter gefächert. Deshalb hat Reverse Engineering auch für verschiedenste Bereiche Vorteile:
- Qualitätsmanagement: Prüfung der Funktionen der eigenen Software
- Weiterentwicklung und Optimierung der eigenen Software oder, wenn möglich der genutzten Software von Drittanbietern. Das ist nicht immer oder erlaubt, manche Softwarehersteller stellen dazu jedoch ihren Code oder sogenannte Low-Code-Tools zur Verfügung. Mit Low-Code kann man einige Änderungen an der Software ohne tiefergreifende Programmierkenntnisse vornehmen.
- Ermitteln von Schwach- und Schadstellen, wie Viren oder Trojanern
- Untersuchung von Netzwerkkommunikationsprotokollen zur Verbesserung der Performance
- Ermitteln von Softwarefehlern
- Kompatibilitäts-Optimierung mit Software oder Plattformen von Drittanbietern
- Untersuchung der Programmierlogik für das eigene Verständnis
- Instandhaltung von Abandonware
Was ist Abandonware?
Als Abandonware werden Softwarelösungen bezeichnet, die ein Hersteller nicht mehr vertreibt und für die er keine technische Unterstützung mehr anbietet.
Im Bereich Business Process
Je nach Prozess im Unternehmen, der rückwärts betrachtet wird, kann Reverse Engineering verschiedene Vorteile haben:
- Neue Blickwinkel auf den eigenen finden und „Betriebsblindheit verhindern“
- Fehlerquellen identifizieren
- Optimierungspotenziale aufdecken
- Fehler bei anderen Prozessen in anderen Unternehmen identifizieren und im eigenen Prozess verhindern
- Best Practice Ansätze bei anderen Unternehmen finden
Wie funktioniert Reverse Engineering?
Unabhängig davon in welchem Bereich RE betrieben wird, gibt es 3 Schritte, die immer ähnlich sind:
1. Informationsbeschaffung
Das Objekt, bzw. die Software oder der Prozess, der zurückentwickelt werden soll, wird genau analysiert. Dazu wird es in seine Einzelteile zerlegt und erfasst, wie die einzelnen Teile zusammenpassen und miteinander interagieren.
Beim Software-Reverse-Engineering beispielsweise müssen Ingenieure den Quellcode zur Prüfung zusammenstellen. Während für einen Unternehmensprozess erst das Ergebnis geprüft und dann der Input, die Funktionen und die einzelnen Prozessschritte bestimmt werden.
2. Modellierung
In diesem Schritt wurden bereits alle Informationen gesammelt und die Einzelteile in einem Konzeptmodell wieder zusammengesetzt. Hierbei werden alle Teile, Codeschnipsel oder Prozessschritte genau erklärt. Das Modell kann zudem genutzt werden, um das Objekt weiterzuentwickeln und neue Teile zu testen.
3. Review
Beim Review (Deutsch: Beurteilung) wird das Modell und die einzelnen Schritte, bzw. Teile überprüft und getestet. Wenn der Prozess getestet wurde, ist der Prozess oder das Modell bereit, implementiert zu werden, um das ursprüngliche Element neu zu konstruieren.
Unternehmensprozess Reverse Engineering am Beispiel Sales Funnel
Der Salesprozess eignet sich besonders gut für RE, weil es nicht nur möglich ist, den eigenen Prozess zu untersuchen, sondern auch aus dem Prozess von Wettbewerbern zu lernen.
Den eigenen Prozess einmal in die einzelnen Prozessschritte zu zerlegen und die einzelnen Teile zu analysieren, bringt neue Blickwinkel, deckt Fehler auf und zeigt Optimierungspotenziale.
Reverse Engineering beim Sales Prozess der Konkurrenz
1.Identifizieren Sie Ihre Wetterbewerber
Der erste Schritt ist, alle direkten als auch indirekten Wettbewerber zu identifizieren.
Was sind direkte und indirekte Konkurrenten?
Direkte Wettbewerber bieten die gleichen Produkte, beziehungsweise Dienstleistungen wie Sie für dieselbe Zielgruppe an. Indirekte Wettbewerber haben dieselbe Zielgruppe allerdings andere Produkte oder Dienstleistungen..
2. Seien Sie der Kunde
Wenn Sie wissen, welche Unternehmen Sie interessant finden, versetzen Sie sich in die Rolle des Kunden und begeben Sie sich auf die Customer Journey. Das können Sie auch einmal beim eigenen Unternehmen testen. Identifizieren Sie, wo die Touchpoints zwischen Unternehmen und Kunden sind, wo der Prozess seine Schwachstellen hat und wo Sie sich als Kunde gut betreut fühlen.
Halten Sie fest, welche Fehler Ihnen auffallen, die Sie unbedingt vermeiden wollen und wo Sie positive Beispiele sehen, die Sie als Best Practices mitnehmen können. Achten Sie darauf, dass es hierbei nicht darum geht, die Customer Journey der Konkurrenz 1:1 zu kopieren, sondern darum Best Practices, die zu Ihrem eigenen Prozess passen, abzuleiten.
3. Analysieren Sie einzelne Touchpoints
Wo kommen Sie als Kunde mit dem Unternehmen in Kontakt. Was finden Sie gut und was würden Sie anders machen?
Analysieren Sie Ads der Konkurrenz
Dabei können Sie auf folgende Punkte achten:
- Kanal: Auf welchen Kanälen erhalten Sie Werbeanzeigen?
- Text: Wie werden Sie angesprochen? Sind die Texte eher emotional oder informativ?
- Design: Passt das Design zum Produkt und zur Zielgruppe?
- Relevanz: Wird die richtige Zielgruppe angesprochen?
- Call to Actions: Welche CTAs werden in den Anzeigen verwendet?
- Wie unterscheiden sich die oben genannten Punkte von Ihren Anzeigen?
Analysieren Sie den E-Mail-Kontakt mit der Konkurrenz
- Individualität: Fühlen Sie sich persönlich angesprochen?
- Schnelligkeit: Wie schnell nimmt das Unternehmen nach dem ersten Touchpoint Kontakt zu Ihnen auf? Wie schnell antworten sie auf Kundenanfragen?
- Kompetenz: Erhalten Sie die richtigen Informationen? Ist ihr Ansprechpartner kompetent?
Auf diese Weise können Sie die einzelnen Touchpoints, wie Telefonate, Social Media Auftritt und Landingpages analysieren. Anschließend können Sie das Modell Ihres Sales Funnels zu Hand nehmen und an den passenden Stellen die Best Practices der Konkurrenz so einbauen und anpassen, dass Sie den bestmöglichen Sales Funnel erhalten.
Fazit: Das Feld von hinten aufrollen bietet neue Perspektiven
Reverse Engineering bedeutet Objekte und Prozesse absichtlich in ihre Einzelteile zu zerlegen, bevor es aus Versehen passiert. Dadurch können Sie Objekte, Dienstleistungen, Software oder Prozesse immer wieder optimieren und von der Konkurrenz lernen, um das bestmögliche Ergebnis zu erzielen.