最近在列表中有很多噪音以及会议的问题,关于放入重构和#34;故事"在积压上。即使和#34;技术债务"已经长大了,这总是一个劣势的想法。在这里'为什么:
当我们的项目开始时,代码清洁。这个领域是乖乖的,生活是好的,世界'我们的牡蛎。一切都会很好。
我们可以平滑且轻松地构建功能,尽管我们似乎总是花几点曲折。事情看起来很干净,除了,我们匆忙。我们不会注意任何问题,我们迅速按下。
但是,我们'重新让一些刷子在我们几乎完美的代码领域中积累。有时人们称之为"技术债务"它真的是' t:它'真的不是很好的代码。但它并不看起来太糟糕了。
然而,随着我们的构建,我们确实必须绕过灌木丛,或推动它们。一般来说,我们绕开。
不可避免地,这让我们减慢了一点。为了继续迅速发展,我们比以前更小心,很快更多的杂草丛队已经长大了。
这些新的灌木丛,在旧的丛中,让我们放慢了更多。我们意识到有问题,但是我们'匆匆忙忙地做任何事情。我们努力追求我们的早期速度。
很快,它似乎有一半的代码,我们必须与杂草,刷子,灌木丛,障碍物负担。在某处可能甚至有一些古老的罐子和肮脏的衣服。也许甚至是一些坑。
通过这个混乱的代码领域的每次旅行都是长长的漫步,躲避画笔,试图避免留下的凹坑。不可避免地,我们陷入其中的一些,并必须挖掘我们的方式。我们比以往任何时候都慢得多。有些东西必须给予!
现在,问题的密度非常明显,我们看到我们可以' T快速擦拭田野,并自己做任何好处。我们有很多重构要做,以回到一个干净的领域。我们很想要求从我们的产品所有者到重构的时间。通常,那个时间没有授予:我们'重新要求时间修复我们过去搞砸的东西。不可能有人会削减我们的任何懈怠。
如果我们确实得到时间,我们赢得了' t得到一个非常好的结果。我们' ll清理我们所看到的,以及我们可以在可用的时间内看到,这永远不够。我们花了很多时间才能获得这个坏的代码,我们'如果没有得到多个星期来解决它。
这不是去的方式。一个大的重构会话很难出售,如果销售,它会恢复较长的延迟后少希望。不是一个好主意。我们应该做什么?
sim!我们拿走了我们被要求建造的下一个特征,而不是在所有杂草和灌木周围缠绕,我们花时间清除其中一些路径。也许我们绕过别人。我们改进了我们工作的代码,并忽略我们不得不工作的代码。我们为我们的一些工作获得了一个很好的干净道路。赔率是,我们' LL再次访问这个地方:软件开发方式如何运作。
也许这个功能需要更长的时间。通常它不会,因为清理帮助我们即使使用这种方式的第一个功能也有助于我们。当然,它也会帮助任何其他人。
冲洗,重复。 使用每个新功能,我们清除该功能所需的代码。 如果我们继续摧毁该领域,我们投入了一段时间比我们的速度更多,但不得多 - 且往往少。 特别是随着过程进行,我们从我们的清理中获得了越来越优势,事情开始更快,更快。 很快,经常在我们开始清理的同一冲刺内,我们发现随后的功能实际上使用了我们刚刚清洁的区域。 我们开始立即获得增量重构的好处。 我们等待在大批次中做到这一点,我们已经投入了更多的努力,直到后来延迟了任何益处,并且可能浪费在不提供福利的地方浪费努力。 工作变得更好,代码变得更加清晰,我们提供比以前更多的功能。 每个人都赢了。