项目管理者联盟 | 中国工程管理网 | 中国研发管理网   会员中心 资料库 博客 圈子

PMI-ACP®认证

适合敏捷开发项目
敏捷项目管理最佳实践

网络课程

PMI-PBA®认证

重视项目商业分析
商业价值与需求分析能力

网络课程

NPDP®认证

产品管理国际认证
全球产品管理最佳实践

网络课

PMP®认证

单项目管理经典指南
年轻项目经理首选

北京 | 直播 | 录播

PgMP®认证

大型复杂项目全球标准
定位高级项目管理层

网络班

PfMP®认证

链接战略与项目
实现组织资源投资回报

全球直播

软考项目管理

信息系统项目管理师
系统集成项目管理工程师

计划 | 报名 | 经验

论坛
价值源于交流与分享
会员区:
登陆ID 密  码
功能区: 公告建议 | 帖子搜索 | 管理团队 | 荣誉版主 | 帮助手册






 项目型组织  项目管理  工程项目  科技项目  项目化管理  管理软件  资格认证  职业休闲
EPM体系与流程 综合集成管理 总承包管理 IT软件开发 项目型制造 P3E/P6 PMP | PgMP 职业发展探讨
组织与人力资源 进度,范围,成本 国际工程 生物制药 专业服务 微软PROJECT IPMP | PRINCE2 管理学堂
项目管理信息化 团队建设与沟通 房地产 汽车设计开发 生活项目 PowerOn专版 软考项目管理 英语角|读书版
多项目与大项目 质量与风险 监理与咨询 手机数码 文体娱乐 注册建造师 房车吃游
PMO建设与管理 采购与合同 工程设计 项目管理硕士 闲聊版|商务版
俱乐部北京 | 大连 | 福州 | 广州 | 杭州 | 南京 | 山东 | 上海 | 深圳 | 四川 | 天津 | 武汉 | 西安 | 郑州 | 申请成立 TOP榜精华 | 最新 | 最热 | 会员

版面信息

说明:项目计划的开发,项目的执行与实施,项目过程监控;项目的集成变化管理

本版版主

该版暂无版主,欢迎对该版主题有兴趣,且有相关工作经验的会员申请版主,申请邮件:member@mypm.net,电话010-82273401/11-18

俱乐部导航

北京大连福州广州杭州
南京山东上海深圳四川
天津武汉西安郑州 

联盟·近期活动

社区热点

开放讲座|项目组合管理与PfMP认证
开放讲座|PgMP:项目管理思维与方法
开放讲座|《项目组合管理与PfMP认证
网络讲座|《项目组合管理与个人职业
开放讲座|《项目组合管理与PfMP认证
网络直播|产品经理的四大核心技能提
如何轻松拿下PgMP?免费学习机会--.
国际项目组合经理PfMP访谈:张富贵
由PMO评论主办的第十二届中国PMO大.
如果不参加这次直播你会痛失一次学.

精彩专题

如何做好项目沟通计划

软件项目质量管理

国际工程索赔与反索赔

更多:

推荐信息

·项目经理沙龙俱乐部
·推荐项目管理公开课程
·联盟VIP会员服务
·联盟99元大课堂
·建造师课程辅导免费试听

社区圈子

项目经理职业生.
圈主:zhenjm
行业:综合应用

项目管理知识宝.
圈主:wenyu2010
行业:工程设计安装

软件项目经理水.
圈主:camer
行业:IT软件

集团企业生态体.
圈主:ETPPM
行业:综合应用

深圳IT项目管理
圈主:lshcom
行业:综合应用

联系社区管理员

咨询电话 010-82273401/11
斑竹申请 admin@mypm.net


版权所有 © 2003-2004
京ICP证070584号 
BBS业务许可2007第353号 
最佳显示模式:1024*768像素
项目管理与PMP认证
[转帖] 浅谈软件开发管理体会 [发表于 2003/7/5]
状态 开放帖 浏览量 1225   
浅谈软件开发管理体会

杨利梅

摘要:虽然项目大小不一,但管理方法是相通的,要做好软件开发工作,就必须
加强有效管理。软件项目管理是一个庞大而复杂的系统工程。
从毕业至今,大小的项目做了一些,有不少成功的喜悦,也有很多失败的教训。
今年由于工作需要,我以软件项目负责人的身份参加了接入网统一网管系统开发
的整个过程。从中学到了不少知识,有许多体会,想将自己的感受写出来,与大
家共勉。

软件项目管理是一个庞大而复杂的系统工程,当前业界对于软件开发流程有不少
规范和定义,如CMM和ISO9000。在该管理体系的管理下是可以开发出高质量的软
件产品。但是由于该体系较适合于大型而且复杂项目的团队开发,真正实施尚需
要时间和过程。而我们当前执行的项目,一般只有10个人左右,要实施软件工程
难度更大。我认为:虽然项目大小不一,但管理方法是相通的,要做好软件开发
工作,就必须加强有效管理。

