最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

提升团队编码效率的 10 个提示

  • 2014-02-09
  • 本文字数:2165 字

    阅读完需:约 7 分钟

Voja Janjic 是一位自由的 Web 开发者,拥有多年的从业经验;此外,他还是一位出色的网络管理员。近日,Voja 撰写了一篇文章,谈到了如何提升团队的编码效率,如何提升团队中每一个成员的工作效率。毕竟,团队是由一个个成员构成的,如何在保证提升每一个人的效率的基础上提升整个团队的效率就是一个非常重要的议题了。

与其他活动类似,Web 或软件开发也是个社会性活动,如果你是个开发者或设计师,那很有可能你会身处在一个团队之中。团队由不同的人构成,每个人都有不同的习惯、动机、工作与编码风格。本文旨在介绍一些让团队更具效率和生产力的提示。

1. 定义好团队结构

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

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

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

2. 将项目分解为任务

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

3. 制订项目计划

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

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

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

4. 定义编码标准

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

5. 不要编辑现有代码

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

6. 考虑结对编程

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

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

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

  • 脱离(其中一个成员没在工作,离开了计算机)。
  • 一个程序员的经验比另一个少很多,他总是看自己的同伴写代码。
  • 程序员彼此之间缺乏交流和沟通。应该极力监控和避免这些情况的发生。

7. 使用版本控制软件

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

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

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

9. 不要加班

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

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

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

2014-02-09 11:343453
用户头像

发布了 88 篇内容, 共 258.5 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

java编程思想

乌龟哥哥

7月月更

图解网络:揭开TCP四次挥手背后的原理,结合男女朋友分手的例子,通俗易懂

wljslmz

TCP 网络协议 网络技术 7月月更 TCP四次挥手

iOS中类的本质及其存储

NewBoy

前端 移动端 iOS 知识体系 7月月更

测试部门的职责定位

BY林子

软件测试 敏捷测试 测试转型 测试部门职责 测试定位

接口测试要测试什么?

Xd

Java 后端 接口测试

Service Mesh的基本模式

阿泽🧸

Service Mesh 7月月更

【深度学习】AI一键换天

逝缘~

人工智能 7月月更

从Starfish OS持续对SFO的通缩消耗,长远看SFO的价值

EOSdreamer111

正则表达式

Jason199

正则表达式 js 7月月更

CleanMyMac X2022全新版功能介绍

茶色酒

CleanMyMac CleanMyMac X

ORACLE进阶(七)存储过程详解

No Silver Bullet

oracle 存储过程 7月月更

解读《深入理解计算机系统(CSAPP)》第3章程序的机器级表示

小明Java问道之路

汇编 指令 指令集 7月月更

CorelDRAW2022下载安装电脑系统要求技术规格

茶色酒

cdr2022

什么是数据资产?为什么背后蕴藏45万亿这么大的市场?

雨果

数据资产 数字经济

Qt实现音频播放

小肉球

qt 7月月更

Android 应用界面风格与主题

芝麻粒儿

android 7月月更 手机开发

非Vuex实现的登录状态判断封装

猪痞恶霸

Vue 前端 7月月更

攻防演练中沙盘推演的4个阶段

穿过生命散发芬芳

7月月更 沙盘推演

从Starfish OS持续对SFO的通缩消耗,长远看SFO的价值

股市老人

云原生应用开发之 gRPC 入门

宇宙之一粟

Go gRPC 云原生 Go 语言 7月月更

Flutter 3.0框架下的小程序运行

FN0

flutter 前端框架 小程序容器

接口测试进阶接口脚本使用—apipost(预/后执行脚本)

Xd

Java 数据库 接口测试工具

【愚公系列】2022年7月 Go教学课程 006-自动推导类型和输入输出

愚公搬代码

7月月更

【SolidWorks】修改工程图格式

大头博士先生

SlideWorks

Ubuntu安装PyCharm

IT蜗壳-Tango

7月月更

CleanMyMac X试用版Mac清理工具

茶色酒

CleanMyMac CleanMyMacX CleanMyMac X

Python|读写文件

AXYZdong

Python 7月月更

Qt|使用QWebEngineView加载HTML使用及问题

中国好公民st

qt 7月月更

5G NR 系统消息

柒号华仔

5G 7月月更

spark调优(四):瘦身任务主体

怀瑾握瑜的嘉与嘉

spark 7月月更

牛客基础语法必刷100题之基本类型

京与旧铺

7月月更

提升团队编码效率的10个提示_语言 & 开发_张龙_InfoQ精选文章