技术债务的真正含义

2021-04-13 20:50:27

这是一篇关于沟通的重要文章 - 在工作场所如何,通信如何自然地优化清晰度和速度。

我们经常模拟的奇怪的短语,如"行动项目"或"圈出"实际上是高效的意义向量。它们以极少的单词融合非琐碎的概念,并被每个人都理解。

技术债务广泛使用和讨论工程团队。这是一个成功的概念,我相信几个原因:

它'非常直观地支持常识 - 堆积的东西,让你更慢,只是对现有债务的兴趣。

事实上,随着时间的推移,所有开发团队都被现有的代码库放慢了。但为什么?是因为维护是不可避免的吗?或者我们首先可以做得更好?或两者?

如果您搜索"技术债务"在Google上看,从第一页看摘录,你会发现某种共识。

它看起来是由于一些令人讨厌的肮脏做法积累的东西。如果是真,它应该通过从开始(和文档和测试等)中编写清洁代码,债务从未堆积,或者其数量可以忽略不计。

当然,如果您有任何在工程团队中工作的经验,那么您就知道这是错误的。 即使您使用最佳意图,即使使用最佳意图,技术债务也令人欣赏。 病房是&#34的原始发明者;技术债务" 术语和它'透露在第一次使用这种隐喻的句子(重点是我的): 如果我们未能使程序与我们所理解的是思考我们[...]对象的正确方式,那么我们将不断跌倒于分歧,这会像对贷款的兴趣放缓 。 病房描述了债务作为写作代码的自然结果,了解我们不正确的理解。 他没有谈论糟糕的代码 - 他说账户占债务很小的份额。 但是我们如何降落到这种分歧? 在我的经验中,有两个罪犯:

🏃快速进化 - 我们建立了正确的东西,但景观很快就改变并使其过时了。

这可能会以非明显的方式设计一项解决方案,并以非明显的方式设计了妥善符合业务需求的解决方案。

表面上可能仍可能会满足要求,但在引擎盖下有问题 - 一种' t拟合,一些重复,可伸缩性问题等的抽象。

当然,由于发展技能不佳,可能会发生这种事情。但是在我的经验中,大多数时间它' s是因为开发人员没有完全明白必须要做什么。

如果这是经常发生的,自然反应是在设计阶段投资更多。这意味着,当然,更多的工程分析,也更多地与利益相关者交谈。您应该讨论此处和现在,以及该项目的未来演变。

越来越多的设计工作会带来逐渐减少的结果,所以它'根据您的公司规划如何找到甜蜜的地方,以便您的公司规划如何在未来您可以期望多少变化。

第二种情况是事情发生如此迅速,今天' S要求无法真正信任。

也就是说:即使我们建立正确的东西,它也会因为不断变化的商业景观而迅速迅速。

彻底的设计阶段为未来的变化提供有限的保护,因此更精简的循环可能更好地工作:

基本上,我们采取了一块设计努力并将其转向前进,在重构阶段,每当几件块合并并准备被保护时发生的重构阶段。

在这种情况下,我们正在接受债务的创造,信任我们在短期内偿还的能力

写入重构的编写代码 - 与干净非常不同。这样的代码类似于那些应该足够强大的水手结,持续一段时间,但是在不再需要时容易拆除。

实际上沿途 - 在利益相关者的帮助下分析,仍然适合和将成为债务的东西。

在重构中定期花费 - 定期重新组织代码以反映您更新的理解。这很容易驳回,让债务堆积直到为时已晚,你需要一个大写。每次服用婴儿步骤都可以更加可持续,以及您的业务和您的开发团队。

一如既往,我试图总结本页中的文章的要点。 这应该对读者有用,但它也是一个现实检查,让我了解我所写的内容是否从上到下😅 技术债务是由于缺乏理解造成的 - 它源于业务需求之间的分歧以及如何写入软件。 您可以限制此类分歧... - 通过在设计阶段度过更多努力,并通过适当地讨论利益相关者的要求。 ...或者您可以通过明确规划精益释放和返工后来拥抱它。 这是未来不确定的更好的选择,可能会带来激进的变化。 帮助我撰写本文的一些资源,并且可以深入挖掘本主题: 📺债务隐喻 - 沃德·坎宁安的简短视频解释了债务与理解之间的关系。

📃技术债务缺乏了解 - 戴夫鲁珀特最近的一篇文章,反映了病房和第39章的定义和增加了宝贵的真实世界经验。 📊技术债务象限 - 马丁福勒的一个周到的论文涉及真正的技术债务及其不同类型。 💬管理 - 兰德的一篇关于管理层的伟大文章,办公室的讲话和沟通。 这一周' 什么'您对技术债务的经验? 让我在评论中或通过电子邮件了解! 每周五,我发布了一些关于产品和工程管理的建议,以及如何改善您在团队中的工作。 如果您喜欢这篇文章,您还没有,您可以订阅以下并在收件箱中获得每周更新!