深圳office培训 深圳excel培训
深圳excel培训 深圳office培训
咨询服务
深圳office培训
深圳office培训
office培训
excel培训
ppt培训
vba培训
access培训
word培训
visio培训
project培训
outlook培训
数据库培训
深圳access培训
深圳sql培训
深圳office培训
 

软件开发团队的建设和管理


2013年12月4日 作者: 来源:

  软件组织中什么是最重要的呢?团队和开发管理今天我们的主要话题就是围绕着团队和开发管理展开的
  在很多场合我们都听到人们说人才是最重要的资产我想这不是一句空话有了人才就有一切这是一个真理对于软件开发来说更是如此当然对人才的关注并不意味着要人才堆积甚至浪费人才浪费反而会影响整个团队
  人才只是一个个的点如果没有形成一个有效的团队人才再多也毫无意义软件开发是一个需要协同作战的工作团队是软件开发工作的基本组织因此形成一个有效的团队是软件组织成功的基础
  很多时候团队作战听起来容易做起来难有一次我和一个大型软件企业的CTO聊起了软件组织的模式他打了一个比方说软件开发就象做外科手术外科主任应该是技术最强的人熟知每一项技术细节的人所以软件组织的领导也应该是技术最全面每个细节都精通的人软件开发真的象医生看病做手术吗?我们来看看这里面有什么不同医生通常面对的是一个病人通常处理的是一个个案当然一个复杂的手术也需要麻醉影像护士助手的配合才能完成一个软件项目呢?软件项目也有大小的区别小的项目一个人处理所有环节前端业务逻辑数据库;大的项目通常有一个团队共同完成需求分析结构设计概要设计详细设计编码测试中间贯穿配置管理流程管理等等可由几人几十人几百人的团队共同完成当领导几十人几百人的团队的时候项目的成功与否不光是领导者的技术能力所能够决定的了更重要的是领导者的管理能力和领导能力决定的了可见不同软件企业的CTO对软件组织的模式认识也是不同的
  既然我们认识到了团队是一个软件组织的基本作战单位那么我们应该怎样建立一个样团队呢?我们建立的团队应该包含哪些模块呢?我们可以从一下几个方面入手来对我们面对的问题先进行一个分析
  团队的技术要求是什么?

  团队要具有哪些功能模块?

  什么样的员工适合我们的团队?

  下面我们来分析一下以上个问题
  团队的技术要求是什么?

  通常我们需要分析一下我们工作的技术要求我们可以把软件系统作一个简单的分类
  基础系统如操作系统数据库系统服务器系统

  专业系统如人工智能大型索引系统

  应用系统如BOSSBI系统

  在这些系统中也存在不同的分工尤其是应用系统分工更为繁多比如系统分析工程师架构工程师核心层开发工程师业务层开发工程师表现层工程师美工项目管理人员测试人员等等不同的系统具有不同的技术要求比如实时系统和信息系统的要求就不一样常见的实时系统如电信系统要求任何时候都不能中断而信息系统比如简单的OA系统短暂的停顿造成的影响不是很大因此在建立软件组织的时候需要考虑所从事软件项目的技术要求我们首先要考虑我们开发的是什么系统它的技术要求是什么并在此基础上考虑软件组织的构成人员的要求这个道理其实很简单通常没有人为了OA系统的开发去招聘研究算法的博士同时对系统技术要求的过低估计通常会造成很低的客户满意度也不利于组织的能力的提升因此我们要仔细分析组织的技术要求同时考虑组织未来发展的要求尽量做到合理估计组织技术能力需求
  团队要具有哪些功能模块?

  很多人都看过软件工程方面的书在实践中我们基本也是按照规范去做的现在我们简单总结一下一个软件组织应该具有的能力需求分析架构设计概要设计详细设计编码测试配置管理流程管理过程管理等等但并不是任何规模的软件组织都要完全建立独立的组织来完成上述的功能很多时候软件团队也是可以人员复用的比如设计和编码通常可以融合通常我们需要根据我们项目的实际情况对组织能力作出适当的裁减对人员复用作出合理的安排并在此基础上决定我们的组织规模和构成
  什么样的员工适合我们的团队?

  这可能是在建立团队的时候最不确定的因素也最没有规范的因素不同的管理者对人员的筛选会有不同的要求因而构成的团队也具有不同的气质同样是团

  队有活泼的有严肃的有纪律严明的有松散的有喜欢冒险的有害怕冒险的有繁文缛节的有简单明了的这都跟管理者自身的喜好有关这里就我个人的经验谈谈在选择人员的看法我们对人员需要被考察的素质做一个总结
  经验值

  能力值

  潜力值

  洞察力

  敏锐值

  诚实度

  老实度

  开朗 大度外向值

  谦虚度

  自知力值

  亲和力值

  负责度

  细致度

  抗压度

  稳定度

  承担责任能力这些素质中有些我们可以通过考试的方法了解有些可以询问也有不少特质需要我们自己去感知在我们招聘的过程中技术人员的笔试是很重要的必须根据需要设立不同的考题对人员进行考察对于人员的能力和经验除了考虑目前他所具备的能力以外还要考虑他的潜力有些人具有很强的学习能力在具备一定基础知识的情况下可以降低对这种人经验的要求除了能力以外一个人的情商对于我们的组织来说非常重要我们可以通过心理测试的方式了解一个人的情商同时最重要的是作为管理者我们必须要具有感知一个人性格特点的能力这样在招聘过程中我们才能尽量做到选择出合适的人才在选择人才的时候我们不要一味追求便于管理不要怕有能力的人对于性格过于内向的人我们也要多加考虑很多内向的人同时也具有执拗各色生硬融合性差的特点因此内向不等于便于管理
  有了合适的人选团队建立了还需要不断提升团队的能力需要培养具有特色的团队精神正如一个球队有了合适的人选还必须有高质量的训练严格的细节要求才可能在竞争中获得胜利一个团队也是一样需要不断的提升技术能力提升凝聚力提升协作能力提升士气才能在一个个项目中获得成功
  那么团队精神的培养团队能力的提升从何着手呢?首先要确立团队的风格例如建立这样一种团队风格分享透明责任协作团结激情在确立了这个风格以后要在日常的工作中加以贯彻
  分享主要是指技术的分享可以定期举办技术讲座让每个人都参与进来领导者可以确立技术方向然后大家分享彼此的知识和经验这种方式可以很快地提升团队整体技术能力分享的过程中也增加了成员间的相互了解和信任
  透明是指管理上要透明在我们的团队中没有不能拿出来说的秘密(工资除外)团队成员间秘密的形成也是团队隔阂的开始
  积极的态度责任心是软件开发必不可少的素质不同的责任心开发出来的软件可用性性能稳定性出错率可能相差很远发现由责任心引起的问题一定要坚决处理提出公开的批评根据情况作出适当的处罚确保以后避免类似的错误
  软件工程的过程和软件设计的模块化分层结构导致了软件组织成员分工的不同这就要求成员间要有很高的协作性团结性对各项工作多进行讨论不要怕争论不要独断专行最后执行讨论后的结果多讨论有助于增进协作和团结
  每个人都需要一个舞台在团队管理中一定要了解每一个团队成员的特点和能力把最适合的任务分配给他要为每一个人营造一个舞台要充分发挥每个人的作用软件是一个团队的工作不是团队中一个明星的工作就象篮球是个人的运动足球是个人运动一样要让所有的团队成员都参与到工作中来一同享受工作的乐趣和成功的喜悦不要造成忙的忙闲的闲的现象那样的话忙的闲的都会产生不满情绪最终导致不可调和的矛盾
  除了上述方法可以培养团队的精神促进团队能力的提升以外另外一个重要的手段是确立团队不同阶段目标并讨论采用什么样的手段达到目标目标包括项目目标和能力目标只有有了正确的目标在团队精神的鼓舞下团队才会产生激情很多时候激情的迸发可以产生意想不到的力量
  在培养团队精神的时候也要避免一些严重影响团队精神的事情发生不要任人唯亲要唯贤是用;不要独断专行要群策群力;不要高压强制要鼓励引导
  在建设了一个好的团队以后任务已经完成了一半软件工程的特殊性要求我们在软件开发上要有一套合理的管理方法这在很多软件工程的著作中作了大量的描述这里我们只是做一个简单的经验介绍我们分成一下点进行阐述
  规范

  流程

  考核

  规范无论开发什么软件系统都必须按照一定的规范进行软件开发过程采用规范进行管理的必要性相信任何一个管理者都会有明确的认识这里我们只谈采用什么规范怎么样执行规范软件工程的规范主要有CMM和ISO通常我们采用CMM规范并根据软件组织的具体情况对规范进行相应的裁减不管怎么裁减在开发管理过程中以下一些关键环节是不可缺少的需求分析架构设计概要设计编码测试通常我们可以利用配置管理和版本管理的工具来进行开发过程的管理在这些过程中我们必须按照一定的CMM规范产生相应的过程输出我们采用的规范都要形成相应的书面材料或者模版以供员工阅读总结一下我们需要的基本模版需求分析模版设计模版(架构模块数据)编码规范测试规范基本管理工具版本管理配置管理测试流程管理
  流程流程涵盖软件组织的内部流程以及软件组织和需求单位之间的外部流程外部流程包括需求讨论流程需求确认流程系统初审流程系统终审流程等等内部流程包括需求分析流程设计流程开发流程测试流程等等每个组织要根据自身特点和项目特点按照CMM规范的要求制定流程并对流程进行讲解按照流程严格执行在流程的各个环节完成软件项目的输出需求书设计书代码产品测试记录说明书等等
  除了正确的规范和流程以外任何一项工作都要进行考核考核可以是全方位的除了工作业绩外协作意识学习意识责任意识都在考核的范围内软件的输出是个人脑力劳动的输出独立完成同一个功能不同的开发人员输出产品的性能稳定性很难完全一致因此工作业绩的量化很难对于工作业绩可以采用以下公式进行评估
  工作业绩=工作量(小时)*复杂度()*创新性(是否可以参考以前的项目)*重要性()*质量()
  不要用输出代码或者文档的长度来衡量工作量因为有时一项重要的任务思考很长时间但是输出却很短复杂度创新性重要性质量包含了对能力的评估使得能力强的人工作业绩能够得到体现复杂度创新性重要性质量标准的确定是很难的不同的人有不同的见解这套标准需要软件工程的人员专门研究确定这个标准可以是公司自身的标准协作意识学习意识责任意识也是考核的一方面这些标准的制定也需要软件工程人员研究后确定
  最后我们对软件开发团队的建设软件开发管理的一些理念做一个总结
  根据技术要求项目要求确定团队的模块功能既能满足要求又不能形成岗位重复和浪费
  选择合适的团队成员利用书面测试考察应聘者的能力经验感知应聘者的情伤避免招聘难于融合到团队的人员
  建立团队的风格比如分享透明责任协作团结激情确立正确的团队目标给每个人一个合适的舞台去发挥同时避免不利于团队精神形成的管理方法
  制定适合企业的软件工程规范并严格执行
  制定适合企业的流程并严格执行
  制定适合企业的考核体系并严格执行


阅读:2372 上一则:客户机/服务器计算模式 下一则:2013年上半年软考网络工程师考试试题分析

返回前页 返回顶部
温馨提示:本中心是深圳较为专业office培训机构、咨询及报名请先预约,电话:0755-82124110。
深圳地址:深圳红荔路四川大厦1109B-1110(3号龙岗线通新岭地铁站A出口10米)
热线:0755-82124110(福田、南山、宝安) 0755-22205758(罗湖、龙岗、龙华) 13510024571(东莞、惠州、珠海、广州)
北京地址:北京清华大学华业大厦三区三楼 版权所有:深圳万博计算机教育 粤ICP备11006947号-1
 
深圳信息系统项目管理师培训
深圳信息系统项目管理师培训 欢迎咨询!
您好!请点击这里咨询万博教育
深圳万博吴老师
您好!请点击这里咨询万博教育
深圳万博史老师
 
深圳信息系统项目管理师培训
深圳信息系统项目管理师培训