现在的位置:首页 > 软件开发技术 > 新闻详情

软件开发的管理体会

    软件项目管理是一个庞大而复杂的系统工程,当前业界对于软件开发流程有不少规范和定义,如CMM和ISO9000。在该管理体系的管理下是可以开发出高质量的软件产品。但是由于该体系较适合于大型而且复杂项目的团队开发,真正实施尚需要时间和过程。而我们当前执行的项目,一般只有10个人左右,要实施软件工程难度更大。我认为:虽然项目大小不一,但管理方法是相通的,要做好软件开发工作,就必须加强有效管理。 
    大家知道,“软件危机”起源于一些大型项目的不断延迟甚至失败。与大项目相比,小项目具有以下特点:
项目功能相对较少; 开发人员较少;开发周期较短。 
    小项目看起来比较简单,比较容易成功,人们往往容易忽视小项目的管理,其实这是一种误解。小项目开发中容易出现以下问题:
1、开发之前没有认真地进行项目可行性和工作量的估计。 
往往由于项目较小,便很草率地制定一个开发日程表,没有认真地估计项目难度,结果实际完成时间与估计完成时间往往有较大差距。 
2、没有真正的设计过程。 
    开发人员少,不同人员的程序之间交互、接口相对少一些。开发周期短往往是几个人从头到尾负责一个项目,几个人碰一下头,讨论一下最基本的数据结构、函数接口便分头去做自己的工作了,没有一份较正式的文档来规范各自职责和项目细节。 
3、不经过单元测试而直接进入系统测试。 
    造成这一现象的原因是每个模块相对比较简单,但是为了测试一个模块需要建立一些测试环境。例如,为了测试一个函数是否正确,应该用一些测试数据去调用该函数,需要编写一些测试数据。但很多开发人员嫌麻烦,觉得反正其他模块也很快出来了,直接用真正的数据来运行几次就行了。 
    针对以上问题,在开发过程中必须处理好四个关键问题,严格把关,可以大大提高软件的质量。 
四个关键问题为:人员、规范、测试、时间控制。 
一、合理配置人员 
    首先软件开发是一项长期艰苦的工作,所以一个团结、协作的团体才能在规定的时间内完成一个质量上乘的软件项目。团队中的每个人必须积极融入到整个集体中,不能互相推诿,更不能互相埋怨和指责,正确的态度是大家在充分信任的基础上团结协作,互相帮助,主动承担任务, 利用集体的智慧获得成功。整个团队就是一部机器,只有每一个齿轮都能正常运作,才能生产出优质的产品。 
    合理配备人员是成功完成软件开发项目的切实保证。所谓合理配备人员应包括按不同阶段适时运用人员,恰当掌握用人标准。一般来说,软件项目不同阶段、不同层次技术人员的参与情况是不一样的。图一是典型的软件开发人员参与情况与实际人员需求差异曲线图。 
如人员配置不当,很容易造成人力资源的浪费,并延误工期。特别是采用恒定人员配备方案时,在项目的开始和最后都会出现人力过剩,而在中期又会出现人力不足的情况。
为开发人员创造出一个人尽其才的环境也是项目成功的重要环节,让他们能得心应手的施展自己的才华,特别在工作安排上要煞费苦心,针对每个人不同的特长,根据项目的具体环境和条件来合理安排人员在恰当的岗位上。 
    项目负责人是一个团队的核心,其综合素质直接影响项目的成败。合格的项目负责人具有高超的领导才能和强烈的科技意识和较强的业务处理能力;具有敏锐的洞察力,能瞄准目标,实事求是,精心组织,坚决果断,灵活应变,享有信誉;善于制定计划,解决问题,沟通信息;具有良好的市场意识和交际能力。当然同时满足这些条件比较困难,但是他应该具有实现这些素质的条件,并注重经验的积累、素质的提高、能力的培养。并能从以下几方面严格要求和培养自己: 
    以身作则:只有身先士卒,各方面以身作则,才能得到广大开发人员的认可和信任,才能树立较高的威信。 
    果断抉择:负责人的重要任务是决策,特别是有多种选择的情况下,一个正确的选择往往事半功倍。 
    善于交际:他必须积极对外联络,充分利用外部资源,例如其他部门做过类似项目者,可以向他们取经甚至直接获得源码。这对一个项目争取时间,避免重复工作很重要。 
    善于协调:协调几个人的工作比自己完成一段编码更重要。由于协调不力,将影响开发。所以项目负责人除完成自己的编程任务外,必须随时监控各开发人员的工作,包括内容是否与要求发生偏差,进度是否滞后等等。 
    善于制定计划:在开发前,可将明确的开发任务通过文档传递给每个开发人员,让大家都熟悉设计模型,都清楚自己所做的工作在整个系统中处于什么地位,这样有时侯可能会发现设计模型中的漏洞,避免了各人的代码编写完毕之后又要修改的后果。 
    沟通问题:团队沟通不是技术问题,但却是一个最能影响工作效率的问题。沟通及时、集思广益、步调一致,才能取得胜利。 