大家知道,“软件危机”起源于一些大型项目的不断延迟甚至失败。与大项目相
比,小项目具有以下特点:
-项目功能相对较少 ;
-开发人员较少;
-开发周期较短。

小项目看起来比较简单,比较容易成功,人们往往容易忽视小项目的管理,其实
这是一种误解。

据我了解,小项目开发中容易出现以下问题:

1、开发之前没有认真地进行项目可行性和工作量的估计。
往往由于项目较小,便很草率地制定一个开发日程表,没有认真地估计项目难
度,结果实际完成时间与估计完成时间往往有较大差距。

2、没有真正的设计过程 。
开发人员少,不同人员的程序之间交互、接口相对少一些。开发周期短往往是几
个人从头到尾负责一个项目,几个人碰一下头,讨论一下最基本的数据结构、函
数接口便分头去做自己的工作了,没有一份较正式的文档来规范各自职责和项目
细节。
这种做法潜在的危险之一是有人可能会对所讨论的接口、结构理解有偏差,可能
会造成以后的返工。
另一个潜在的危险是由于讨论时忽略了某些情况,等大家都按时完成分工任务
后,才发现各个模块组合起来却无法形成一个完整的系统。其根源在于没有一个
负责协调的人员不断监控整个开发过程。
第三个潜在的危险是一旦有人中途退出开发队伍,其他人加入时,难以理解以前
别人做好的代码,又要从头做起。另外,没有文档的程序,日后维护和版本升级
都比较困难。

3、不经过单元测试而直接进入系统测试 。
造成这一现象的原因是每个模块相对比较简单,但是为了测试一个模块需要建立
一些测试环境。例如,为了测试一个函数是否正确,应该用一些测试数据去调用
该函数,需要编写一些测试数据。但很多开发人员嫌麻烦,觉得反正其他模块也
很快出来了,直接用真正的数据来运行几次就行了。 针对以上问题,我认为在
开发过程中必须处理好四个关键问题,严格把关,可以大大提高软件的质量。
这四个关键问题为:人员、规范、测试、时间控制。

一、合理配置人员

首先软件开发是一项长期艰苦的工作,所以一个团结、协作的团体才能在规定的
时间内完成一个质量上乘的软件项目。团队中的每个人必须积极融入到整个集体
中,不能互相推诿,更不能互相埋怨和指责,正确的态度是大家在充分信任的基
础上团结协作,互相帮助,主动承担任务, 利用集体的智慧获得成功。整个团队
就是一部机器,只有每一个齿轮都能正常运作,才能生产出优质的产品。

合理配备人员是成功完成软件开发项目的切实保证。所谓合理配备人员应包括按
不同阶段适时运用人员,恰当掌握用人标准。一般来说,软件项目不同阶段、不
同层次技术人员的参与情况是不一样的。图一是典型的软件开发人员参与情况与
实际人员需求差异曲线图。

如人员配置不当,很容易造成人力资源的浪费,并延误工期。特别是采用恒定人
员配备方案时,在项目的开始和最后都会出现人力过剩,而在中期又会出现人力
不足的情况。

为开发人员创造出一个人尽其才的环境也是项目成功的重要环节,让他们能得心
应手的施展自己的才华,特别在工作安排上要煞费苦心,针对每个人不同的特
长,根据项目的具体环境和条件来合理安排人员在恰当的岗位上。

项目负责人是一个团队的核心,其综合素质直接影响项目的成败。合格的项目负
责人具有高超的领导才能和强烈的科技意识和较强的业务处理能力;具有敏锐的
洞察力,能瞄准目标,实事求是,精心组织,坚决果断,灵活应变,享有信誉;
善于制定计划,解决问题,沟通信息;具有良好的市场意识和交际能力。当然同
时满足这些条件比较困难,但是他应该具有实现这些素质的条件,并注重经验的
积累、素质的提高、能力的培养。并能从以下几方面严格要求和培养自己:

以身作则:只有身先士卒,各方面以身作则,才能得到广大开发人员的认可和信
任,才能树立较高的威信。
果断抉择:负责人的重要任务是决策,特别是有多种选择的情况下,一个正确的
选择往往事半功倍。
善于交际:他必须积极对外联络,充分利用外部资源,例如其他部门做过类似项
目者,可以向他们取经甚至直接获得源码。这对一个项目争取时间,避免重复工
作很重要。
善于协调:协调几个人的工作比自己完成一段编码更重要。由于协调不力,将影
响开发。所以项目负责人除完成自己的编程任务外,必须随时监控各开发人员的
工作,包括内容是否与要求发生偏差,进度是否滞后等等。
善于制定计划:在开发前,可将明确的开发任务通过文档传递给每个开发人员,
让大家都熟悉设计模型,都清楚自己所做的工作在整个系统中处于什么地位,这
样有时侯可能会发现设计模型中的漏洞,避免了各人的代码编写完毕之后又要修
改的后果。
沟通问题:团队沟通不是技术问题,但却是一个最能影响工作效率的问题。沟通
及时、集思广益、步调一致,才能取得胜利。

