怎么样才叫软件团队开发

在我10多年的软件开发中,经历过超过200人的软件开发团队,也有过两三个人开发的小团队,但无论团队的大小,都是采用一个很简单的软件开发方法:就是把项目切分成模块,然后每个人开发一块,最后集合起来,调试完成,再经过测试,交给客户使用,就算项目完成了。

在这期间,团队成员之间没有什么交集,相互的代码也没有查看或者了解一下。因此,当某一个成员离职或者病休时,就会带来很大的问题。因为其它人员都对他的工作不了解,不能接手他的工作,导致再开发下一个项目时,就会带来高涨的成本,项目大大地增加延长开发的时间。

另外,由于成员相互之间没有了解代码,每个人的编写代码的风格也差异比较大,导致代码比较难重用。这种团队开发在目前看来,还在很多公司是存在的。那么怎么样才可以改变这种现状?也就是说怎么样才叫真正的软件团队开发呢?

由于软件开发从个人开发变成团队开发方式,在中国来说,也近来10多年的事情。在90年代都是个人开发就可以成功了,比如像金山软件的求伯君,就可单兵一个,就可以完成DOS下面的WPS开发。

放在今天这样的环境里,软件的规模已经非常大,一个人完成的软件,只有在手机领域还有市场,在其它领域已经不太可能了。

因此,必须建立团队开发为目标。

为了建立团队的开发,就需要制定各种标准。比如编码规范,有了这个标准之后,就可以让所有团队成员编写出同一样规范的代码,可以减少相互交流的成本,同时也提高了代码的质量。同时也可以让成员看不出来谁写的代码,减少心理上抗拒。但是,是否制定了标准之后,就可以万事大吉了呢?其实不然,由于每个开发人员都是人,是人就有着出错,有着自己个性表现,以及个人的习惯。因而有了标准之后,就需要想着怎么样实践了,以及让标准成为行为准则。

在以往的团队,或者说一般的团队里,都是制订标准之后,就发送给大家,就认为完事了。但在我看来,制订标准只是软件团队开发的第一步,要落实标准还需要很多的工作需要做。

那么在软件开发团队里怎么样把这些标准落地,接上地气呢?关键的一环是代码评审。从我经历过的团队,无论大小都没有去实践这个环节,但从国外的软件开发团队来看,没有这个环节的,基本不存在。为什么这个代码评审这么重要呢?

首先代码编写出来之后,需要团队查看之后,才可以认定这种代码是否符合标准,不是让开发人员认为符合了,就是符合了。

其次,代码评审是团队开发的体现。如果每个人开发完成的代码,就认为完成了,其实这份代码,还是个人之作,不是团队共同开发的,所以代码的质量可能是低下的,出错是难避免的,设计的方法是一般的。如果一个团队把个人开发的代码进行评审之后,并作出修改,那么才可以说这份代码是团队开发的软件。

再次,代码评审是经验总结和相互学习提高团队成员的关键。如果这份代码是老员工开发出来的,意味着代码是优秀的,那么新来的成员就可以学习了,从这种例子里学习到最好的代码形式。如果这份代码是新来员工开发的,那么出错,或者不符合规范的情况,就会发生,这时经过团队成员里优秀开发人员的指出,让新员工可以认识到错误,就可以快速地改正,从而快速地向高水平的开发人员看齐。

最后,代码评审是提高软件质量,降低开发成本的方法。因为通过一个团队的众多眼睛和多个大脑来看查看代码之后,代码质量都会显著地提高,同时把自己开发没有发现的错误,都会在其它人的眼睛里一眼就看出来了。这有点像考试时,自己怎么样检查都不会发现有错误,在另外一个人里一查看就看出来了。降低开发成本是关键,由于不断地通过代码评审,意味着这份代码不再属于开发人员一个人了,而属于整个团队了,大家都对代码了解,从而都可以对代码进行开发,避免开发人员离职,或者病假带来的时间和金钱上损失。另外,在今天这种快速迭代开发的环境之下,保持软件稳定发布,只能通过不断评审代码来确认软件不出大BUG了。

总之,一个真正的软件团队的开发需要是这样:团队评审需求、团队制订标准、分别编写代码、团队评审代码。如果缺少最后这个评审代码,这样的开发不叫做团队开发,还是跟个人开发是一样的。

时间: 2024-10-08 18:24:43

怎么样才叫软件团队开发的相关文章

软件项目开发团队组员跨项目组兼职案例分析

按照现代项目管理的观点,项目团队是指"项目的中心管理小组,由一群人集合而成并被看作是一个组,他们共同承担项目目标的责任,兼职或者全职地向项目经理进行汇报". 项目团队的特征有: (1)项目团队具有一定的目的 项目团队的使命就是完成某项特定的任务,实现项目的既定目标,满足客户的需求.此外项目利益相关者的需求具有多样性的特征,因此项目团队的目标也具有多元性. (2)项目团队是临时组织 项目团队有明确的生命周期,随着项目的产生而产生,项目任务的完成而结束,即可解散.它是一种临时性的组织. (

软件工程之“五人黑”团队开发章程

“五人黑”小组团队开发章程 一.团队目标 1)在规定时间内完成项目(团委微信平台)的开发和测试工作,且完成时间尽量早. 2)保证完成的项目是高质量的,即:软件拥有较好的易操作性.用户友好性:代码具有较好的健壮性.可维护性. 3) 每位小组成员都能在项目开发中学习到实用的开发技术,并能对软件工程有所体会. 二.团队守则 1)每位团队成员应积极主动完成好自己的任务,不拖延项目的进度.如实在因任务过于繁忙需要调整进度,可与团队进行协商. 2)每位团队成员在开发过程中都应严格遵守团队协商制定的代码规范,

