修改既有代码是程序员谋生的手段.但是为什么我们需要去修改软件呢?修改软件有以下4个主要起因:这4项都与软件的"行为"密切相关,见下表.通过这张表格我们看出:只有在修正bug时,我们才需要改变软件的既有行为, 而在其他情况下,我们都需要保持住软件的既有行为.如果我们在改善设计,优化,或添加新特性时改变了软件的既有行为, 那我们实际上是给软件引入了bug.可是程序员的工作就是修改软件,所以我们有很多的"机会"给软件引入bug.