请不要再责怪你的程序员“太慢”

“为什么上周没发布?”

作为管理人员,很容易将延迟发布的责任归咎于开发团队成员。但是你是否有认真想过,这些“慢悠悠”的程序员是否真的是不能按时发布的真正原因?

我们采集了大量关于程序员开发周期的数据,主要记录他们需要多久才能完成不同类型(Stories、Tests、Bugs)和不同大小(S、M、L、XL)的任务。

看看我们的发现

首先:程序员的工作效率是非常平均的。这些数据显示,我们所有试验者的周期都非常的相似:75%的开发人员大多会在175小时之内完成任务。

第二:不过如果在开发过程中又加进来另外一个任务,事情就有变化了。因为此时的利益相关者会先停下来考虑哪个优先。我们在看板中称之为反应时间。这时很多的时间被浪费在这个阶段上:

第三: 团队从“写软件”过渡到“测试,并准备发布”也需要一定的转变时间。

什么,你觉得自己的团队总是发布得不够快?那么你真的错怪开发人员了!

到底是什么延迟了开发进度?

对啊,既然不是开发人员的错,又是什么延迟了我们的开发进程呢?

含糊其辞的需求

需求的编写非常重要。试问,如果程序员不理解功能的要求又怎么能正确地开发出相应的功能呢?

“事实证明,很多时候,需求分析人员并没有彻底得考虑清楚,只有当我们开始设计和开发之时,才能发现真的有很多漏洞。” ——Eager Moose。

很多时候,客户自己都没有想清楚需要什么样的功能。所以开发人员不但需要理解用户的需要,还得领会用户没有说出口的潜台词。

如Sprintly网站采用填写的方式以了解用户的想法:

“当你打开Sprintly,面对这样的填空: As a ___, I want ___, so that ___。事实则是 当用户在填写这些空格的时候,根本就没法表述自己想要的功能特征。”——Darren Rogan。

这种形式虽然有助于指出某个特定功能的特定方向,但是其给出的范围却是很小的。

不断变化的需求

工作早就已经开展了,需求却还是不断地变来变去,开发人员常常抱怨自己要累觉不爱了!

一位《Hacker News》的用户,对此有一个很恰当其分的比喻:

我们:“终于砌好了墙壁,安装好了上面的屋顶,真心不容易啊!”

他们突然来一句:“这个墙壁的位置要改一下。”

来一道雷劈死他们吧!

其中一个可以避免需求中途更改的方法是在开发工作开展之前,先构建交互式的实物模型:

“如果我们的模型能做到符合客户的真正想法,那毋庸置疑我们的开发速度必定能加快不少。有时候只是因为我们自己不够努力理解用户所求或者没有充分交互,从而导致后面我们最终不得不在实施的过程中重新思考,然后再重建。”——Tobin Harris,Pocketworks总监。

敏捷的工作方式并不意味着我们可以随时改变需求。在理想情况下,我们在中途学到的知识都应该包括并考虑进将来的迭代中。

另一种阻止需求变化(和范围蠕变)的方式是预测进程。Sprintly还有一个功能就是允许我们在完工之前估算出所需要的开发时间:

如果有新加任务,这一功能也会让我们知道需要多多少时间才能完成开发工作。

开发任务转接

最后一个拦路虎大概就是开发任务转接了。这有下面几种形式:

1.开发人员任务A做到一半,突然要求他去做任务B。

2.开发人员任务A做到一半,突然要求他也去做任务B。

例如,我们有一个很棒的首席开发人员,能力很强,做过大量的代码审查,参加过很多会议,遇到过种种紧急情况。

先看看我们团队的开发时间周期:

在这种情况下,我们发现不同的首席开发人员其完成任务时间也不尽相同。

特别是,如果这时候你,作为一名管理人员,中途还要让开发人员去接手新的任务,问题就会愈发严重。变换重点就是在浪费团队资源。

关于开发任务转接,Joel Spolsky着实讲到了点子上:

在这个问题上我们得到的经验教训是,绝对不能让程序员同时做两件事情。首先要确保他们知道要做的是什么。其次,好的管理人员,应当能为他的团队消除障碍,以便于他们能专心致志地完成手头的工作和任务。如果出现紧急情况,要先想想自己能否处理,实在不行才能打断正在埋头刻苦攻关的程序员。

承担责任

作为管理者,提供一个助力程序员成功的环境是我们的工作。在将延迟发布的矛头指向开发人员、责备他们的失职之前,我们应该先看看自己有没有做到位。

下面这些步骤能确保你不是在拖团队的后腿:

1.让你的团队明白这一点:你们这是在努力让用户的生活变得更加美好。关键是要清楚用户的真正需要。得到大家的认同和支持很重要。开发人员对软件功能的激情才是提升开发速度的最大动力。

2.为你创建的每个任务制作一个任务模块或模板。每个开发人员都有对细分的任务说“No”的权力,直至出来一个可行的详细说明。

3.不可随意打断开发人员,减少任务切换的成本。在你向他们发送电子邮件或者下达命令之前,先评估一下对生产力产生的负面影响。

总而言之,千万不要随意责怪开发人员“太慢”,因为很有可能是你自己工作流程的问题导致了他们速度的减慢。

译文链接:http://www.codeceo.com/article/your-programmer-are-not-slow.html

英文原文:Your developers aren’t slow

翻译作者:码农网(小峰)

时间: 2024-08-09 18:33:19

请不要再责怪你的程序员“太慢”的相关文章

不要再迷茫了,程序员如何选择技术方向

