22 May 2007
Yesterday, I learned about the concept of "refactoring" from a post on Eugene Wallingford's blog. According to Wikipedia, refactoring is a term from software engineering. Refactoring is "any change to a computer program which improves its readability or simplifies its structure without changing its results." In other words, cleaning your work up so it's more understandable and getting rid of deprecated and useless stuff. If you don't refactor often (i.e. practice good software hygiene), then eventually your work becomes so undocumented that it's impossible to fix -- a state called technical bankruptcy. I do that with my research from time to time when I write up calculations in LaTeX or annotate plots. Now I know word for it! Weekly review is also a form of "refactoring" in a GTD system.