失去信天翁

我最近将角色移到了一个新团队。 我的新团队工作出色,正在做很多伟大的事情,但是他们并没有按照自己的意愿迅速行动。 我开始研究原因,并意识到部分原因是由于他们没有处理技术债务的机制的方式导致其积累了许多年。 这导致代码库的某些区域变得腐烂且无法使用。

想想-我曾经喜欢这个代码库

但这并不罕见。 作为一个行业,数字化生产希望推动事情向前发展,但这样做常常使他们忘记,仅仅是因为产品X不再是当月的味道,只要它仍然面向客户(我的意思是内部或外部客户) ),这仍然是团队拥有和维护的东西。 慢慢地,这个项目从每个人都想去的地方变成了挂在开发团队脖子上的信天翁。 只要保持这段代码有效,您就将致力于“保持开灯”的开发工作。


计时器灯开关—继续按下!

保持点亮不只是扔掉开关然后走开的问题,它更多地是计时器上的开关,需要不断按下以确保持续的服务。

这种工作不是“有趣”,“激动”甚至不是“奖励”,它只是更新证书,修复内部版本等。这种工作本身可能会使人沮丧,尤其是在必须这样做的情况下,开发人员每次在产品小组中按下“点亮”按钮时都需要证明自己的理由。

那么,我们该怎么做才能防止这种情况发生? 好吧,有时候我们知道我们只需要保持产品的生命。 在这种情况下,产品团队应投入一定的时间,以投入一定的时间来确保这些产品处于最佳状态。

应该在团队中共享有关如何维护它们的知识。 请不要让任何人负责产品维护–首先,考虑总线因素,如果它们被撞倒了,您的按钮就会松动,但其次,没有人会喜欢这种工作。 我还没有遇到一个开发人员,他梦想有一天他们将在代码库中负责BAU,但是我们知道这是必须要做的。 没有什么比成为“保持灯亮”专家的团队精神更快地激发团队成员的动力了。 如果我们承担全部责任,那么我们将分担责任。

最好的选择是什么都不做。 在这种情况下,不执行任何操作,我的意思是不执行任何维护工作,而仅仅是因为没有维护工作要做。 这意味着杀死不再使用的产品。 可能需要花些力气才能完成工作,但是将团队从维护负担中解放出来将使他们更加自由地完成令人激动的新项目的新要求。

诚实地说,要保持照明状态需要进行多少工作。 公开工作,而不是像肮脏的小秘密一样隐藏技术债务。 让团队确认他们花了多少时间来维护旧版产品。 在可能的情况下,将您的产品放到生产线上; 即使这意味着要花两个星期使所有构建都以相同的方式工作,但是如果您可以证明从长远来看可以节省多少时间,您会发现它变得毫无头脑。

学习讲相同的语言-如果您需要在时间和精力上向项目经理说明问题,请参加会议,并提供基于工作量的估计,以评估所提出的所有选项。 如果您要卖出在新功能上还清技术债务的好处,请确保您知道有什么好处。 展示多种方法的利弊与我的团队很好地相处,然后我们讨论每种方法的优缺点。 每组选项都应始终提出“不采取任何措施”的建议。 保持信天翁,但要知道这样做的成本。 我曾让团队成员说:“哦,但是在x个月的时间内,将不再需要该产品,因此我们可以杀死它”。 如果是这样,那就太好了-但要花很多时间和精力来维持这个在很大程度上已经过时的工作,而不是冻结依赖项,以便可以隔离代码。 始终牢记,截止日期的好处是可以错过截止日期。 在“ x + 2个月”或“ x + 6个月 ”内保持产品存活的额外费用是多少? 实际上,这是您不摆脱信天翁代码所带来的风险。

最重要的是,我们需要共同努力确定解决方案。 这不是单靠技术就能解决的问题。 整个产品团队(产品,技术,UX和项目管理)需要共同努力,以转移对此类问题的思考,没有什么可以完全消除维护/技术债务的,但是诚实并谈论它可能意味着,至少,我们所有人都可以对自己的承诺达成共识。