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
, 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.