What is the difference between refactoring, decoding and re-engineering code?

There are many times that we hear these buzzwords, that get thrown around, especially in the technical engineering and project management: refactoring, decoding and re-engineering. Refactoring is taking old piece of code and replacing it with new. This is a danger zone area because lots of time, the people that originally wrote the code might not be there, so refactoring means to thoroughly understands someone else?s code and rewrite. This opens up the gate for bugs and quality assurance needs to thoroughly test the code. The other issue is timelines. Lots of time is needed in refactoring, it?s hard to say how long it will take. It?s a nightmare on scheduling and nowadays companies are very vary of the word ?refactor? because it means cost. If the person originally wrote the code, then refactoring is much simpler. Although, still the code needs to be thoroughly tested.

Decoding is reverse engineering the code. Basically, trying to figure out how it works? Decoding could be very difficult, based on the complexity of the code and what language it?s written in. It?s always difficult to decode other people?s code, because you have to think about what they were thinking. Overtime, when you have seen many people?s code, you start developing patterns of their thinking. This way, you can debug or decode, the code better. Re-engineering is completely throwing away the old code and come up with new. A lot of times, startups are built on shaky foundation. At some point, lots of them decide whether the existing architecture can support the growth or not. If not, then it?s time for re-engineering. Throw away components that are slow, figure out a way to migrate the data, build a new foundation layer that can scale to the business needs as a reengineering effort. Re-engineering can bring up the company valuation a lot.

Upload images with the blog.