团队开发_软件项目风险管理

一.说明 软件项目的风险管理是对软件项目的预测和估计,在一定程度上影响着软件的开发进度和完成的效果.因此, 软件的风险管理是特别重要的,以下是我们小组讨论之后,对团队开发的项目的软件风险的估计. 二.软件风险表 编号 风险名称 发生概率 损失(人/两天) 危险度(两天) 1 计划过于乐观,没有在规定的时间内完成spring计划的要求 60 3 1.8 2 设计欠佳,需要重新设计界面 30 2 0.6 3 由于个别成员临时有事,导致在其工作无法进行,从而影响项目的进度 30 4 1.2 4 在软件

团队开发——软件需求分析报告(Hello World 团队)

一.   项目名称超级迷宫二.   设计背景随着生活节奏加快,游戏更新速度的加快,游戏大同小异缺少新颖度,同时为了满足多游戏的结合,充实人们的生活,同时增加知识,有协作模式增进友谊和感情,在闲暇时光给人们以乐趣,可以让玩家增加智力考验耐力,在这个手游风靡的时代我们的游戏有其独特的特点来吸引来,保持其持久力.三.项目风险该软件的开发风险承担者有:任务提出者:需要承担的风险是产品是否迎合大众的需求,是否有市场需求,是否对玩家的脑力有锻炼的作用.软件开发者:需要承担的风险是游戏是否完全实现预期的功能,

程序员需谨记的8条团队开发原则(转)

当你从学校出来,找到第一份软件开发工作的时候,你就不再是一个单独作战的程序员了,你将会有一个团队,你的一举一动也将直接影响团队的效率和产出.下面这8条团队开发的基本原则,作为团队的一员,你必须谨记在心,这会对你和你的团队带来非同凡响的效果. 1.提交(签入)代码需要填写备注说明 团队开发中必定会使用一些类似svn的代码管理工具,在提交代码时填写备注,这个好处是不言而喻的.它可以帮你记录这次修改完成了哪些功能.修复了哪些bug,包括的团队的其他成员,也可以看到你这次提交代码所做的贡献. 2.每天汇

我的团队开发活动

我的团队开发活动Check List- - 软件配置管理 1.使用源代码管理工具了么?我们用CVS, 其中客户端使用TortoiseCVS, 文本差异比较用WinMerge或者Kdiff,账号管理和更新纪录查看用CVSTrac. 2.大家养成了每天晚上临走Check-in合格代码,早上回来Check-out代码的习惯了么?还没有养成这个习惯,修改完代码可能马上check-in,也可能忘记.到了修改可能不属于自己的代码,或者忽然心情好时才会check-out. 3.在Check-In代码时写注释了

软件项目开发流程

软件开发流程(Software development process) 首先 看一下基本软件项目开发流程图 其中 1.需求分析: 通过对客户业务的了解和与客户对流程的讨论对需求进行基本建模,最终形成需求规格说明书. 2.总体设计: 通过分析需求信息,对系统的外部条件及内部业务需求进行抽象建模,最终形成概要设计说明文档. 3.详细设计: 此部分在对需求和概要设计的基础上进行系统的详细设计(也包含部分代码说明). 4.开发编程: 对系统进行代码编写. 5.测试分析与系统整合: 对所有功能模块进行模

中小型软件企业开发现状与项目管理现状

中小型软件企业开发与项目管理现状 国内的中小型软件企业虽然涉足软件开发业务,但对软件的认识停留在"程序员编代码"的水平上.对企业内部的软件开发缺乏管理意识,具体体现在以下几方面: 首先,项目负责人项目管理经验不足,项目功能相对较少,涉及面相对狭窄;其次,项目开发人员较少,人员结构简单; 再次,项目进度缺乏控制,项目成本预算较难,缺乏完整的项目文档; 最后,缺乏后续维护. 软件开发组织 与专业软件公司的软件开发组织相比较,中小型软件企业中的软件开发工作机构小.人员少,开发人员待遇低,难以

软件项目开发没规划好就注定会失败

软件项目开发没规划好就注定会失败 软件项目开发与管理的一些原则 软件项目的开发与管理是一门复杂的学问,不是简单地需求来了就动手编码,编码完了就算项目完工那么简单.一个项目如果没有好好规划,那么就很容易会失败.同样,我们在做一个软件项目的时候,需要注意的东西很多,下面总结一下一些容易视而不见但又非常重要的软件开发指导原则. 对外部环境的认识 1.必要性原则:用户(客户)需要应用软件来帮助他们处理信息. 2.“脱机”原则1:用户(客户)通常不会一直坐在电脑面前,他们都有自己的工作要做,而那些工作才是