《高效能程序员的修炼》一你的团队能通过电梯测试吗

简介:

本节书摘来异步社区《高效能程序员的修炼》一书中的第3章,作者: 【美】Jeff Atwood 译者: 陆其明 , 张健 责编: 陈冀康, 更多章节内容可以访问云栖社区“异步社区”公众号查看。

你的团队能通过电梯测试吗

高效能程序员的修炼
软件开发者们是真心喜爱编写代码的。但根据我的经验,他们当中很少有人可以解释清楚他们为什么在编写代码。如果你不信,你可以从你的团队里找个人来测试一下:问他在做什么;接着问他为什么要做那个;继续问下去,直到你得到一个可以让你的客户理解的原因。

你在做什么?

我在修复这个数据网格的排序问题。

你为什么要解决这个问题?

因为它在bug清单上。

它为什么在bug清单上?

因为有个测试人员把它作为一个bug报出来了。

为什么它被作为一个bug报出来了?

测试人员认为这个字段应该按照数字顺序而不是字母顺序来排序。

为什么测试人员这么认为?

很显然,如果把“条目2”排在“条目19”的后面,用户在查找的时候就会有麻烦。

如果这段对话在你看来很奇怪,或许你还没有跟足够多的软件开发者一起工作过。你知道你到底要问多少次“为什么”才会得到你的客户真正在意的答案吗——哪怕只挨上一点边?正如“你要舔多少次才能吃完一根tootsie pop棒棒糖”这个问题,答案一定会让你很吃惊!


6

这是一个巨大的鸿沟!

软件开发者认为他们的工作就是编写代码。其实不然。(这句话是我从Billy Hollis那里“偷”来的。他曾以软件痴迷者为主题做过15分钟的精彩演讲。)他们的工作应该是解决客户的问题。当然,我们偏爱通过软件来解决问题,那的确包含了编写代码。但是,我们要有全局的观点:在交付完整的解决方案的过程中,编写代码只是其中一环。它自身并不是目的。

作为软件开发者,我们花了那么多时间沉浸在没完没了的、支离破碎的细节中,以至于我们太容易掉入为了编码而编码的陷阱中。如果没有明确的焦点或者某种让我们团结在一起的东西,我们就会只见代码这棵树木而不见整个森林。由此可见,拥有一个清晰的项目远景声明(Vision Statement)是极其重要的,每个人都可以把它当做这个项目的试金石。如果你把远景声明搞清楚了,你团队里的每个人都应该能通过由陌生人主持的“电梯测试”——在60秒之内,清晰地解释他们在做什么,以及为什么人们会在意他们正在做的事情。

如果你的团队不能用一种合理的方式向一个外行解释他们的工作,不管你有没有意识到,你都已经处在麻烦之中了。所幸的是,你有个好伙伴——Jim Highsmith可以帮助你。他推荐了一个可以构建项目远景模型的速效公式:

一个项目远景模型可以帮助团队成员通过“电梯测试”——它能赋予团队成员在2分钟之内向别人解释清楚项目的能力。这个模型出自Geoffrey Moore1的一本书:《跨越鸿沟》(《Crossing the Chasm》)。它遵循如下的形式:

为了(目标客户)

他们(关于需求或者机会的说明)

这个(产品名称)是(产品类别)

它的(关键优势、吸引人的购买理由)

不像(主要竞争对手的替代产品)

我们的产品(主要的差异化的特性说明)

创建一个项目远景声明可以帮助团队持续专注于产品的关键方面,哪怕细节一直在快速变化也不怕;否则,团队很容易就会被短期(2~4周)开发迭代中的问题缠住,从而失去对整个项目远景的控制。

我对这个速效公式并不感冒,因为它太过死板。但它是一个不错的开始。玩玩“Mad Libs”2吧,看你能想到些什么——绝对不能没有远景声明,但也不要一个毫无感觉、用杂乱无章的拼盘伪装成的远景声明。然而,我认为Jim关于开发远景声明的第二个建议更能给我们带来希望。

我认为,即使在一个提供信息技术服务的组织里,每个项目都应该被当作是一个创造“产品”的过程。无论这个项目的目标是提升内部的会计系统,还是建立一个全新的电子商务网站,面向产品的思维方式必能带来丰厚的回报。

我发现有一种做法在让整个团队思考产品远景方面很有效果,那就是“设计产品包装盒”。这个练习可以在项目启动阶段很好地激发大家的思维和讨论。整个团队假设产品最终会被装在一个可拆封的盒子里,而他们的任务就是设计这个包装盒的正面和背面。这包括给产品起个名字、一幅图片、正面列出3~4个关键点来“叫卖”这个产品、背面的详细特性说明以及运行要求。

实践证明,想出15~20个产品特性是容易的。难就难在,要选出其中3~4个能促使人们购买这个产品的特性。这个过程中还经常会发生关于“谁是真正的客户”的激烈争论。

“设计产品包装盒”是构建远景声明的一种极好的方法。它基于一个具体的、真实世界里的概念,因此大多数人都可以轻松地开动他们的脑筋。忘掉那些空中馅饼式的远景追求吧,让我们务实一点:我们(假想)的产品包装盒看起来会是什么样的呢?

