|
浅谈软件开发管理体会(杨利梅)广告 摘要:虽然项目大小不一,但管理方法是相通的,要做好软件开发工作,就必须加强有效管理。软件项目管理是一个庞大而复杂的系统工程。 浅谈软件开发管理体会 杨利梅
软件项目管理是一个庞大而复杂的系统工程,当前业界对于软件开发流程有不少规范和定义,如CMM和ISO9000。在该管理体系的管理下是可以开发出高质量的软件产品。但是由于该体系较适合于大型而且复杂项目的团队开发,真正实施尚需要时间和过程。而我们当前执行的项目,一般只有10个人左右,要实施软件工程难度更大。我认为:虽然项目大小不一,但管理方法是相通的,要做好软件开发工作,就必须加强有效管理。 大家知道,“软件危机”起源于一些大型项目的不断延迟甚至失败。与大项目相比,小项目具有以下特点: 小项目看起来比较简单,比较容易成功,人们往往容易忽视小项目的管理,其实这是一种误解。 据我了解,小项目开发中容易出现以下问题: 1、开发之前没有认真地进行项目可行性和工作量的估计。 2、没有真正的设计过程
。 3、不经过单元测试而直接进入系统测试
。 一、合理配置人员 首先软件开发是一项长期艰苦的工作,所以一个团结、协作的团体才能在规定的时间内完成一个质量上乘的软件项目。团队中的每个人必须积极融入到整个集体中,不能互相推诿,更不能互相埋怨和指责,正确的态度是大家在充分信任的基础上团结协作,互相帮助,主动承担任务, 利用集体的智慧获得成功。整个团队就是一部机器,只有每一个齿轮都能正常运作,才能生产出优质的产品。 合理配备人员是成功完成软件开发项目的切实保证。所谓合理配备人员应包括按不同阶段适时运用人员,恰当掌握用人标准。一般来说,软件项目不同阶段、不同层次技术人员的参与情况是不一样的。图一是典型的软件开发人员参与情况与实际人员需求差异曲线图。 如人员配置不当,很容易造成人力资源的浪费,并延误工期。特别是采用恒定人员配备方案时,在项目的开始和最后都会出现人力过剩,而在中期又会出现人力不足的情况。 为开发人员创造出一个人尽其才的环境也是项目成功的重要环节,让他们能得心应手的施展自己的才华,特别在工作安排上要煞费苦心,针对每个人不同的特长,根据项目的具体环境和条件来合理安排人员在恰当的岗位上。 项目负责人是一个团队的核心,其综合素质直接影响项目的成败。合格的项目负责人具有高超的领导才能和强烈的科技意识和较强的业务处理能力;具有敏锐的洞察力,能瞄准目标,实事求是,精心组织,坚决果断,灵活应变,享有信誉;善于制定计划,解决问题,沟通信息;具有良好的市场意识和交际能力。当然同时满足这些条件比较困难,但是他应该具有实现这些素质的条件,并注重经验的积累、素质的提高、能力的培养。并能从以下几方面严格要求和培养自己: 以身作则:只有身先士卒,各方面以身作则,才能得到广大开发人员的认可和信任,才能树立较高的威信。 软件开发需要严格按照软件规范实施。用手工作坊式的方式来开发软件,其结果必然失败。从项目的用户需求分析、系统分析、编码、调试、测试、发布都需要一步一步完成,不能轻视或忽略任何一步骤。前部分没有完成好,不要贸然进行下一步。越是项目起步阶段,越是要注意按照规范进行。 如前所述,因为开发软件项目规模较小,很容易忽视规范化,而随心所欲,没有计划,想到哪做到哪,其最终的结果是失去控制。其实项目小正是实现软件规范化管理的好时机,规模小,涉及的管理方面有限,管理实施起来比较容易。CMM等规范标准不是轻而易举就能实现的,但是可以借鉴它的思想和方法,先在小项目上实现规范化管理,培养人员的规范和意识,为以后实现大项目的CMM等规范打下良好的基础。 特别需要重视软件开发中文档管理。那种认为只要产品做出来可以运行,何必花费许多精力去做文档的观点是错误的。经过实践,我深刻体会到,没有文档会带来很多问题。用文档去引导开发过程,抛弃随心所欲的开发模式。就象工厂工人师傅按照图纸生产零件一样,否则很可能会得到次品甚至是废品,给后来开发者留下一堆没有意义的“垃圾”产品。我认为文档应该是开发中阶段(mileStone)结束的标志,每个阶段后,都需要提交相应的文档,而且要确保文档的质量。 确保文档质量的最有效方法就是评审,提交文档后,项目负责人组织相关人员对该文档进行审核,在充分讨论的基础上进行文档的重新修改和审核直到满足项目要求。文档应该是贯穿整个过程的主线,在不同的阶段,需要不停地对文档进行完善,使之真正成为全体项目人员的智慧结晶。 三、重视测试 测试是软件开发中容易忽视的问题,许多人认为开发的主要工作是编码,其实不然,在没有严格执行开发流程的开发活动中,测试可能是唯一能确保软件质量的方法和手段。而越是松散的项目越轻视测试活动,它既没有固定的测试组织,又没有程序员间的交叉测试,更没有考虑过有效的测试流程和方法,他们的软件质量完全建立在对程序员能力信任的基础上,这是很不安全的。 测试是对软件产品质量的检验和评价。它一方面检查软件中存在的质量问题,同时对产品质量进行客观的评价。 我们一般把发现的错误bug(我们也称为缺陷defect)按严重性分为四类:死机(系统崩溃或挂起)、致命(使系统不稳定、或破坏数据、或产生错误结果,而且是常规操作中经常发生或非常规操作中不可避免的)、严重(系统性能或响应时间变慢、产生错误的中间结果但不影响最终结果,如:显示不正确但输出正确)、一般(界面拼写错误或用户使用不方便)。 我们也把发现的错误按优先级分为三种:高、中、低。一般是某错误对用户接受或使用影响越大其优先级越高。 要完成严格的测试,就必须建立规范的系统测试流程,有专人负责执行,而且开发人员要积极配合,不要认为测试人员是在给自己找麻烦,测试人员查找的错误可能是程序员无法发现的错误。 一般的测试流程应该是: 四、时间控制 开发人员最担心 “领导不断催促,可系统提交日期一拖再拖”,项目负责人对此一筹莫展,束手无策。开发活动如同一个黑箱子,资金扔进去了,人员扔进去了,设备资源扔进去了,但不知道什么时候会出来结果,更没有把握出来的东西是否是用户所要的东西。为避免人力、物力、财力浪费,要做好项目计划,进行有效的时间控制。 软件项目管理过程开始于项目的计划,在做项目计划时,第一项活动是估算。现在已经使用的技术是时间和工作量的估算。因为估算是其他项目计划活动的基石,而且项目计划又为软件工程过程提供了工作方向,所以我们不能没有计划就着手开发,否则就会陷入误区。 软件项目的进度安排主要是考虑软件交付用户使用的这一段开发时间的安排。进度安排的准确程度可能比成本估计的准确程度更重要。软件产品可以靠重新定价或者靠大量的销售来弥补成本的增加,但进度安排的落空会导致市场机会的丧失或者用户不满意,而且也会导致成本的增加。因此在考虑进度安排时要把人员的工作量与花费的时间联系起来,合理分配工作量,利用进度安排的有效分析方法严密监视软件开发的进展情况,以使得软件开发的进度不至于被拖延。 在作进度安排时要考虑的一个主要问题是任务的并行性问题。当参加项目的人数不止一人时,软件开发工作就会出现并行情况。因为并行任务是同时发生的,所以进度计划表必须决定任务之间的从属关系,确定各个任务的先后次序和衔接,确定各个任务完成的持续时间。另外还应注意关键路径的任务,这样可以确定在进度安排中应保证的重点。常用的进度安排方法有两种,即甘特图(Gantt Chart)法和工程网络法。 项目怎么样才能算做好了,也是各有各的看法,我对项目成功的定义为,“三赢”的项目,才算是真正成功的项目。三赢包括,用户满意;公司满意;项目参与人员满意。 为用户服务、让用户满意:用户指提供资金并且最终使用项目结果的所有人员,项目的开发过程和最终结果,要让用户认可、使用,并让用户说好。此为一赢。 让公司满意:项目开发要按时保质保量地完成,并为公司积累项目经验、知识储备,包括项目、人才、技术、市场等各方面的储备。此为二赢。 初为开发负责人,需要不断积累经验,我书写此文目的在于抛砖引玉,争取和大家一同将我们的项目做得更完美。欢迎各位指教。 参考文献: 本文由作者向AMT提供
如果您希望与本文章的作者或其所在机构,进一步交流,请联系:畅享网 姜小姐 jill.jiang@amt.com.cn | 021-51096826-112 | 在线联系 |
|
|
|