Describir: How to rewrite software--and when not to.