我们都是消费者。我们对产品包装盒的设计目标都很清楚。如果不拿产品包装盒跟极端的“电梯推介3”相提并论,那它也应该:

  • 用最简单可行的方法来解释我们的产品是什么;
  • 把潜在客户愿意购买这个产品的原因解释得一清二楚;
  • 与货架上所有其他的产品包装盒相比具有独一无二的辨识度。

这里有个例子,让我们来看看命运多舛的Microsoft Bob4的包装盒。你该如何解释为什么客户应该购买Microsoft Bob?甚至你该如何说明这个见鬼的Microsoft Bob到底是个什么东西?


5


看看那些现有的、你觉得引人注目的产品包装盒是有指导意义的。当然,看看那些你觉得不好的包装盒也可以引以为戒。我们很清楚我们的产品包装盒不应该是什么样子。

从项目开始的第一天就确立一个坚定的远景声明吧!如果你还没有,那就从Jim众多美妙的建议里随便挑选一个,然后照着去做,立即构建出一个远景声明。在缺乏清晰的远景声明时,无法通过“电梯测试”的团队数目将是令人震惊的——他们不能解释他们正在做什么,或者为什么他们的工作是有意义的。不要犯那样的错误。构建一个了不起的远景声明,让你的队友们可以使他们的工作与这个远景相关联。确保你的团队可以通过“电梯测试”。

作者在Twitter上发的一条短讯:

  • “当一个编码瘾君子需要修好一样东西的时候,他只会多写上几行代码。” *
相关文章
|
9月前
|
安全 测试技术
测试团队的一次复盘实践
测试团队的一次复盘实践
265 0
|
人工智能 自然语言处理 安全
【网安AIGC专题10.19】论文3代码生成:ChatGPT+自协作代码生成+角色扮演(分析员、程序员、测试员)+消融实验、用于MBPP+HumanEval数据集
【网安AIGC专题10.19】论文3代码生成:ChatGPT+自协作代码生成+角色扮演(分析员、程序员、测试员)+消融实验、用于MBPP+HumanEval数据集
199 0
|
4月前
|
安全 测试技术
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【10月更文挑战第1天】北京大学李戈教授团队提出了一种名为“统一生成测试”的创新方法,有效提升了大模型如GPT-2和GPT-3在单一测试中的代码生成覆盖率,分别从56%提升至72%和从61%提升至78%。这种方法结合了模糊测试、变异测试和生成对抗网络等多种技术,克服了传统测试方法的局限性,在大模型测试领域实现了重要突破,有助于提高系统的可靠性和安全性。然而,该方法的实现复杂度较高且实际应用效果仍需进一步验证。论文可从此链接下载:【https://drive.weixin.qq.com/s?k=ACAAewd0AA48Z2kXrJ】
105 1
|
5月前
|
人工智能 测试技术 开发者
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【9月更文挑战第27天】北京大学李戈团队在人工智能领域取得重要突破,提出HITS新方法,通过将待测方法分解为多个切片并利用大型语言模型逐个生成测试用例,显著提升代码测试覆盖率,尤其在处理复杂方法时效果显著,为软件开发和测试领域带来新希望。尽管存在一定局限性,HITS仍展示了巨大潜力,未来有望克服限制,推动软件测试领域的创新发展。论文详情见【https://www.arxiv.org/pdf/2408.11324】。
187 6
|
2月前
|
数据采集 人工智能 自动驾驶
VSI-Bench:李飞飞谢赛宁团队推出视觉空间智能基准测试集,旨在评估多模态大语言模型在空间认知和理解方面的能力
VSI-Bench是由李飞飞和谢赛宁团队推出的视觉空间智能基准测试集,旨在评估多模态大型语言模型(MLLMs)在空间认知和理解方面的能力。该基准测试集包含超过5000个问题-答案对,覆盖近290个真实室内场景视频,涉及多种环境,能够系统地测试和提高MLLMs在视觉空间智能方面的表现。
85 16
VSI-Bench:李飞飞谢赛宁团队推出视觉空间智能基准测试集,旨在评估多模态大语言模型在空间认知和理解方面的能力
|
安全 Java 测试技术
带你读《2022技术人的百宝黑皮书》——大淘宝用户平台技术团队单元测试建设(1)
带你读《2022技术人的百宝黑皮书》——大淘宝用户平台技术团队单元测试建设(1)
144 0
|
9月前
|
程序员 测试技术
程序员难以一次性写好代码并持续修复Bug,主要源于软件的高复杂性、需求不确定性、测试局限性和技术能力限制。
【5月更文挑战第11天】程序员难以一次性写好代码并持续修复Bug,主要源于软件的高复杂性、需求不确定性、测试局限性和技术能力限制。复杂的系统易产生意外问题,需求变化导致初始设计难完备,测试无法覆盖所有情况,而技术更新和个体能力差异也会引入错误。因此,持续调试和优化是保证软件质量的关键步骤。
86 0
|
9月前
|
敏捷开发 人工智能 机器人
【测试】无测试组织:测试团队的敏捷转型
【测试】无测试组织:测试团队的敏捷转型
144 0
|
9月前
|
敏捷开发 测试技术 项目管理
在如今的大环境下你是否选择测试岗?——打造敏捷测试团队
在如今的大环境下你是否选择测试岗?——打造敏捷测试团队
|
Cloud Native 程序员 Go
程序员面试中的测试驱动开发:如何展示你的编程范式
程序员面试中的测试驱动开发:如何展示你的编程范式
103 0

热门文章

最新文章