二、严格执行软件开发规范 
    软件开发需要严格按照软件规范实施。用手工作坊式的方式来开发软件,其结果必然失败。从项目的用户需求分析、系统分析、编码、调试、测试、发布都需要一步一步完成,不能轻视或忽略任何一步骤。前部分没有完成好,不要贸然进行下一步。越是项目起步阶段,越是要注意按照规范进行。 
    特别需要重视软件开发中文档管理。那种认为只要产品做出来可以运行,何必花费许多精力去做文档的观点是错误的。经过实践,我深刻体会到,没有文档会带来很多问题。用文档去引导开发过程,抛弃随心所欲的开发模式。就象工厂工人师傅按照图纸生产零件一样,否则很可能会得到次品甚至是废品,给后来开发者留下一堆没有意义的“垃圾”产品。我认为文档应该是开发中阶段结束的标志,每个阶段后,都需要提交相应的文档,而且要确保文档的质量。
    确保文档质量的最有效方法就是评审,提交文档后,项目负责人组织相关人员对该文档进行审核,在充分讨论的基础上进行文档的重新修改和审核直到满足项目要求。文档应该是贯穿整个过程的主线,在不同的阶段,需要不停地对文档进行完善,使之真正成为全体项目人员的智慧结晶。 
三、重视测试 
    测试是软件开发中容易忽视的问题,许多人认为开发的主要工作是编码,其实不然,在没有严格执行开发流程的开发活动中,测试可能是唯一能确保软件质量的方法和手段。而越是松散的项目越轻视测试活动,它既没有固定的测试组织,又没有程序员间的交叉测试,更没有考虑过有效的测试流程和方法,他们的软件质量完全建立在对程序员能力信任的基础上,这是很不安全的。
测试是对软件产品质量的检验和评价。它一方面检查软件中存在的质量问题,同时对产品质量进行客观的评价。 
    我们一般把发现的错误bug(我们也称为缺陷defect)按严重性分为四类:死机(系统崩溃或挂起)、致命(使系统不稳定、或破坏数据、或产生错误结果,而且是常规操作中经常发生或非常规操作中不可避免的)、严重(系统性能或响应时间变慢、产生错误的中间结果但不影响最终结果,如:显示不正确但输出正确)、一般(界面拼写错误或用户使用不方便)。 
我们也把发现的错误按优先级分为三种:高、中、低。一般是某错误对用户接受或使用影响越大其优先级越高。 
    要完成严格的测试,就必须建立规范的系统测试流程,有专人负责执行,而且开发人员要积极配合,不要认为测试人员是在给自己找麻烦,测试人员查找的错误可能是程序员无法发现的错误。
