破窗的技术债务理论 “产品人员-产品经理,产品设计师,UX设计人员,UX研究人员,业务分析师,开发人员,制造商和企业家 March 03 2015 真正 优先次序,产品文化,产品重点,技术债务, 注意产品 介意产品有限公司 835 破窗理论 产品管理 3.34

破窗的技术债务理论

通过 ON

破窗理论 无论您如何优先处理积压订单,处理技术债务始终是一个挑战。

Martin Fowler对什么是技术债务及其带来的明显风险有很好的解释:

快速而肮脏地做事会使我们背上技术债务,这类似于金融债务。 就像金融债务一样,技术债务也产生了利息支出,这是由于设计的快速和肮脏,我们在未来的开发中必须付出额外的努力。

但是,即使是一些最好的优先级排序技术(如Martin所说的那样) 在这篇博客文章中),倾向于将技术债务作为事后考虑。这是一个危险的习惯。当您说服自己已计入计划中所需的额外时间和精力时,很容易就可以证明长期拖欠债务是合理的。

但是,即使是少量的技术债务也很难发现,因此也很难避免。这是一个紧急问题,是由很多技术债务组合而成的,而我描述它的最佳方法是将其与“破碎的Windows理论”进行比较。

窗户破了怎么办?

“破碎的窗户”是一种由犯罪学家在1980年代提出的关于犯罪的理论。它指出,当诸如故意破坏等低级犯罪(例如,打破建筑物的窗户)被忽略时,很快就会发生更大更严重的犯罪。破窗为社区设定了一种新的行为准则,该准则与犯罪分子或反社会组织之间的距离稍近一些,人们可以相应地调整其行为。这是一个恶性循环,逐渐导致邻里变得越来越破败和危险。

产品也可能会损坏窗户。当您的代码中建立了短期解决方案或快速,肮脏的修复程序时,这些行为就像在附近破坏公物和忽视他人。我们看到了同样的连锁反应:如果代码已经很丑陋且难以使用,那么增加一个又快又脏的修复程序就没什么大不了了。因此,在没有自觉地做出决定的情况下,致力于该产品的开发人员会降低其贡献质量的标准。如果这是产品中唯一好的代码,或者如果您怀疑它很快就会被讨厌的解决方法所覆盖,那又为什么还要去做出色的工作呢?

这不仅会影响开发人员;几乎肯定也会影响到您。您越来越愿意积累技术债务,而不太可能优先偿还技术债务。您本来可以容忍破损的窗户,但现在您已经流行了汽车盗窃案,并且正处于帮派战争的道路上。

修复破损的窗户

我在产品职业生涯的早期就处于这种情况。我和我的团队正在为现有产品开发一项巨大的新功能,努力按时完成任务,并在我们前进的过程中走捷径。我们从来没有感觉到我们正在积累巨额的技术债务,因为每个偷工减料自己都感觉很小。但是,当我们交付功能时,该产品类似于即使在光天化日之下也不敢穿越的社区。

在这种情况下,对产品的解决方案与对邻域的解决方案相同。您可以修复已经损坏的窗户,并优先考虑迅速修复出现的任何新损坏。不过,消除损坏是需要时间的,因此请勿尝试立即修复所有问题。确定代码库中最大,最丑陋,最痛苦和令人尴尬的问题,并将其作为首先解决此问题的重中之重。为此,您必须与自己的团队就自己所处的情况进行沟通。彼此承认自己并没有尽力而为-并致力于改变这一现状-与大的符号修复。

防止窗户破损

清理邻居后,您需要确保它再也不会进入同一状态。这是我们优先考虑的地方。今天,当我权衡新功能或改进功能的优先级与偿还技术债务之间的关系时,我停下来思考一下附近破窗的情况。我向团队中的其他人询问他们看到的破窗户,也许我错过了。通过确保我们一开始就不会进行快速,肮脏的修复,我们不仅继续为我们的产品提供最佳服务,而且避免了我在这里描述的紧急副作用。

提供这些令人兴奋的新功能可能需要一些时间,但我们知道我们正在开发更好的产品,而整个团队为实现这一目标而感到自豪。