选择区域语言: EN CN HK

特性开发中带来的两人三足

盾牌

伴随着公司的不断发展壮大,越来越多的新华三人参与到各个项目的开发之中,如何让这些新鲜血液快速成长,在最短的时间内融入团队就成为了当务之急。

在笔者负责的一个特性开发过程中,也遇到了类似的问题。当时,特性正处于软件工程描述的“V”字模型的编码阶段。新加入项目组的员工对于我司编程规范与开发流程的认知几乎为零。项目组要求既要保证特性进度,又要不抛弃不放弃地让每名新员工都早日成为骨干。特性急需一个两全齐美的方案来解决这一难题,在团队成员的共同努力下,本着理论指导实践的原则,最终在极限编程中找到了解决问题的那把钥匙——成对编程。

原著中是这样描述成对编程的:“产品软件由两个程序员并排坐在一起,在同一台机器上共同完成。这个实践保证了所有的产品代码都至少有一个其它的程序员进行了审视,而结果是更好的设计,更好的测试和更好的代码。让两个程序员去做一个程序员的工作看起来有些效率低下,但是实际上刚好相反。研究表明成对编程在让程序员们单独工作相同的时间内会得到更好的代码。这证明了两个头脑加在一起比一个好得多!”

在具体实践过程中,团队同时采用了“老员工与新员工成对”和“新员工与新员工”成对两种组合方式。

老员工与新员工成对主要承担复杂度较高的代码,老员工在编写代码的同时,向新员工介绍代码框架,已经之所以这样实现的原因。授课的过程同时也是一个理清思路设计重构的过程,因为老员工比新员工更容易陷入思维定势中无法自拔。当新员工就某个细节提出自己疑问的时候,老员工可能会意识到之前方案的缺陷,从而能够在早期阶段修正方案,规避风险。

新员工与新员工成对则负责相对容易上手的部分,两人可以取长补短共同进步,毕竟两个人在公司的成长环境类似,交流起来也更加顺畅。真理越辩越明,讨论过后再向老员工咨询的授之以渔,效果要远远好过不经思考就直接生搬硬套的授之以鱼,对于特性开发的理解也会更加深刻。

引入成对编程,实际上是将代码写作与组内走读这两个原本串行的流程,变成了并行处理。从效果上来看,既保证了特性代码的质量,又锻炼了新人为项目组后续工作打下了基础,可谓是一箭双雕。比较进度的完成时间与计划时间,未对特性开发造成冲击,基本上完成了项目组预先制定的目标。

方法总比问题多,在使用我司数年来积累的流程经验的同时,我们不能仅仅只是“拿来”,还应该积极思考能否加入自己的创新,使得能力基线得到进一步的提升。相信在华三人共同的努力下,H3C一定会屹立于世界品牌之林。

感谢您对本刊物的关注,如果您在阅读时有何感想,请点击反馈。