一般的测试流程应该是: 
1、项目组提交系统测试申请给测试中心指定帐号。由专人检查文档格式和完备性。 
2、检查合格后交给该产品对应方向的研究人员,评价其内容的有效性和真实性。 
3、检查合格后由测试中心主任审查并通过,成立测试组,指定测试组长(可暂时没有组员)。 
4、测试组长根据该产品的申请报告、测试设计和以往测试数据,制定测试方案。 
5、测试中心主任审核通过测试方案后,根据测试方案指定测试组成员,并由支持组完成其他支持任务(如:设备的配备、测试数据库的建立、网络权限的修改……)。 
6、测试期间测试组根据测试方案进行实际测试,记录并跟踪测试缺陷报告,填写测试记录。测试组长与项目组(测试经理)经常沟通,并获取产品的更新版本。同时,测试组长审查、修改并提交所有缺陷报告,保证随时掌握产品的质量情况,并监督测试进度。 
7、产品进行到一定阶段后(标志是测试缺陷报告库中所有的报告处于归档状态),由项目组和测试组长共同决定产品进入稳定期测试。稳定期测试版本之前的版本必须在显著位置标明为测试版字样。 
8、稳定期测试期间所发现的缺陷报告也需要记录在测试缺陷报告库中,并在稳定期结束后由双方(有时可能也有市场方面的意见)共同决定对这些缺陷的处理方式。如果需要改动产品,则重新开始稳定期,否则通过稳定期测试。 
9、测试组长对于通过稳定期测试的产品填写综合测试报告,测试中心依此发布产品发行通知。 
10、测试组对整个测试过程和产品质量进行总结和评价,形成文档并备案。同时,将测试过程中对测试设计的改动纳入基线(是已经通过正式复审核批准的某规约或产品,是软件开发中的里程碑)。最后,组长整理并在指定地点保存相关测试数据和测试样张。 
11、测试中心解散测试小组。 
另外,在系统测试阶段,我们要求测试小组要进行一些常规内容测试,并要求写入测试方案中。 测试应该在现实的环境中进行。所谓现实环境就是与用户实际使用的环境相同或相近,因为开发环境和用户使用环境有很大区别的,而开发的产品最终是要交给用户使用的。如果没有办法模拟用户环境,则程序员可能必须自己开发一些模拟程序来模拟现实环境。特别是与硬件配合的项目,因为在程序调试时硬件可能没有完全完成,这时就必须开发模拟硬件的程序,否则开发的进度可能无法保证。 
四、时间控制 
    开发人员最担心 “领导不断催促,可系统提交日期一拖再拖”,项目负责人对此一筹莫展,束手无策。开发活动如同一个黑箱子,资金扔进去了,人员扔进去了,设备资源扔进去了,但不知道什么时候会出来结果,更没有把握出来的东西是否是用户所要的东西。为避免人力、物力、财力浪费,要做好项目计划,进行有效的时间控制。 

想要了解更多详情欢迎来电咨询18678812288,或登陆网址www.jnwzjs.cn。联系人:王经理。

威海软件开发成功案例 查看更多+

  • 检察院网络服务大厅软件平台

    检察院网络服务大厅软件平台

  • 企业在线考试系统

    企业在线考试系统

  • 党员在线考试系统

    党员在线考试系统

  • 赢德P2P网贷系统

    赢德P2P网贷系统

  • 烟台心理测评软件|威海心理测评系

    烟台心理测评软件|威海心理测评系

  • 烟台内部培训管理系统|威海出国留

    烟台内部培训管理系统|威海出国留

  • 烟台物流软件开发|威海快递软件开

    烟台物流软件开发|威海快递软件开

  • 狠刹“四风”网络监督平台软件

    狠刹“四风”网络监督平台软件

  • 党员领导干部德廉知识在线学习测

    党员领导干部德廉知识在线学习测

  • 烟台在线考试系统|威海在线考试软

    烟台在线考试系统|威海在线考试软

  • 菏泽新巨龙煤矿采掘资料达标管理

    菏泽新巨龙煤矿采掘资料达标管理

  • 科技信息评价信息系统

    科技信息评价信息系统

  • 绩效考核系统

    绩效考核系统

  • 济钢炼铁厂管理信息系统

    济钢炼铁厂管理信息系统

  • 国税房产企业所得税监控管理系统

    国税房产企业所得税监控管理系统

  • 人力资源管理信息系统

    人力资源管理信息系统

  • 三维数字矿山信息系统

    三维数字矿山信息系统

  • 展屏系统

    展屏系统

  • 洁能建筑智能管理终端系统

    洁能建筑智能管理终端系统

  • 汽修厂管理系统

    汽修厂管理系统

联系我们| 汇款方式| 法律声明| 开发流程

手机:18678812288 在线客服1069706080 版权所有2008- 2018

相关搜索:烟台软件开发| 威海软件开发| 烟台APP软件开发| 威海APP开发| 威海政府管理软件| 威海教育管理APP软件| 烟台政府管理软件| 烟台教育管理APP软件| 烟台手机应用软件开发| 软件开发外包| 游戏软件开发| 威海oa软件开发自学| 我想学APP开发| 如何进行软件开发| 威海软件开发工程师| 威海软件设计| 烟台短信开发平台| 烟台软件开发公司排名| 威海App开发有多难?