您的位置:软件测试 > 软件项目管理 > 团队管理 >
软件开发团队的“基础设施”建设
作者:网络转载 发布时间:[ 2013/5/16 14:49:39 ] 推荐标签:

四.团队交流

一项统计数据表明,一个软件开发团队即使没有高深的技术背景,没有突出的项目管理能力,只要其内部交流通畅并以务实态度解决问题,一样可以开发出的产品。软件开发团队的内部交流是很重要的,是建设一个有战斗力的团队所应充分重视的。团队内部交流包括两方面:技术交流和思想交流。

软件开发团队作为一个技术类团队,技术是团队的立足之本。技术高超的人会逐渐赢得团队成员的敬意,并成为团队中的权威,崇尚技术者的偶像,并影响团队决策, 技术走向。在我所工作过的两个团队,他们有着截然不同的风格,一个团队崇尚技术,狂热的追捧着新技术,总是选择前沿的技术,对所选择的技术誓死捍卫,不惜与贬低该技术者决裂,对技术天才则是发自内心的崇拜,团队中随时可见以技术为主题的热烈讨论,争论。而另一个团队则恰恰相反,受其的影响,团队很少关注新技术,总是在不厌其烦的研讨需求,设计,至于使用什么技术来实现,并不是那么重视,技术高手的作用也不是那么明显,团队成员的技术交流则明显不足。技术作为软件开发团队的基础没有的到体现,当然技术也成为了这个团队发展的制约所在。

团队成员的技术交流不但可以增进团队成员之间的友谊,更能拓宽成员的技术视野,迅速提高成员的技术水平,对一些基础,模糊问题的探讨,可以使其清晰,问题明确,并达成一致意见。团队技术交流的方式有多种:技术研讨会,主题讲座,技术培训,代码评审等。技术研讨会可以一项技术细节或开发中遇到的问题进行集体探讨,后形成集体决议,用于指导以后的开发工作。而主题讲座则是为拓宽技术视野,主题讲座可以内部进行,也可以外部请专家。在我公司某个团队一直有这样的传统,每个人都要选择一个主题进行内部讲座,主题可以是开发经验,心得,技术专题等等,实践下来效果很好。技术培训则主要是做一些基础性培训。中国的程序员在大学中一般没有得到开发方面的基础培训。进入企业后必须进行基础性的培训。代码评审是直接对某个程序员的代码进行公开评审,共同发现代码的问题,特别是思维误区,在代码评审中有多年开发经验的程序员也会被抓到严重错误。建筑师以砖石来构建房屋,程序员以代码来编织产品。代码的优劣直接影响到产品的品质。一个没有受到良好技术培训的程序员编织产品象一个没有建筑经验的建筑师来构建房屋,都是岌岌可危的。而团队充分的技术交流可使是成员得到大限度的相互培训,共同提高技术水平,相互提醒编程误区。

团队成员的思想交流一直是我所重视,关注的一个方面。现代的企业,人员流动很大,软件开发团队同样如此,如果仅仅将团队成员看成是同事关系,上下级关系,是不够的,这样的关系是表面化,形式化的。而对于一项的产品开发来说,更需要的是战友,挚友关系和对共同目标的认同。以同事加上下级关系组建的团队在前进过程中,很容易受到外界的诱惑,使团队成员轻易的离开。而要形成战友,挚友的关系,思想交流是必不可少的,深度恳谈是很有效的一种手段。在我所经历的一个项目,项目产品经理是一个很有经验的领导。定期组织相关人员到茶楼座谈,一般主题为公司,项目内部的问题,到茶楼座谈气氛很轻松,没有明显的等级界线,大家都可以畅所欲言,随着谈话的深入,话题不再仅仅局限于公司项目的,而是渐渐深入到人的内心想法,人生,理想,发展等等深层次的话题。而项目经理也将自己对产品的理解,人生感悟,工作经验等等拿出来和大家一起交流。这样的座谈经常可以从下午下班开始一直持续到深夜。团队的凝聚力在一次次的交流中不断的得到加强。而同事,领导之间因为这样深入的交流,能相互理解,相互支持,相互认同。

