Refactoring By Resistance

RefactoringByResistance is a sometimes unintentional mechanism for helping developers arrive at a concise and crisp solution, although not always to the problem at hand. A system exhibits RefactoringByResistance by making any change so incredibly tedious or verbose that developers learn to avoid change if at all possible.

The counterintuitive result is that developers therefore work very hard to make it right the first time. They therefore follow the dictum DoTheFirstThingThatMightWork, knowing that since nothing can change the system will eventually acquire enough complexity (by simple accretion) that virtually anything can be accomplished.

This exciting new approach to modern system design is showcased in several emerging technologies, especially PerlLanguage, BioInformatics, UnixOs, DotNet, and WindowsXp.

Systems that demonstrate RefactoringByResistance generally require a really really good IDE and obfuscator. Among programmers, EclipseIde is emerging as the clear leader. Among web designers, MacromediaDreamweaver is the analogous tool of choice.

Of course, every real developer knows that Emacs and Vi, combined with Make and a flexible and interesting array of shell scripts and environment variables, provides RefactoringByResistance capabilities for virtually ANY task that can be accomplished on a programmable machine (so long as it is TuringComplete).


One interesting corollary: If you are ordered to use tools with an incredibly high RBR factor, and if you refactor them anyway, the resulting code won't "look like" the way such scripts are "supposed" to look. This can get you in trouble, even at the same time as your code continues to work.


CategoryAntiPattern

EditText of this page (last edited September 4, 2010) or FindPage with title or text search