Product teardown and reverse engineering are essentially ways to analyze competitor products to extract design, structure, information architecture or implementation strategy. On the face of it, it may appear that both terms are used interchangeably. For most of the physical products (like a toaster or an airplane) these 2 things are actually quite similar. In typical NPD book will show similar diagrams for both the terms, showing a product with its underlying components and structure. However they mean different things for software applications. First, lets examine these 2 concepts individually.
Tearing down or dissembling / dissecting a product is done so that it helps in identifying component parts, benchmarking competition and understanding user experience the product delivers. Those are the common goals of any product teardown. A typical product teardown process looks like this:
Reverse engineering also means breaking down a product to reveal it parts and functioning. Software reverse engineering (SRE) can be a simple process of de-compiling existing compiled code or getting original source code from an executable file with the intention of studying implementation. Reverse engineering is common process for making changes to legacy products where documentation is not available, or when vendor has ended support.
In the field of product management, reverse engineering is often used for communicating with web products that don't offer a public API (eg: WhatsApp, check this repo). A famous example that comes to mind is that of AirBnb reverse engineering Craigslist. Back when Airbnb started, they realized their target audience was active on Craigslist, so they automated thorugh code (using SRE) such that any new listing created on Airbnb would automatically be posted on Craglist as well (Also a textbook example of growth hacking). Ofcourse, they had to stop after a while when Craigslist took notice.
Now, the differences
- It must be apparent by now that while the purpose of product teardown is primarily competitive bench-marking (analysis motive), the purpose of software reverse engineering has shifted to executing functionality with applications where code level access is limited (execution motive).
- Teardown usually reveals the user experience, information architecture and activation flow. Reverse engineering can tell us about tech stack used, application architecture, implementation methodology etc.
- While product teardown is harmless, reverse engineering a propriety software can have legal implications.
- It is almost impossible for you to safeguard your own product against teardown or reverse engineering by competitors, although you can make reverse engineering a little harder by adding additional security features.
Do let me know you thoughts, experiences with reverse engineering or product teardowns in the comments below.