最近写了「当程序员老去」「程序员真正的价值」两篇文章,传播甚广,今天是第三篇:「程序员如何选择技术方向」,史称「程序员三部曲」. 那之前写的几篇程序员文章算什么呢?算前传吧.以后再写程序员文章算什么呢?算后记吧. 2008年秋天的一个午后,温暖的阳光透过落地窗落在我面前这个长长的写字桌上,桌子对面坐的是一个瘦小的程序员,他的名字叫小明,小明有些茫然,他看着我,不知道该说些什么. 程序员都是很严谨的,我不得不首先发出一个 System Call: 你在客户现场这半年做什么工作? 写单元测试. 还有

18个Java8日期处理的实践,对于程序员太有用了!

Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API.Java处理日期.日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及SimpleDateFormat的非线程安全使其应用非常受限.新API基于ISO标准日历系统,java.time包下的所有类都是不可变类型而且线程安全. 示例1:Java 8中获取今天的日期Java 8 中的 LocalDate 用于表示当天日期.和java.util.Date不同,它只有日期,不

产品经理vs程序员——如果“爱”,请克制

摘要:韩寒在<长安乱>里说:佛是你打死我你就超度了我,而道是你打不死我我就超度了你.小编坐在办公室的角落里,看着公司的PM和程序员恨不得分分钟拿刀砍了对方,还要在一起改需求,就开始为他们的潜在信仰归属定义不清而纠结. 任何一个团队里都有因为工作而纠缠不休.爱恨交织的两方,在科技公司产品经理和程序员不幸中枪.其实他们所有纠葛的起因也非常简单,无非是一个提出需求,而另一方需要去实现.小编乱想一下,如果程序员嫁给了产品经理,那肯定是后者说想吃什么,而程序员去默默做出来,想想还不错. 产品经理常常在心

程序员到项目经理:从内而外的提升

转自:http://www.cnblogs.com/watsonyin/archive/2012/09/10/2679528.html 目录 从程序员到项目经理(一):为什么要当项目经理 从程序员到项目经理(二):升职之辨 从程序员到项目经理(三):认识项目经理 从程序员到项目经理(四):外行可以领导内行吗 从程序员到项目经理(五):程序员加油站,不是人人都懂的学习要点 从程序员到项目经理(六):程序员加油站 — 懂电脑更要懂人脑 从程序员到项目经理(七):程序员加油站 — 完美主义也是一种错

程序员生存定律--细论影响人生成绩的四个要素(1)

程序员生存定律这系列的目录在这里:程序员生存定律--目录 喜欢从头瞄的,可以移步. ------------------------------------------------------------------------------ 定律要素之一:自身价值 在金庸先生构建的武侠世界里,最犀利的杀伐武功应该是<独孤九剑>,但学会了独孤九剑却失了内功的令狐冲一样会被一堆无赖按到地上揍个鼻青脸肿.待到学会了吸星大法,内力大进,那就再没这回事了. 根据打铁还要自身硬的道理,修炼确实应该先从内功

什么才是程序员的核心竞争力

add by zhj: 对人的态度,对待工作和问题的态度,技术能力,我认为这是做技术的人的核心竞争力. 对人的态度:团队中的人的技术水平是参差不齐的,性格等各不相同.这就要求我们要有包容的心,对人要和蔼,不要 看不起别人,即使自己能力很强,每个人都有弱的时候,即使很牛逼的人也是一步步走上来的,没有谁一出生就牛逼. 如果一个人不好相处,那么无论他能力有多强,别人也不愿意与他合作同事,独学而无友,且孤陋而寡闻,最后这个人 不可能干成什么事,而且这类人不仅工作不顺心,生活上也不会幸福.所以,这类人应该

一位女程序员的奋斗路程

http://blog.csdn.net/estelle_belle/article/details/16944597 不懂虚函数有什么用,不知道除了构造函数,析构函数外还有拷贝函数,还有深浅拷贝之分.每天下班后我没有直接回家,而是留在了单位telnet到SUNOS上,开始了我学习unix的计划.我觉得是时候该离开这个安逸的国企了,说真的,真有些舍不得,我向PM提出辞职时,经理非常真诚的挽留我,说我工作做得不错,叫我考虑考虑再走. 一.并不成功的开始 我所读的学校是中国西部的一所普通高校.我进大

什么才是程序员的核心竞争力?

0.问题 如题所说,我现在是个刚毕业的小本,野鸡学校,而且不是正统的计算机专业,现在踏入了程序员这一行,到底什么样的技能才是才是程序员的核心竞争力,换言之,我在工作的前几年,需要累积什么样的技能,之后才能更好的和老板要工资,提要求. 上面是知乎上一位同学的问题,曹政老师以及其他几位同学分别从专业技能.思维方式.方法.态度等角度进行了深度剖析,值得我们学习和思考. PS:第一个答案是曹政老师的回答. ——————————————正文开始—————————————— 我们都知道学习能力很重要,那么学

【程序员在法国】&quot;投资&quot;健康,半年减13公斤

内容简介 [程序员在法国]"投资"健康,半年减13公斤 PS:再次声明,小编的[程序员在法国]系列都是真实发生的事情 来到法国,住在法国,爱上法国- 大家好,小编又来了.这次聊聊健康和健身的问题. 众所周知,程序员是一个比较逗比的群体,其中痴迷技术,呆萌木讷,不近女色,一心只爱宅男女神老干妈的不在少数.开个玩笑啦,我们程序员也可以很时尚很棒的. 之前的文章说到,小编2009年来了法国的第一学期,编程的课挂了两门,等于完全不会编程啊... 因此,2011年开始拼命自学编程,由此入了编程的