文档章节

提升团队编码效率的几条经验

凯文加内特
 凯文加内特
发布于 2014/02/10 15:55
字数 1763
阅读 56
收藏 1

1. 定义好团队结构

可以按照多种方式来定义团队结构,不过最常见的两种是主程序员团队与无我编程团队。

主程序员团队至少由3人组成:一个主程序员、一个高级程序员和一个程序管理员。这种结构非常适合于处理简单和直接的任务。另一方面,该结构并不适合于复杂的任务,因为在这种结构下,交流与任务协作都是非常有限的。

无我编程通常是个去中心化的团队,由10个左右的程序员构成。整个团队会共同参与设定目标,在项目的不同阶段,领导者也会发生相应的变化,这会提升工作满意度。除此之外,良好的协作与交流也使得这种结构非常适合于处理复杂任务。不过另一方面,缺乏控制可能会造成效率与生产力的下降。

2. 将项目分解为任务

在定义好团队角色后,接下来需要将项目分解为任务,并将这些任务分派给团队成员。好的做法是一个团队成员只负责一个任务。如果需要,可以将一个任务分解为几个更小的任务,这样可以很好地完成。

3. 制订项目计划

定义好团队结构并分派好任务后,接下来就需要制订项目计划了。在这个阶段,你需要确定好任务的优先级与顺序,同时还要指定好每个任务的截止日期,这样才能确定下来整个项目的持续时间。

这个过程可以通过传统手段完成:使用笔纸。不过,最好使用项目管理软件来做。这样不仅会加快计划的速度,而且现在有很多在线工具可以实现跨团队成员的沟通与协作。

在这个阶段中需要考虑到的一个重要的事情就是计划谬误——低估完成任务所需的时间。这种心理现象只会影响到我们对自己所要做的任务的预测。在1994年的一项研究中,研究人员让学生们估算一下他们完成论文所需的时间,平均的估算时间是33.9天,而实际完成的平均时间则是55.5天。因此,好的做法是将估算时间乘以1.7,这样才会得到一个比较恰当的估算时间。

4. 定义编码标准

不同的程序员有着不同的编码风格,这会导致低效的编程和错误修复过程。幸好,我们可以通过定义团队中每个人都要使用和遵守的编码标准来轻松解决这个问题。最好的做法不是强制施加标准,而是团队一同来制订标准,根据业界的最佳实践与推荐来制订。

5. 不要编辑现有代码

这个提示是对上一提示的补充,并且在编码标准尚未形成的情况下尤为重要。当团队中存在着不同的编码风格,同时又没有定义好编码标准时,经常出现的一种情况就是一个人会重写其他人的代码,觉得自己的代码风格是最好的。这会扰乱团队成员之间的关系,降低大家对工作的满意度,并且将大量宝贵的时间浪费在没什么生产力的事情上面。因此,建议大家不要这么做,如果怀疑或是发现有人这么做时要及时提出来。

6. 考虑结对编程

结对编程是一种特别的开发技术,指的是两个程序员在一台电脑前工作的方式。其中一个程序员编写代码,另一个程序员会审查他所编写的每一行代码。两个程序员的角色会频繁切换。

相较于独立工作的方式,结对编程有很多优势。两个程序员共同编写出的代码Bug更少,完整性更好,能够更快地找出问题的解决方案并提供更多的设计选择。除此之外,结对编程还会提升生产力,因为处于结对中的程序员不太可能频繁检查社交网络、邮件或是在工作时间内上网。

另一方面,有一些情况会破坏结对编程的效率:

  • 脱离(其中一个成员没在工作,离开了计算机)。

  • 一个程序员的经验比另一个少很多,他总是看自己的同伴写代码。

  • 程序员彼此之间缺乏交流和沟通。应该极力监控和避免这些情况的发生。

7. 使用版本控制软件

老话说的好“只要做就有可能出错”,编程的时候当然也会出现错误。然而,如果没有使用版本控制软件,那么团队成员可能就要花很多时间将代码恢复到之前没有错误的状态。借助于版本控制软件,恢复的过程就好比是按下一个撤销按钮一样简单。

8. 不要在延迟的项目中再添加人手

“在延迟的软件项目中添加人手会让项目更加延迟”,这句话出自Brooks之口。更加通俗一点,“9个女人不能在1个月内生出孩子”。那么,为什么说添加更多的人手反而会导致效率低下呢?主要的原因在于新人需要时间才能实现高效率。这个时间又叫做增强时间,涉及到对新人的培训,让其了解项目之前的工作、目标与细节信息。资深的团队成员要花很多时间在培训而不是工作上,这意味着放在项目任务上的资源就变得更少了。然而,这只适用于那些已经延迟了的项目。

