The Wrong Abstraction
&quot;Programmer B feels honor-bound to retain the existing abstraction&quot;<p>I think it&#x27;s more often likely that the next person comes along and lazily forces the most brittle, minimal change possible to make their new requirement work without thinking about the larger context.  Even if that means putting a complicated conditional into the existing function, while leaving the existing function name intact.<p>This isn&#x27;t about honor.  It&#x27;s simply bad programmer behavior.  It might be due to lack of skill or experience, or maybe laziness, or lack of discipline, or some other negative attribute.