二、严格执行软件开发规范

软件开发需要严格按照软件规范实施。用手工作坊式的方式来开发软件,其结果
必然失败。从项目的用户需求分析、系统分析、编码、调试、测试、发布都需要
一步一步完成,不能轻视或忽略任何一步骤。前部分没有完成好,不要贸然进行
下一步。越是项目起步阶段,越是要注意按照规范进行。

如前所述,因为开发软件项目规模较小,很容易忽视规范化,而随心所欲,没有
计划,想到哪做到哪,其最终的结果是失去控制。其实项目小正是实现软件规范
化管理的好时机,规模小,涉及的管理方面有限,管理实施起来比较容易。CMM
等规范标准不是轻而易举就能实现的,但是可以借鉴它的思想和方法,先在小项
目上实现规范化管理,培养人员的规范和意识,为以后实现大项目的CMM等规范
打下良好的基础。

特别需要重视软件开发中文档管理。那种认为只要产品做出来可以运行,何必花
费许多精力去做文档的观点是错误的。经过实践,我深刻体会到,没有文档会带
来很多问题。用文档去引导开发过程,抛弃随心所欲的开发模式。就象工厂工人
师傅按照图纸生产零件一样,否则很可能会得到次品甚至是废品,给后来开发者
留下一堆没有意义的“垃圾”产品。我认为文档应该是开发中阶段(m
ileStone)结束的标志,每个阶段后,都需要提交相应的文档,而且要确保文档
的质量。

确保文档质量的最有效方法就是评审,提交文档后,项目负责人组织相关人员对
该文档进行审核,在充分讨论的基础上进行文档的重新修改和审核直到满足项目
要求。文档应该是贯穿整个过程的主线,在不同的阶段,需要不停地对文档进行
完善,使之真正成为全体项目人员的智慧结晶。

三、重视测试

测试是软件开发中容易忽视的问题,许多人认为开发的主要工作是编码,其实不
然,在没有严格执行开发流程的开发活动中,测试可能是唯一能确保软件质量的
方法和手段。而越是松散的项目越轻视测试活动,它既没有固定的测试组织,又
没有程序员间的交叉测试,更没有考虑过有效的测试流程和方法,他们的软件质
量完全建立在对程序员能力信任的基础上,这是很不安全的。

测试是对软件产品质量的检验和评价。它一方面检查软件中存在的质量问题,同
时对产品质量进行客观的评价。

我们一般把发现的错误bug(我们也称为缺陷defect)按严重性分为四类:死机(系
统崩溃或挂起)、致命(使系统不稳定、或破坏数据、或产生错误结果,而且是常
规操作中经常发生或非常规操作中不可避免的)、严重(系统性能或响应时间变
慢、产生错误的中间结果但不影响最终结果,如:显示不正确但输出正确)、一
般(界面拼写错误或用户使用不方便)。

我们也把发现的错误按优先级分为三种:高、中、低。一般是某错误对用户接受
或使用影响越大其优先级越高。

要完成严格的测试,就必须建立规范的系统测试流程,有专人负责执行,而且开
发人员要积极配合,不要认为测试人员是在给自己找麻烦,测试人员查找的错误
可能是程序员无法发现的错误。

