Guidelines - 2
If the language does not support modularization, look for code that should be grouped together and separated from the rest of the program by an abstract interface (composition, encapsulation)
In contrast, sometimes a programmer intentionally interleaves the accomplishment of two goals within the same section of code. To understand the code, it becomes necessary to segregate the two functions and annotate them separately (interleaving)
If a collection of data items are used together to implement an unavailable construct, annotate that fact (composition)
Make sure that variables are only used for one purpose. Replace dual-use variables by two separate variables (interleaving)