您团队的待办事项是一台冰箱。 清理干净!

看看你的冰箱。 它可能看起来很熟悉,并且有点混乱。 可能很难找到某些东西。 在许多方面,这类似于您的软件团队的积压工作。 虽然有用,但两者都可能有点臭

您也可以用类似的方式对它们的内容进行分类。

当然,您首先要吃所有这些,特别是如果已经准备好了。 这就是为什么杂货店是零食的最佳时间的原因。 选择太多了!

在软件项目中,这些是您掌握的常规故事,以及最近更改引入的错误。 您对所有代码都非常了解,因此您可以选择它们并高效地完成它们。

就冰箱而言,购物几天后,您想知道在Whole Foods上可能花了200美元,因为没有东西可以吃。

但是,当然没有什么可吃的,是吗? 那里有很多东西消耗着宝贵的冰箱空间。 让我们继续进行分类。

在您的生活中,这是一种理想的购买,可能健康或新颖。 说,喝醋或超级食物奶昔混合口味像污垢。

在您的软件项目中,这是一项艰巨的任务,涉及到没人知道的系统部分。 它上面写着“ Rat Hole”。 也许您甚至不相信这是值得做的,但又不想在冲刺计划中挑战挑战。 因此,您当然可以选择简单的错误或有趣的新UI故事。 其他所有人也都跳过它,因此所有其他工作都将继续进行,直到将其独自留在未分配的车道上为止。

您在Pinterest上看到了一个上菜的菜谱,并告诉自己:“我要做这个!”因此,您购买了所有食材,包括某些您从未发现过的甜菜。 取得成功的日子到了,但是工作已经漫长了一天。 因此,您屈服于诱惑并从Postmates身上订购一些油腻的东西。 因此,食材在那里摆放了一段时间,您仍然确信明天一定会成功。

最终,如果食材易腐烂,您将把它们扔掉,并因浪费食物和金钱而感到内。 但是,如果您购买了一个保质期很长的东西(如味o)的容器,该怎么办? 那正好在冰箱的后面。 当您搬出公寓时,您可能会找到它。

在软件上下文中,这些任务通常是“我们需要重写子模块X”或“向Y添加测试”类型的任务。 他们通常来自支持人员,他们花了数小时花时间研究混乱的代码,并最终对其进行补丁修复以解决当前的问题,但随后意识到,如果团队只是重写了此混乱的模块(或用lib或其他彻底的更改来替换它) ),那么将来的开发人员就不会被迫经历她刚刚经历的事情。 因此,她提出了一项任务。 然后取消支持并完全忘记它。 然后,当另一个支持人员针对该代码的问题执行相同的操作时,如果他们很幸运,他们将找到她的原始任务并对其进行+1或其他一些工作,然后会很高兴。 或者,更有可能的是,由于积压的订单很大,因此在经过粗略搜索后显示为空之后,提交一份本质上重复的票证,并在后面轻拍自己。

不要上当。 想想您何时成功进行了大的重构或重写? 难道是有人在积压的积压吗? 如果是这样,是什么使它从所有其他有良好意图记录的类似任务中脱颖而出?

以我的经验,任何重大的重构都是机会性的 ,是某些计划路线图项目的一部分。 这样更容易销售。

“我们将为Module X添加一个重要功能。按照其编写方式,这将永远花费并引入大量回归。 让我们做正确的事情,并首先进行重构,以便我们能够以可持续的方式实施新功能。”这是一个合理的决定,一个PM将会落后。 但是,如果模块X可以正常工作并且不妨碍任何当前工作,即使它是全部的意大利面条,那么为什么还要进行工作呢? 没理由。 而且你永远不会。

现在,在您的冰箱中,外卖容器中可能装有一些干米。 同上四天前三明治的最后一口。 在您的积压订单中,此类问题是您特定于故事的技术债务。

这就是您在代码中剩下的所有TODO。 它们通常只是良好意图的一个子类别,以使您对不完善的(又名可交付的,准时的)实施感到满意。 但是,在这里值得注意的是,尽管几乎没有机会制作汤或重写模块X,但实际上确实有机会吃掉剩菜或完成其中的一些TODO。 但是,就像真正的食物一样,成功的可能性在将其放入冰箱并随后骤然下降之后,也是最大的。

在软件环境中,这就是为什么像便签这样的瞬态媒体更适合捕获这些任务的原因。 在等待构建或质量检查来检查您的工作时,您可能会忽略一些TODO。 如果是这样,请给自己一个真正的轻拍。

但是请务必在一天结束时(或者如果您乐观的话)将其扔掉。 不要误导积压的待办事项代码或带有TODO注释的代码,因为它们会以某种方式使您完成它们。

您的生活中有什么经历使您相信“ 未来”,您会比“ 今天”更轻松吗?

我自己的经验也告诉我,由于上下文丢失,与《 今日我》相比,《 未来我》完成任何TODO所需的时间要长得多,而且一开始尝试的可能性甚至更低。

在某些方面,软件团队的积压工作比冰箱要麻烦得多。

  • 冰箱只能这么大。 数字积压工具本质上是无限的,这就是无底的意思。 像个坑。
  • 变质的食物会使整个作品变臭。 但是,涉及不再适用的问题的技术任务与您昨天创建的任务一目了然。 任何引用外界的善意任务都将很快变得过时。

但是,就像一台真正的冰箱一样,以下一些做法可能会有所帮助:

  • 对添加的内容保持冷酷无情。 这听起来像是您永远不会做的食谱,还是您在一个工作日晚上做的简单的事情? 仅捕获您认为值得做的工作,并且您将在不久的将来有时间做 。 堆栈将其与待办事项列表中的其他项目进行排名。 如果它属于底部,则应将其删除。
  • 换个小冰箱 。 这将迫使您更具选择性。 逐渐减少积压的大小。 要添加新内容,请挑战自己以扔出一些东西。 这是在保留重要任务的同时避免浪费您永远不会做的事情的好方法。
  • 在所有内容上注明有效期 。 在我管理的一些积压订单中,我们设有短期停车位,其他区域的使用寿命有限。 当前版本的JIRA随着票龄的增长,票证上几乎没有红点,这是一个很好的视觉指示,表明您要么忽略了重要工作,要么这项工作毕竟并不那么重要。
  • planned带计划的工作 。 就像有一个“厨房水槽”食谱很有用,该食谱可以轻松让您用完冰箱中的随机蔬菜碎片,而不会使其最终堆肥,有目的地寻找机会将积压的项目附加到即将到来的高优先级工作流中。 现在是练习“推销至管理”技能的好时机。
  • 经常清理它 。 如果您无法在其中快速找到所需的内容,那么它可能已经太大了。 给团队最后通.。 它已经幸存了三次清洗吗? 现在该是一劳永逸地捡起它或将其丢弃的时候了。 您将快速学习永不承担的各种任务,并首先停止添加它们。

感谢您的阅读,并保持冰箱和积压的冰箱清洁新鲜!

特别感谢Goodreaders同胞 William Cline ,Morgan Russell和Eric Lin在此博客上的深刻见解。 也要感谢我的好朋友莫妮卡(Mónica),她使我想起了我的上一篇博客文章比她的女儿大。 最终将其推广到世界各地是一个很好的推动。

注意:本文最初出现在我的技术博客 DePhillips Design上