Master the Art of Business
A world-class business education in a single volume. Learn the universal principles behind every successful business, then use these ideas to make more money, get more done, and have more fun in your life and work.
Refactoring means changing a system to improve its efficiency without changing its output.
Improving output is not the goal of Refactoring. It's making the system faster and more efficient. Refactoring starts by Deconstructing a system, and then looking for Patterns.
Once Patterns emerge, you can rearrange the system by grouping similar processes and inputs together. Refactoring is critical to improve the functionality of any system.
Not all changes to a system are designed to affect the system's output. Sometimes, it's more effective to re-engineer a process without changing the end result at all.
Refactoring is the process of changing a system to improve efficiency without changing the output of the system.
The term comes from computer programming-programmers will spend hours rewriting a program that, if all goes well, does exactly the same thing when they're finished. What's the point?
The primary benefit of Refactoring isn't improving the output-it's making the system itself faster or more efficient. By rearranging the processes the system uses to produce the result, it's possible to make the program run faster or require less resources while operating.
What are the critical processes that absolutely must be done right in order to achieve the desired objective? Do those processes have to be completed in a certain order? What are the current constraints? What appears to be particularly important? Collect as much information about how the system works as you can, then sit with it for a while.
More often than not, you'll start to notice things about the system that don't make sense-things that you've done a certain way because it seemed like a good idea at the time, but aren't the best way to approach the task now.
Once Patterns begin to emerge, you can rearrange the system to group similar processes or inputs together.
Think of rearranging an assembly line: if you constantly have to stop what you're doing and travel all the way across the factory to obtain a part, rearranging things so the part is always close at hand is probably a good idea. The system will still produce the same thing when you're done, but you'll have removed the little inefficiencies from the system that add up to significant losses in productivity.
If your goal is to make the system faster or more efficient, refactoring is critically important.
"Elegance is necessarily unnatural, only achievable at great expense. If you just do something, it won't be elegant, but if you do it and then see what might be more elegant, and do it again, you might, after an unknown number of iterations, get something that is very elegant."Erik Naggum, computer programmer
WANT TO BE NOTIFIED WHEN UPDATES ARE PUBLISHED? Subscribe to Josh Kaufman's email newsletter. You'll receive Personal MBA updates, Josh's award-winning research, and useful resources that will help you make more money, get more done, and have more fun. It's free!
Master the Art of Business