开发人员如何学习业务涉众的语言?
本文要点
不同的人使用不同的词语和含义——要注意它们。克服障碍和拦路虎是每个人的本职工作——不仅仅是产品开发人员。个人和团队的学习对你的产品也很重要。当你的项目陷入死胡同时——不要惊慌,而是要尝试运用真实期权。要有风险意识,学习如何以不同于只使用“风险日志”的方式来处理它。
15 年来,我一直对我们所说的“文字和语言的魔力”感兴趣。它与人类历史上的交流方式密切相关,也与语言在翻译中迷失而扭曲了真实的交流意图密切相关。现在,当我必须在业务涉众和开发人员之间来去自如时,我发现,如果我们通过不正确的过滤器来理解,那么口头或书面消息经常容易误导人。
学习外语最简单的方法是什么?和说这种语言的人交谈。这条规则也适用于我们——在项目环境中进行协作和沟通,但是每天都要呆在单独的群体中(如开发团队或运营团队)。
如果我们观察参与软件开发过程的不同群体,我们可能很容易看到他们在不同的语言层次上进行交流,使用不同的“字典”——多套单词、意思和句子——使彼此难以理解。
在本文中,我将介绍我观察到的气氛最紧张的领域:讨论障碍和拦路虎、个人和团队学习、真实期权和风险管理。
障碍和拦路虎
业务涉众和我们开发人员一样认识到拦路虎,即瓶颈问题,并努力解决;我们需要做的是给这些事项赋予货币价值。如果它们在报告周期结束时对公司的财务状况产生重大影响,我们必须在财务报表中予以确认。仅仅说“我们受阻了,做点什么”是不够的。为了让业务涉众纠正问题并有效地确定优先级,我们应该用有助于将问题货币化的信息支持他们的决策过程。哪部分工作受阻了,会耽搁多长时间?对交货时间有什么影响?是否有任何始料不及的开发人员空闲时间?队列中用有其他哪些事项依赖于受阻的事项?这类信息不仅可以为项目经理提供支持,而且可以为大多数预算所有者提供支持,帮助他们做出正确的决策。
从业务涉众的角度来看,重要的是理解作为开发人员所面临的问题。这就是为什么我尝试为涉众提供他们能够接受并容易联系在一起的类似情况。你对增加正在进行的工作有意见吗?将其与库存管理或在建资产联系起来。你的项目是否产生了技术债务?把它与你仓库里过时的自行车或必要的贷款偿还进行比较。
你可以在文章《自行车、香蕉和正在进行的工作 》中阅读更多关于产品开发人员的库存管理信息。
安排预算和规划团队学习时间
我将从一些显而易见但却被遗忘的事情开始:如果我们优化流程,使人们保持忙碌,全力以赴地工作,那么我们永远不会为团队的主动学习留出时间。我故意用“主动”这个词,因为被动学习是当我们重复同样的任务时发生在我们身上的事情,这是 19 世纪研究的一个著名现象。然而,这主要适用于制造业。
在以知识为基础的工作中,腾出时间学习是至关重要的,这类似于找时间改进。
当然,这并不意味着我们应该走到团队面前说,“从现在开始,下午 2 点到 3 点之间,你可以学习和提高。”而是给人们空间、舒适的条件和安全感,让他们说:“现在我要学习。现在我要阅读。现在我要做的工作后面会为我们带来帮助”;给他们信心,让他们知道,如果他们有空闲,他们可以利用这些时间进行自我发展,这从来都不会是一个失败的投资。但是,为了可持续性,每个项目都必须为其成员提供学习和改进的空间——然后这些空间将成为常规项目预算的一部分(直到它可以直接与项目目标相联系)。
当你为一个项目做预算时,学习部分属于研究费用的范畴,它不应该被资本化,而且总是被一笔勾销。这就是为什么你不需要单独核算或跟踪它。然而,你可能在你的项目报告中这样做,这取决于涉众要求的详细级别。
个人和团队学习的益处
让我们从一句话开始:知识工作是一个不断学习的过程。在项目的任何给定时刻,我们都在使用我们最好的知识。但我们永远不应该,也永远不会停止学习。当我和一个游戏购买平台团队设计工作流时,一个基本的问题是“学习阶段是什么?”,而不是“过程中的步骤是什么?”,或者“这一阶段的前一阶段是什么?”,我们只专注于学习。
通过持续透明地可视化我们在项目开始时计划了什么,以及我们在分析和开发期间发现了什么,我向项目涉众展示的是发现的工作与预期的工作。这有助于他们理解我们如何在预算和时间方面的进展,以及我们如何决定我们将继续开发什么,以及在项目的任何给定点上什么是不那么重要的。
业务涉众不是你的敌人;一旦他们有了足够可靠的信息,知道我们在哪里,以及我们预计不久将发生什么,他们就愿意接受合理的要求或决定——甚至是团队成员可能需要的额外学习时间。
你能做的就是利用学习曲线效应来寻找学习机会。虽然这是我们不应该避免的事情,但我经常看到在规划项目或预测工作时忽略了这一点。当团队还在筹划时,我们倾向于将度量和统计数据从稳定状态转换到初始阶段。同样,这也适用于角色中的新人,他们不仅需要了解自己在项目中的位置,而且通常还需要了解新的职责。
在计划工作或识别障碍时,让我们记住这一点。你可以在我写的另一篇文章《学无止境——为什么学习曲线效应如此强大? 》中读到更多关于学习曲线效应的内容。
真实期权
InfoQ 的文章“敏捷实践背后的真实期权 ”探讨了如何使用真实期权将决策推迟到最后一刻。我想在这里澄清一件事:本文中所指的“真实期权”是基于布莱克 - 斯科尔斯模型的,该模型是期权估值的方法,但实际上并不包括真实期权。
我们在财务管理中认识到的真实期权是项目或商业投资的替代品。实际上,在你的项目中,你有四个选项需要考虑:延迟选项、扩展选项、放弃或退出选项以及重新部署选项。
我将跳过延迟选项,因为本文将对此进行深入讨论。
当一家公司有可能进行进一步投资以增加项目的净现值时,就存在扩张选项(这起初似乎不值得进行)。
放弃(或退出)选项实际上是在项目的生命周期内关闭项目的选项,因为继续该项目的工作在财务上不再合理。从我个人的经验来看,考虑到沉没成本和整个决策的心理因素,这一选择是最难付诸实施的。
最后一个选项是重新部署选项,即公司决定不放弃当前项目,而是将项目的结果用于另一个项目。这并不总是可能的,因此不能想当然,但是拥有这个选项可以将项目关闭所带来的损失降到最低。
每一个选项都需要仔细分析项目现金流和基于财务预测的涉众决策。例如,如果你选择延迟而不是放弃,那么你需要确保项目 NPV(净现值)要么仍然为正值,要么在方针更改之后仍然为正值。任何对 NPV 产生负面影响的决策都将被业务涉众和发起人拒绝。
会计中的风险和不确定性管理
让我们从我们通常经历的风险和不确定性的区别开始。风险是可能发生或可能不发生的事情,但我们能够根据过去的记录统计计算出它的概率或频率。不确定性事件是那些我们无法用统计数据有把握地进行预测的事件。
为了应对不确定性,我们做了市场调查,目的是将其最小化。我们可以使用调查、收集反馈和执行回顾。
基于数据的风险管理提供了更广泛的可能性。最常见的一种方法是使用期望值,它关注结果的概率。下一个是敏感性分析,当我们可以在项目中的关键变量之间建立依赖关系时,可以使用敏感性分析。它通常需要改变一个关键变量来观察其他变量的行为。假设涉众问我们,将一个开发人员分配到另一个项目会产生什么影响。我们应该把这个开发人员看作一个“关键变量”,并分析他对其他变量的影响。少一个开发人员意味着减少总成本,但增加了交付时间。另一个可能的变化是,当人员离开时,团队的学习曲线可能会发生变化,这可能会影响项目预算。一旦所有这些因变量都关联起来并进行了分析,我们就可以从项目的角度来决定这个场景是否可以接受。在这些情况下,真正支持我们的是真实期权——这就是所有这些概念如何协同工作的。
开发人员可能非常熟悉的是不同种类的模拟,包括蒙特卡罗模拟,以更好地理解风险对项目的影响。它依赖于大量的数据,可以同时分析更多的变量。对于蒙特卡罗方法,重要的是输入数据的随机性,以便产生更可靠的概率分布。由于该方法收集了大量的数据点,在概率估计方面比敏感性分析等仅从一个变量的角度进行概率估计更可靠。
谈到影响,你可以使用“影响概率”(或“严重频率”)矩阵,其中包含四个项目风险选项:接受、转移、控制 / 减少或放弃 / 避免。
最后,数据分析可能没有直接列出但值得考虑的是你所处理的涉众类型。人们通常将其分为三类:风险偏好者、风险中立者或风险规避者。重要的是,记住你的涉众代表着什么样的性格。不仅在讨论项目风险时,而且在试图说服某人接受新想法或构建业务案例时,了解人们的风险类型的这种分类都是值得的。虽然可能没有人真正考虑个人风险偏好,但它与我们大多数人始终相关。
即使是在会计或产品开发等比较复杂的领域,仍然有人在背后支持这些流程。沟通是理解你的同行和客户的关键;频繁的交流有助于利用双方广泛的知识,我们所有人都可以为这种理解做出贡献,或者至少可以学到一些让我们作为人类更加丰富的东西。