“一支程序开发团队之所以成立,是为了承担并完成某项由任何个人都无法独立完成的任务”。在我看来,这是对程序开发团队一个比较贴切的定义,通常在软件企业里,会有若干支开发团队,它们因某一项目或产品而存在,项目完成了,团队也随之解散,程序员在各个团队中得到不断地学习与提高,除了技术能力,还有沟通能力、交际能力、协作精神等等,所以鄙人认为,团队工作比孤军奋战更有助于个人的成长。

在现代的软件企业中,分工合作正成为企业中一种工作方式的潮流而逐渐被更多的公司所提倡。因为只有团队合作,才能将复杂的事情变得简单,将简单的事情变得容易,使做事的效率倍增,可以说,团队合作正推动企业向简单化、专业化、标准化的方向发展。在软件这个特殊的行业,更需要如此,国内的软件企业长不大,出不了好的产品,第一大原因就是管理,第二大原因可能就是没有一个出色的团队。

组建团队的目的是希望通过最小的代价获得最佳的开发效果。因此我们尽可能找到出色的程序员,并根据他们的特点与优点,进行适当的分工,团队成员间需要相互补充,才能更好地实现团队协作的功能。众所周知,人与人的合作,不是人力的简单相加,而是要复杂和微妙得多,温伯格在这一方面总结了一个大致的规律:“由3名程序员组成的团队,只能够完成1名能力相当的程序员所完成之工作量的2倍。另外,如果每个开发组分别由3名程序员组成,那么基于同样的原因,3个这样的开发组协作完成的工作量,将是单个开发组的2倍,或者说是单个程序员所能够完成的工作量的4倍。因此,假设某个工程由单个程序员需要8个月才能完成,如果我们希望在4个月内得到结果,那么我们就需要派上3名程序员;而如果我们希望在2个月内完成工作,就必须分配出9名程序员。”

想想看,是不是有一定的道理?但这不是绝对的,在项目的进程中,有太多太多不确定的因素随时出现,我们大多的项目总不能按时完成。刚开始做项目计划时我们总喜欢一厢情愿地将开发过程中的所有条件都设想为最好的,但在实际的开发过程中,总会冒出一些乱七八糟的事情,有人生病了,有个呕气了,有人离职了,有PC总有故障,有一些BUG花太多的时间……

能在一个出色的团队中工作是一件很幸运很开心的事情,你不仅学到很多的知识,而且系统的成功开发也让你很有成就感。那么如何来组建程序开发团队呢?

温伯格认为:首先规划出程序的理想结构,然后按照最优的方式,选取最合适的人选来承担对应的工作。

我觉得对于既定的开发标准或方式,我的优点就是快!!!
我们的团队怎样利用和发挥我的特点?