A clean room design is a particular strategy in IT engineering. With a clean room design, workers can “reverse engineer” a software program in various procedural steps, without knowing how it was originally built. This backward process is similar to taking apart an engine or other complex mechanical device in order to understand how it works, and how it is assembled. Programmers do this by “deciphering” each step of a code process, and getting a clearer picture of how it was originally written.
Another type of programming idea called “clean code,” differs critically from clean room strategy. Cleanly written code is clear and concise, with little or no superfluous code. A clean room design, on the other hand, is a technique for manipulating existing code. The clean room design has historically been a loophole around copyright laws and charges of product copyright infringement. The clean room design defense may or may not be effective in helping a company avoid liability for charges that they copied some kind of software or IT product. When the copyright case is based on a use of “proprietary code,” a clean room design defense can be helpful.
“Chinese wall” is a term often associated with the clean room design technique. This kind of procedure does not handle proprietary code. Engineers who have no knowledge of a product could theoretically re-create it using this technique.
In implementing clean room design reverse engineering, professionals may use a software tool called a “decompiler.” The decompiler is critical to the reverse engineering process, because of the way that computer code is compacted and re-arranged for “run time.” Many computer programs are written in languages like M.S. Visual Basic or the “C Suite.” When they are built into “executables,” the language-level code is simplified into what is called machine code. At its most basic level, this is boiled down to binary language, composed solely of a series of ones and zeros.
In many cases, it is not possible to reverse engineer machine code back into the original language level code. When it is possible to do this, however, the clean room strategy is often a component of the technique that engineers use. By taking the code back through a reverse process, the nature of the original code may become obvious.
Utilizing the clean room technique sometimes gets companies into complicated legal situations over what constitutes intellectual rights to software products. Most professionals would agree that this kind of situation is better to be avoided, but in some cases, reverse engineering may be helpful to a business or enterprise. As the advent of “open source engineering” changes how many people look at software, there is more of a chance that clean room techniques and reverse engineering may become more useful as stringent intellectual property laws may be relaxed due to the principle of open source code, that posits the idea that code should be shared, and not guarded by programmers.