9. 不要加班

当项目延期时,经理们通常会要求团队成员加班来完成工作。这么做会导致精力衰竭、动力降低、工作满意度下降的结果。此外在加班时,人的生产力实际上是很低的。因此,不要加班,而是在工作时间内保持高效率。

10. 工作时保持舒服的感觉

在编程时,重要的是要保证大脑运转正常,不要被其他事情分心。比如说保持足够的睡眠、在工作前做一些轻度的运动或是吃点东西都会提升工作效率。另外,一把舒适的椅子、明亮的灯光等都有助于大脑的全神贯注。


本文转载自:http://ningboxiao.iteye.com/blog/2013061

共有 人打赏支持
凯文加内特
粉丝 331
博文 667
码字总数 87615
作品 0
青岛
后端工程师
腾讯 Web UI 解决方案 QMUI Web 正式回迁开源

项目简介 QMUI Web 是一个专注 Web UI 开发,帮助开发者快速实现特定的一整套设计的框架。由腾讯广研 QMUI 团队出品。框架主要由一个丰富的 Sass 方法合集与内置的工作流构成。通过 QMUI Web...

kayo5994
2017/08/25
3.6K
6
【资料下载】2017北京云栖大会:云效企业级协同研发专场议题揭秘!

阿里巴巴原汁原味的研发协同平台是如何支撑双十一1682亿背后的研发协同?大中型企业如何完成公有云/专有云/混合云转型升级,实现高效协同研发?中国近5000万的中小企业如何保证研发过程的稳定...

云效平台
2017/12/11
0
0
测试主管如何规范公司的测试流程?

不管是不是刚组建的测试团队,流程大概分为如下。 1、梳理测试流程,可以重点把关的测试流程有: 需求Review:策划完成的需求文档必须让开发、测试、运营进行Review,提出Review意见并最终改...

白一客
2017/06/20
82
0
如何让设计团队的工作效率提升50%?亲测实用的方法!

如何让设计团队的工作效率提升50%?亲测实用的方法! 优设-UISDC2017-12-271 阅读 教程工作效率 对于大部分的设计师以及设计团队来讲,都会遇到如何提升设计效率的问题。尤其是在创业公司,最...

优设-UISDC
2017/12/27
0
0
负责任的技术 leader,是怎样确保团队效率的?

前有五人行西天取经,现有奥运团队成冠军,前有桃园三结义,现有最牛「中国合伙人」,滴水不成海,独木难成林,团队的力量不容小觑。 团队效率.png 社会是由一个一个的企业等单位组成,对应工...

蒲公英开发者服务平台
2017/12/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Bash常用内置变量介绍

Bash常用内置变量介绍 Bash中有很多内置变量,这些变量不仅影响Bash的相关行为,也大大的方便了用户的常见操作。**Bash内置变量大体上包括两类,一类是传统Shell所具备的,另一类就是Bash所特...

小陶小陶
17分钟前
0
0
05-《深度拆解Java虚拟机》之JVM是如何执行方法调用的?(下)

一、问题引入 我们知道,设计模式大量使用了虚方法来实现多态。但是虚方法的性能效率并不高,所以作者就想在此基础上写篇文章,评估每一种设计模式因为虚方法调用而造成的性能开销,并且在文...

飞鱼说编程
37分钟前
2
0
nginx统一入口 多服务出口

nginx配置多ip和端口统一调用入口log_format中$upstream_addr 标识打印转发的url地址配置upstream和locationhttp {include mime.types;default_type application/octet-stream...

GoldenVein
38分钟前
1
0
阿里P9架构师谈:高并发网站的监控系统选型、比较、核心监控指标

在高并发分布式环境下,对于访问量大的业务、接口等,需要及时的监控网站的健康程度,防止网站出现访问缓慢,甚至在特殊情况出现应用服务器雪崩等场景,在高并发场景下网站无法正常访问的情况...

我是你大哥
40分钟前
2
0
华为HiAI 助力苏宁易购,让你尽享完美视觉购物体验!

还在感慨商品照片与实物存在差距,又要退货? 还在抱怨被忽视的图片小细节,影响了生活品质? 想要“买买买”, 又担心海量的商品图片耗光你的流量? 就在近期 搭载HiAI能力的苏宁易购新版上线...

华为终端开放实验室
42分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部