软件开发团队分工-软件开发团队的组织结构2.1组建团队时应考虑的因素
Highway1/2.RailtransportationlanduseBig.Urbanrailtransitlow-pollutionurbanpublictransporthasbecomemajorpositivedevelopmentcity'smaintransportinfrastructurethroughurbanrailtransithelpcurbrapidgrowthtrafficdemandhelpreducecorefrequency软件开发过程中的团队管理摘要:探讨了当前软件开发过程中团队管理的弊端,给出了建设更高效软件开发团队的方法,提出了提高软件开发团队的积极性以及优化目前软件开发团队管理的方法。关键词:软件开发团队管理高效开发团队建设在当今社会,软件开发还是一项“人力密集型”的工作,不能实现自动化生产软件开发团队分工,这项工作由软件开发团队完成,那么是团队呢?团队就是由一组具有共同目标、相互关联、相互合作的人组成的一个集体。软件开发团队的就是以开发出软件产品、完成项目而组成的集体。软件开发团队的重要性软件开发团队之所以凝聚成为一个集体,就是为了相互合作,相互关联,解决个人不能解决的难题,从而完成软件开发任务。
当独立的个人组成团队的时候,创造性会大大的提高,而且,团队有一个明确的目的,把这个目的分配给个人,会提高个人的工作效率,减少个人因个人能力导致的失误。另外,团队中的沟通交流十分频繁,这样可以让不同的个人协同工作,相互弥补各自的不足。软件开发团队的组织结构2.1组建团队时应考虑的因素组建软件开发团队,首先要明确团队的目标,确定团队要解决一个什么样的具体产品,明确这个产品应该具备什么样的功能,比起其他同类的产品有什么创新之处,采用什么新的方法和技术,后期如何进行维护和升级等问题。其次要确定团队的种类,根据团队的不同选择合适的团队成员。软件开发团队有问题解决型团队,创新型团队,执行型团队等。问题解决型团队是为了解决一个复杂的问题,或者解决没有明确定义的问题的团队。创新型团队的目的是探索解决问题的可能性和选择性,寻找解决问题的最佳、最便捷的方法。执行型团队的目的是解决一个具有明确定义的问题,这类问题的目的性很明确,往往具有一定的紧迫性。根据这些不同的目的,选择具有创新思想的人、具有扎实基础的人或者具有高工作效率的人加入不同类型的团队。2.2团队模式Highway1/2.RailtransportationlanduseBig.Urbanrailtransitlow-pollutionurbanpublictransporthasbecomemajorpositivedevelopmentcity'smaintransportinfrastructurethroughurbanrailtransithelpcurbrapidgrowthtrafficdemandhelpreducecorefrequency-团队可以分为业务团队、首席程序员团队、特征团队和大型团队等。
业务团队是一个由一个领导带领的团队,团队的成员可以来自不同的领域,精通不同的编程语言,在领导人员的带领下可以组建问题解决型团队或创新型团队,相对较灵活。首席程序员团队由其中代码编写经验最丰富的程序员负责程序架构、重大问题的决策以及编写程序框架,其他程序员负责在这个基础上按照首席程序员的思路进行添加功能,完善程序的功能,这样的团队适合组建创新型团队或者问题解决型团队,可以充分利用首席程序员的创新型和领导作用。特征团队的特征是人员来自不同的部门,这些人员的作用就是联系各自的部门,向各自的部门汇报和负责,这类团队可以组建成为问题解决型团队或者执行型团队。大型团队的层次分明,内部分工明确,人员组成较多,内部需要很好地沟通。软件开发团队中存在的弊端3.1缺少具有领导才能的核心领导的作用主要有两点,制定工作计划和树立团队目标。领导如果没有制定合理的工作计划,团队成员就会失去对工作的热情,从而导致团队的凝聚力大大降低。一个具有挑战性的目标,会让团队成员向着同一个方向工作。否则,目标缺失这会导致一种现象,那就是表面上大家都在努力工作,但是实际上项目进度并不快,这是因为团队成员没有向着一个共同的目标去努力。
3.2团队成员相互的合作不协调团队成员之间的合作不协调的问题在软件开发中十分普遍,从现在开看,这个问题在同学之间的合作中就已经开始显现出来,这个问题的根源是软件开发团队成员的个性特点不同。从事软件开发的人员大都具有比较高的学历和很好的教育经历,这有可能会使得他们不愿相信团队中的其他成员,导致彼此之间缺乏有效的沟通和交流。3.3团队成员对自身的职责不了解软件开发团队是由从事不同方面工作的成员共同协作完成的,这里有两点值得注意,第一点是团队成员从事不同方面的工作,第二点是要靠团队成员共同协作完成开发任务。但是一些团队,尤其是一些小团队,受限于人员安排机制的不健全,却没有对各种角色以及成员的职责做出明确的定义,内部分工十分混乱而且变动很快,这样成员很难知道自己应该做的工作以及自己的目标。这随后带来的一个问题就是软件开发过程中的人员冲突以及劳动力的浪费。3.4开发者忽视软件质量标准开发一个产品,首先要保证这个产品的质量,所以软件质量是软件开发中的一个核心的问题。软件质量有自己的评判标准,国际上比较通用的质量体系如:RUP、CMM、ISO9000等在国内的一些小的软件开发团队中的真正应用很少。
一些公司和团队应用这些质量标准仅仅是用来做表面文章,用来提软件开发过程中的团队管理计算机学院Highway1/2.RailtransportationlanduseBig.Urbanrailtransitlow-pollutionurbanpublictransporthasbecomemajorpositivedevelopmentcity'smaintransportinfrastructurethroughurbanrailtransithelpcurbrapidgrowthtrafficdemandhelpreducecorefrequency-升公司形象而已。缺少质量标准的团队也就不可能有一个规范的软件开发框架。高效软件开发团队的特点高效软件开发团作为一个软件开发的一个集体,有以下特点:有明确的角色和职责。项目策划阶段,,就必须明确完成什么任务,由谁去完成,如何完成,完成期限是什么时候,所需什么技术等问题。团队的各个成员职责清晰,责权对等,各自负责的内容十分明确,知道自己应该做什么,而且了解项目计划和项目进度,而且,团队成员要知道自己在团队中的位置,知道自己的领导是谁,自己可以去哪里寻求帮助。
当然,也要明确知道自己的工作在团队中的作用,知道假如自己出现失误 会对团队产生什么样的影响。 有成熟的监控和反馈机制。团队的领导 者能实时监控团队的项目进度,以及每个人 的近期表现,然后根据不同的情况进行适当 的调整。这样可以及时跟踪项目,保证产品 的质量。 内部有效的沟通和相互的信任。一个高 效的团队内部必须要有频繁的沟通,个人要 及时获取团队项目的进度和团队的资源文 档信息,这样可以实时修正自己的工作方 向。同时,要对团队的其他成员高度信任, 彼此相互尊重。成员之间应该彼此分享知 识、经验和信息。当团队中的一件出现分歧 的时候,要大胆地提出可能存在的风险和危 机。在团队中,每个人不仅仅是意见的提出 者,同时也是意见的接受者,要虚心接受团 队中其他成员对自己的批评意见。 有明确的目标和共同的价值观。一个具 有明确目标的团队,比起来没有目标的团 队,效率要高得多。团队成员为了完成这一 目标而积极投身工作,从而带来团队开发的 高效率的提高。每个人都要知道团队的共同 目标以及自己在这个项目中为团队所做的 贡献,这样才会凝聚成为一个整体。 拥有统一的软件开发框架。高效的软件 开发团队都有一个统一的开发规范,包括统 一的文档格式、审核标准和测试标准。
这样 可以降低软件开发过程中的风险、提高软件 开发质量,节约软件开发成本。 软件开发团队的管理方法软件开发团队建设的好坏,表明了软件 开发团队是否有能力胜任某一项工作,以下 是软件开发团队管理的一些方法。 Highway 1/2. Rail transportation landuse Big.Urban rail transit low-pollutionurban public transport has become majorpositive development city'smain transport infrastructure through urbanrail transit helpcurb rapid growth trafficdemand helpreduce corefrequency- 5.1培养软件开发中的交流与沟通 在工作中,软件开发领导者必须注意培 养团队的沟通意识。沟通是解决项目问题的 基础,没有有效的沟通,就不可能对软件开 发进度进行管理。如果在开发过程不及时沟 通的话,很容易造成最后项目的巨大偏差。 沟通主要分为两个方面,第一是领导者和团 队成员之间的沟通,第二是团队成员之间的 沟通。
领导者要想实时了解团队的情况以及 项目开发的进度,就要与相关模块的负责人 进行沟通交流。团队成员需要相互交换一些 资源以及进度的时候,负责不同模块的程序 员之间也要进行交流,相互之间的交流与沟 通可以实时反映团队的现状,领导者可以及 时调整工作的安排。 现在的软件开发市场中,对于很多软件 产品,都会采用一种叫做分模块开发的方 法,就是团队内不同能力的成员负责不同的 模块开发,然后在整合在一起。各个模块之 间的耦合度往往较低,不同开发者之间的开 发过程比较独立。但是软件需求往往变更很 频繁,所以这就要求每个团队成员都要与项 目要求以及进度的负责人员进行频繁的沟 团队是个协作性非常强的组织,在开发过程中,不同成员之间要相互共享自己的信 息,在实际中往往是模块接口的信息、版本 信息或软件开发进度等,只有良好的沟通交 流才能保证团队极高的协作性。有时候一个 问题自己想不明白,但是团队中的其他人也 许之前遇到过此类问题,这时有效的沟通就 可以快速而准确的解决此问题。 在工作中,领导者应该尽可能多的采取 方法让团队中负责不同模块的人之间进行 一些交流。这样可以培养团队的凝聚力,在 工作中,这样的凝聚力会增强团队成员彼此 之间的联系,从而提高团队内部的交流与沟 通。
工作之外,也可以通过各种团队活动增 进团队成员之间的友谊。领导者可以让团队 成员口头沟通活动,或者某些非正式的公开 演讲,以提高团队成员的交流能力。 5.2 建设完备的团队激励机制 领导者在工作中要善于团队成员。软件 开发团队的一大特点就是工作强度大,工作 压力大,而且从事的工作内容相对其他行业 来说稍显枯燥,重复性高。长时间地做此类 软件开发团队管理方法 软件开发过程中的团队管理计算机学院 Highway 1/2. Rail transportation landuse Big.Urban rail transit low-pollutionurban public transport has become majorpositive development city'smain transport infrastructure through urbanrail transit helpcurb rapid growth trafficdemand helpreduce corefrequency- 工作,不管是从身体上还是心理上,团队成员都容易感到疲倦。这时候激励的作用就会 体现出来,激励是最容易提高团队成员积极 性的一种手段。
例如在团队项目进入攻坚阶 段的时候,团队成员往往比较疲倦,这时领 导者就可以采用一定的激励方式来提高员 工的工作积极性和热情。表扬是激励团队成 员很有效的一种方式,在开发的过程中,领 导者要多给团队成员一些表扬,少一些指 责软件开发团队分工,每个团队成员都有一定的自尊心,表扬 恰好可以满足团队成员的自尊心。表扬优秀 者比批评失败者更能增加团队的动力。 一个高效的软件开发团队必然有一套 内部的激励体制。明确的激励体制会调动员 工的对于工作的热情,员工会为了达到某一 激励项目而全身心投入到工作中去,这会提 高个人的工作效率,从而将整个团队的工作 效率提高上去。 5.3 合理搭配团队中的人员 软件项目的开发是由不同角色的人共 同协作完成的,团队中的每个人都必须有明 确的职责定义。因此,根据每个人的不同特 点合理选拔和培养适合角色职责的人是团 队建设中很重要的一个方面。 首先要了解不同成员的特点,例如某人 的创新性很强,某人的编程十分细致等。根 据这些成员不同的特点进行合理搭配。将具 有创新性的成员与编程能力较强的成员组 成一个小组,有利于快速创新出新的方法, 将责任心强的成员与编程能力扎实的成员 搭配为一组,可以完成对某些需要限时解决 的问题。
有时候在安排人员方面还要根据人 员的性格来决定,避免发生不必要的摩擦。 5.4 建立统一的规范软件开发标准 软件的开发是一项需要创造性的工作, 但是创造的时候必须要有一定的规范。这个 规范就是统一的软件开发框架。统一的软件 开发框架可以让团队成员知道应该如何达 到开发目标,知道自己在什么时候应该做什 么事情,也可以建立起一套团队的开发风 软件开发规范包括代码编写规范、注释规范、变量和函数命名规范以及开发文档的 规范。代码编写规范包括程序的结构、代码 书写的风格等,凌乱的代码书写会导致阅读 的困难,在后期也不容易找出存在的错误。 代码注释规范包括头文件的注释、函数注 释、类注释和变量的注释,规范的注释会大 大增加代码的可读性。命名规范主要指的是 文件的命名,类的命名以及变量和函数的命 名,规范的命名方式要让团队中的每一个人 一看到命名就能知道这个对象的属性,值类 软件开发团队在一开始就应该结合自己的工作,遵循这一开发规范。负责不同模 块的工作人员要相互公开编码规范以及接 口标准。另外,在软件开发的后期,往往有 多个版本发布,领导核心要协调好各个不同 的版本,规范版本命名方法,大型的团队也 可以有专门的部门或小组负责发布版本的 Highway 1/2. Rail transportation landuse Big.Urban rail transit low-pollutionurban public transport has become majorpositive development city'smain transport infrastructure through urbanrail transit helpcurb rapid growth trafficdemand helpreduce corefrequency- 规范。
5.5 建设软件开发团队的团队文化 文化是一套做事的方式,团队文化就是 团队以何种工作方式进行工作,每一个成功 的团队都有自己的团队文化。团队的领导者 应该在建立团队的时候就注意,逐渐培养团 队的文化。 一个优秀的团队文化,包括以下三个方 面:第一是团队中的人际关系,第二是团队 对于项目的规范要求,三是团队工作的高效 率。良好的人际关系体现了团队的内部和 谐,对项目规范的要求反映了团队对于项目 严谨的态度,高效的工作是团队在压力之下 完成任务的保证。 作为团队的核心,领导者应该从一些小 事做起,去培养团队精神。不能只凭借一些 大事来建立团队的文化,团队的文化都是通 过工作中的点滴小事逐渐积累起来的。还要 培养团队成员相互学习的习惯,团队中不可 能每个人都很优秀,但是必须要求每个人都 尽自己所能为团队做出一定的贡献,相互学 习可以改善团队中的人际关系,提高团队中 的凝聚力。另外,领导者还应该严格规范项 目要求,并且让团队的成员按照规范进行软 件开发。统一而且规范的软件开发标准能提 高整体开发的效率,在各模块整合的时候作 用更加明显。团队文化的第三点就是高效, 高效指的是在面对一个项目的时候要尽可 能快速地拿出解决方案,并且付诸实践。
如 果团队的开发效率很高,就可以带动团队中 的成员,反之,低下的开发效率会使得团队 成员产生厌倦心理。 优秀的团队文化会让团队成员树立长 远的目标,产生强烈进取心,高标准要求自 己,从而更多地投入软件开发中去,把简单 的事情做到极致。 小结软件开发团队建设的核心是提高团队 的工作效率,实际工作就是在统一的软件开 发规范下,向着共同的目标,通过团队之间 的沟通与交流,发挥每一个人最大的能力, 最终成功完成软件开发任务。 参考文献 赵桂亮:我国软件开发团队的现状及对策分析,商场现代化,2005.10 董俊毅:如何有效地管理软件开发小团队,项目管理技术 隋立江:敏捷方法在软件开发过程中的实践,航空制造技术,2011.10 刘建国:互联网软件开发中的团队合作和团队管理 谌海军:极限编程在大型项目开发中的应用,交通与计算 机,2006 年第06 王二平:软件开发组织的沟通与协调,心理学进展,2004.12 高永凯:软件开发团队建设研究,科技软件开发过程中的团队管理 计算机学院 Highway 1/2. Rail transportation landuse Big.Urban rail transit low-pollutionurban public transport has become majorpositive development city'smain transport infrastructure through urbanrail transit helpcurb rapid growth trafficdemand helpreduce corefrequency- 开发情报与经济,2009年第02 李德忠:基于项目管理的软件开发过程中要注意的几个问题,科技信息 [10] 维:浅谈软件开发项目中的沟通管理,福建电脑,2010