思想交流要解决的另一个重要问题是:工作是为谁干的问题。员工往往有这种意识,我是来打工的,你要我干什么干什么。至于能不能把产品作好,卖的出钱,产生利润,不关我的事,事不关己,高高挂起。这样的思想很普遍,对团队的危害也很大。程序员一定要形成这样的意识:工作不仅仅是为公司工作,也是为自己工作,你付出了时间,精力,也收获了经验,感悟,成长,经历,人际关系这些可贵的东西。如果你采取事不关己,高高挂起的态度,事实上也是在放弃成长,放弃获得经验,资历。而仅仅获得了可怜的工资。所以我们在团队建设时,注重培养团队成员对产品的"拥有感"和"努力工作是为自己成长"的意识。管理者也要注意,你需要的不是一个雇员,而是一个合作者。这是一个双赢的选择。

下面将谈到团队的延续性问题。有位哲人说,我看的更远,是因为我站在巨人的肩膀上。团队的发展也是站在前人的肩膀上的。团队的文化,技术,思想,经验应该得到延续, 让未来者能看的更远。所以团队建设要注重技术沉淀,思想沉淀,文化沉淀。这些都是团队的宝贵财富,是团队成员花费了大量的时间,心血得到的, 是团队的精华所在。很多团队不太重视这方面的建设,没有将好的技术,好的思想总结,提炼,流传下来,茫茫碌碌过后,发现是一场空,得到了什么,感悟了什么,失去了什么,都不知道。当然也注定是一个没有生命力的团队。

五.工具应用

工欲善其事,必先利其器。

软件开发团队开发中会涉及到很多工具的使用:编译器,项目管理工具,文字工具,源代码管理工具等等,用那些工具,如何使用都是有思考价值的。

工具是思想的体现,思想是工具的源泉。Rational的ROSE套件是面向对象设计思想的体现,所以只熟用ROSE套件工具,而不理解其背后面向对象思想的精髓,将始终是得其形而不能得其神的。很多程序员只是将工具用的烂熟,却不能理解其精神实质,所以只能是个程序员,而不能成长为设计师。设计师总是在观察世界,设计着工具产品,而程序员则总是在追寻着工具。明白工具的位置是很重要的。不能把工具当成全部。

善于利用工具,编制工具是一个成熟团队所应具备的能力。在开发过程,会有大量的事情需要人去处理,如源代码工程编译,单元测试,模块测试,代码复查,数据生成转换等等,这些工作即烦琐,又耗费时间,而利用工具来完成则既快捷又准确,更能节省大量的时间,精力。在我们的软件开发中,对所有源代码做一次集成编译,需要花费至少半天时间才能准备好,首先要通知每个程序员编译出某个版本,然后拷贝到某个指定地点,如果某个程序员不在,或者有其他急事,时间还将拖的更久才能完成全部编译。在我们编制了一个自动编译工具后,事情变的简单了,指定编译时间,编译工具可以自动的取得所有源代码,并编译出目标代码,整个过程只需要20分钟。还可以同时管理多个工程。工作效率得到了极大的提高。再加上编译后自动备份功能,我们随时可以找到以前的某个版本。

在软件开发过程的各个阶段,都可以引入相关的工具。需求分析阶段,可以引入需求管理工具,使所有的需求可控,并根据版本开发计划,及需求的紧急程度,确定需求是本次版本实现,还是下一版本实现,或者是不与实现。在分析阶段可引入Rational RUP的分析设计模型,使用Rational 的工具来管理分析设计文档。在编码阶段需要太多工具了,编译器工具,编译器辅助工具,源代码检查工具,单元测试工具,资源泄露检查工具,性能效率分析工具,自动编译工具,源代码管理工具等等,在测试阶段需要自动测试工具,压力测试工具,性能测试工具,测试问题管理工具等等。

六.综述

上面从软件团队,人员建设,职业生涯规划,团队交流,工具应用等五个方面探讨了软件开发团队的"基础设施"建设。这些问题是建设一个有战斗力团队的基本问题,不关注团队的根本建设,而只期望得到满意的结果,是很难如人愿的。而我们探讨这些问题,是让团队能更有效率,更专注于目标,更能成一个伟大的产品。

上一页12下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd