且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《程序员度量:改善软件团队的分析学》一案例分享:意料之外的成功因素

更新时间:2022-09-27 12:51:29

案例分享:意料之外的成功因素

这是个关于意外的度量的故事,之前我并没有发现它与软件团队和程序员的成功有多大的关联。这个例子来自一个工作在大型组织里的软件开发团队,大概有500名员工被安排在一个楼层里,楼层是开放的,但由许多的小隔间组成。
我一直非常信仰“关门”政策,也就是我倡导延长程序员的“安静”时间。程序员不应该被打断,这样他们一旦进入状态,就可以保持足够的专注。因此,我一直避免在一天中开过多的会议。并且从个人角度来说,当程序员正在工作的时候,我会努力避免打断他们。我个人也不愿意被打断。我的理论曾经是:增加不中断的工作时间能够提高生产力和质量。
为什么我说是“曾经的”理论呢?
这仅仅是因为我偶然注意到的而非刻意发现的事情。如前所述,我之前心存偏见。如果我能选择的话,我会让每个程序员都坐在办公室里,并且关上办公室的门。事实上,这个公司里的每个人都待在一个个小隔间里,每天都时刻遭受随意走动的人的干扰。
在我们发布周期的中间阶段,当程序员正在为产品功能增强和新特性而努力工作的时候,有一些程序员开始向我抱怨他们正在遭受太多的干扰。技术支持人员向他们询问一些产品问题,销售工程师向他们询问一些新特性是怎样工作的,并且产品经理和市场部人员也在向他们获得一些来自客户、分析师和媒体界的问题的答案,我也同样遭受很多这样的干扰,因此,我理解他们在说什么。有这么多的抱怨,我开始思考可以做些什么。或许我们可以利用一个周末,用水泥砖块修一堵高墙。
不过,随着时间推移,我注意到另一件事。那些遭受最多干扰的程序员也一直在抱怨,但同时也产出了好的软件:新的特性、关键的改进以及bug的修复。他们前瞻性地处理那些在很长时间之前就隐匿的东西,并且在革新方面有显著的增长。这些人当中有一些是我们团队中的***成员,这就是他们会比其他人遭受更多干扰的原因。虽然他们在抱怨,但是他们的工作并没有因此而耽搁。事实上,他们的工作比之前做得还要好。
我意识到虽然不断增加的干扰正在骚扰程序员,但事实上也在帮助他们。这将让他们去思考更多真正的用户问题,了解更多人们感兴趣的是什么,并且让他们对质量和技术更敏感。频繁地与外界打交道,开发团队会变得身心健康。受到干扰之后,需要花一点时间重新回到编程状态中,但是程序员会多知道他们之前并不知道的一些事情。这种结果有利于编写好的软件,以及获得更新颖的解决方案。从那时起,一旦我看到了这种模式,我就能一次又一次地再看到它们。
我习惯性地认为打断是一件坏事情,我曾试图在工作时间把我自己和程序员遮蔽保护起来。今天,我依旧避免那些安排在一天的中间时间的会议。但是如今我事实上将“打断”作为我跟踪的一个关键度量。我这样做并不是想确定程序员不能得到太多的打断,而是想确定他们是否频繁地被打断。现在,我需要程序员被打断。我需要他们自发地与开发团队之外的人进行交流互动。对于那些没有遭受打断的程序员来说,一旦他们拥有足够的经验,我也会尝试把他们带到无休止的打断中。现在我更喜欢部门之间交叉安排位置,具有开放的楼层规划和开门的办公环境。
打断是否具有价值,或者打断是否对那些在家里或远程办公的程序员也拥有同样的效果,说实话我也不知道。我不打算讨论那些在远程办公场所中来自外人的打断,比如,在家里办公时来自他们小孩的打断。但如果他们受到的打断来自于软件开发团队相关人员的邮件和电话,并且他们处理这些干扰,这些干扰所产生的效果或许就是类似的。我也跟踪邮件和电话的打断,但因为与我工作的程序员都是在同一地点的,所以我缺乏和远程工作人员相关的高质量数据。我可以说的是,我认为邮件和电话打断的影响与办公室里人际间的影响类似, 因此我相信对于远程办公的程序员来说,那些打断对他们会拥有相同的效果。
拥有关于打断的度量可以帮助我们跟踪这样的效果,但是同样它建立了一个与程序员沟通这些交流价值的手段。它可能并不能减少在打断时刻的烦恼,但是当你懂得打断是怎样积极地促进团队成员学习以及正面地影响软件质量后,他们会更容易接受打断的烦恼。