一般的测试流程应该是:
1、项目组提交系统测试申请给测试中心指定帐号。由专人检查文档格式和完备
性。
2、检查合格后交给该产品对应方向的研究人员,评价其内容的有效性和真实
性。
3、检查合格后由测试中心主任审查并通过,成立测试组,指定测试组长(可暂时
没有组员)。
4、测试组长根据该产品的申请报告、测试设计和以往测试数据,制定测试方
案。
5、测试中心主任审核通过测试方案后,根据测试方案指定测试组成员,并由支
持组完成其他支持任务(如:设备的配备、测试数据库的建立、网络权限的修
改……)。
6、测试期间测试组根据测试方案进行实际测试,记录并跟踪测试缺陷报告,填
写测试记录。测试组长与项目组(测试经理)经常沟通,并获取产品的更新版本。
同时,测试组长审查、修改并提交所有缺陷报告,保证随时掌握产品的质量情
况,并监督测试进度。
7、产品进行到一定阶段后(标志是测试缺陷报告库中所有的报告处于归档状
态),由项目组和测试组长共同决定产品进入稳定期测试。稳定期测试版本之前
的版本必须在显著位置标明为测试版字样。
8、稳定期测试期间所发现的缺陷报告也需要记录在测试缺陷报告库中,并在稳
定期结束后由双方(有时可能也有市场方面的意见)共同决定对这些缺陷的处理方
式。如果需要改动产品,则重新开始稳定期,否则通过稳定期测试。
9、测试组长对于通过稳定期测试的产品填写综合测试报告,测试中心依此发布
产品发行通知。
10、测试组对整个测试过程和产品质量进行总结和评价,形成文档并备案。同
时,将测试过程中对测试设计的改动纳入基线(是已经通过正式复审核批准的某
规约或产品,是软件开发中的里程碑)。最后,组长整理并在指定地点保存相关
测试数据和测试样张。
11、测试中心解散测试小组。
另外,在系统测试阶段,我们要求测试小组要进行一些常规内容测试(如:Y2K测
试,病毒检查、裸机测试、加密检查、说明书检查……),并要求写入测试方案
中。
测试应该在现实的环境中进行。所谓现实环境就是与用户实际使用的环境相同或
相近,因为开发环境和用户使用环境有很大区别的,而开发的产品最终是要交给
用户使用的。如果没有办法模拟用户环境,则程序员可能必须自己开发一些模拟
程序来模拟现实环境。特别是与硬件配合的项目,因为在程序调试时硬件可能没
有完全完成,这时就必须开发模拟硬件的程序,否则开发的进度可能无法保证。

四、时间控制

开发人员最担心 “领导不断催促,可系统提交日期一拖再拖”,项目负责人对
此一筹莫展,束手无策。开发活动如同一个黑箱子,资金扔进去了,人员扔进去
了,设备资源扔进去了,但不知道什么时候会出来结果,更没有把握出来的东西
是否是用户所要的东西。为避免人力、物力、财力浪费,要做好项目计划,进行
有效的时间控制。

软件项目管理过程开始于项目的计划,在做项目计划时,第一项活动是估算。现
在已经使用的技术是时间和工作量的估算。因为估算是其他项目计划活动的基
石,而且项目计划又为软件工程过程提供了工作方向,所以我们不能没有计划就
着手开发,否则就会陷入误区。

软件项目的进度安排主要是考虑软件交付用户使用的这一段开发时间的安排。进
度安排的准确程度可能比成本估计的准确程度更重要。软件产品可以靠重新定价
或者靠大量的销售来弥补成本的增加,但进度安排的落空会导致市场机会的丧失
或者用户不满意,而且也会导致成本的增加。因此在考虑进度安排时要把人员的
工作量与花费的时间联系起来,合理分配工作量,利用进度安排的有效分析方法
严密监视软件开发的进展情况,以使得软件开发的进度不至于被拖延。

在作进度安排时要考虑的一个主要问题是任务的并行性问题。当参加项目的人数
不止一人时,软件开发工作就会出现并行情况。因为并行任务是同时发生的,所
以进度计划表必须决定任务之间的从属关系,确定各个任务的先后次序和衔接,
确定各个任务完成的持续时间。另外还应注意关键路径的任务,这样可以确定在
进度安排中应保证的重点。常用的进度安排方法有两种,即甘特图(Gantt
Chart)法和工程网络法。

项目怎么样才能算做好了,也是各有各的看法,我对项目成功的定义为,“三
赢”的项目,才算是真正成功的项目。三赢包括,用户满意;公司满意;项目参
与人员满意。

为用户服务、让用户满意:用户指提供资金并且最终使用项目结果的所有人员,
项目的开发过程和最终结果,要让用户认可、使用,并让用户说好。此为一赢。

让公司满意:项目开发要按时保质保量地完成,并为公司积累项目经验、知识储
备,包括项目、人才、技术、市场等各方面的储备。此为二赢。
让项目参与人员满意:要让开发人员在项目中专注地完成任务,免受项目之外的
因素干扰。正常、优秀地完成项目,对开发人员本身也是一种巨大的鼓励。还要
让供应商深知其设备、软件的使用情况,让项目的成功成为供应商的成功,为下
一次的更好合作打下基础。

初为开发负责人,需要不断积累经验,我书写此文目的在于抛砖引玉,争取和大
家一同将我们的项目做得更完美。欢迎各位指教。

--------------------------------------------------------------------------------------------------------
PM阵营中永远的新兵……
>>> 由论坛统一发布的广告:
楼主 帅哥约,不在线,有人找我吗?Adam


职务 无
军衔 少尉
来自 北京
发帖 418篇
注册 2003/2/17
PM币 439
经验 650点

  
!  您尚未登录,不能回复主题。    现在 登录  注册
关于联盟 | VIP会员 | 培训服务 | PMP认证 | PgMP认证 | 刊物出版 | 沙龙会议 | 人才服务 | 广告投放 | 联系我们 | 友情链接
建设运营:共创时网络
版权所有 京ICP证070584号 BBS业务许可2007第353号