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

简介:

本节书摘来异步社区《高效能程序员的修炼》一书中的第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上发的一条短讯:

  • “当一个编码瘾君子需要修好一样东西的时候,他只会多写上几行代码。” *
相关文章
|
2月前
|
安全 测试技术
测试团队的一次复盘实践
测试团队的一次复盘实践
144 0
|
5月前
|
人工智能 自然语言处理 安全
【网安AIGC专题10.19】论文3代码生成:ChatGPT+自协作代码生成+角色扮演(分析员、程序员、测试员)+消融实验、用于MBPP+HumanEval数据集
【网安AIGC专题10.19】论文3代码生成:ChatGPT+自协作代码生成+角色扮演(分析员、程序员、测试员)+消融实验、用于MBPP+HumanEval数据集
109 0
|
2月前
|
敏捷开发 测试技术 项目管理
在如今的大环境下你是否选择测试岗?——打造敏捷测试团队
在如今的大环境下你是否选择测试岗?——打造敏捷测试团队
|
6月前
|
人工智能 程序员 测试技术
AI人工智能时代,测试岗位程序员的未来:十个角度的探讨
AI人工智能时代,测试岗位程序员的未来:十个角度的探讨
90 0
|
8月前
|
前端开发 测试技术 Ruby
如何提升测试团队工作效率
如何提升测试团队工作效率
|
8月前
|
人工智能 自然语言处理 程序员
《游戏测试》编写 Prompt 将成为程序员的必修课
《游戏测试》编写 Prompt 将成为程序员的必修课
|
10月前
|
测试技术
嵌入式软件测试笔记6 | 嵌入式软件测试中独立测试团队需要做哪些测试活动?
嵌入式软件测试笔记6 | 嵌入式软件测试中独立测试团队需要做哪些测试活动?
98 0
|
11月前
|
前端开发 测试技术 程序员
程序员成长第八篇:做好测试工作
程序员成长第八篇:做好测试工作
190 0
|
11月前
|
人工智能 算法 IDE
让程序员动嘴写代码,Copilot测试新功能「嘿,GitHub!」
让程序员动嘴写代码,Copilot测试新功能「嘿,GitHub!」
192 0
|
监控 测试技术 程序员