如何成功管理一个软件项目
以科学的技术方法、融合现代的管理手段,将软件项目的实施过程里于一种规范化的管理之中是软件项目监理所追求的目标。以下是第一范文网小编为大家整理的关于如何成功管理一个软件项目,欢迎阅读!
成功管理软件项目1:实行严格的产品控制。
软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价;但是软件开发过程中改变需求又在所难免,基于外部环境的变化而出现改变用户需求的情况是一种客观需要,而且迅速应对客户的需求变更是顾客本位的内涵之一。在这种情况下,只能依靠科学的产品控制技术来顺应这种要求。当改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理。所谓基准配置又称基线配置,它们是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。基准配置管理也称为变更控制:一切有关修改软件的建议,特别是涉及到对基准配置的修改建议,都必须按照严格的规程进行评审,获得批准以后才能实施修改。避免开发人员对软件随意进行修改。
成功管理软件项目2:分阶段的生命周期计划管理
统计表明,不成功的软件项目中约有一半左右源自计划不周。本原则意味着,应该把软件生命周期划分成若干阶段,相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。勃姆认为,在软件的整个生命周期中应该制定并严格执行6类计划,即项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。不同层次的管理人员必须严格按照计划各尽其职地管理软件开发与维护工作,绝不能受顾客或上级人员的影响而擅自背离预定计划。
成功管理软件项目3:坚持进行阶段评审。
软件的质量保证工作不能等到编码阶段结束之后再加以实施,其理由为:第一,大部分错误始于编码之前;第二,错误的发现与修改时间越晚,需要付出的代价就越高。因此,本原则意味着,在软件开发的每个阶段应该进行严格的评审,以便尽早发现软件开发过程中的错误。
成功管理软件项目4:结果应能清楚地审查。
与其他有形产品不同,软件是看不见摸不着的逻辑产品。软件开发人员的工作进展情况可见性差,难以准确度量,从而使得软件产品的开发过程比一般产品的开发过程更难以评价和管理。为了提高软件开发过程的可见性,更好地进行管理,应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。
成功管理软件项目5:开发小组的人员应该少而精。
该原则意味着,软件开发项目的组成人员的素质应该好,而人数则不宜过多。开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。素质高的人员的开发效率比素质低的人员的开发效率可能高几倍至几十倍,而且素质高的人员所开发的软件中的错误明显少于素质低的人员所开发的软件。此外,随着开发小组人员数目的增加,因为交流问题而造成的沟通成本也急剧增加。因此,构建和维持少而精的开发团队甚至标杆团队是软件工程的一条基本原理。
成功管理软件项目6:采用现代程序设计技术。
从提出软件工程的概念开始,人们一直把主要精力用于研究各种新的程序设计技术。从60年代末提出的结构程序设计技术到最近的面向对象技术,人们不断创造先进的程序设计技术。实践表明,采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。
软件项目成功的关键
随着客户需求的变化,现在很多软件企业的日子越来越不好过了,以前每签一个项目就“树立一座丰碑”,现在则陷入“每签一个项目就树立了一座墓碑”的尴尬境地,为什么会这样呢?根据我们辅导的企业情况来看,软件项目关键问题在需求管理。需求管理是导入型问题,如果需求都没有搞清楚,跑的越快,死得越惨。
第一:客户对软件的需求不明确
由于很多软件项目都是在需求朦朦胧胧的状态下进行的,客户自己也没有搞清楚自己到底需要什么,只是感觉现在的工作状态不理想,想通过信息化来改善一下,提高工作效率,具体怎么设计、怎么实施,没有一个清晰的思路或者流程。
软件企业在接到项目需求之后,由于现在市场竞争非常激烈,很多企业甚至在不知道客户需求什么,我们能不能做的情况下,就满口答应客户所有需求,草草签订了合同,有的甚至连合同都没有签订,直接开始做。
第二:客户对需求管理都不够重视
在客户方面,很多客户仗着自己是甲方的地位,也不重视对内部需求的管理,一会一个部门提出一个需求,一会另一个部门又提出一个需求,有的时候甚至不同部门的需求相互冲突相互矛盾。他们认为我们出钱了,你们就是要满足我们的需求。这样的心态不仅浪费了我们自己的资源,也浪费了乙方的资源。
第三:软件企业对需求管理都不够重视,缺乏规划化的需求管理流程
有些软件企业可能会觉得比较冤,说黄老师,我们非常重视客户需求呀,难道说我们不重视需求管理吗?
首先,我们现在很多企业没有规范化的需求管理流程。不知道如何科学收集客户需求,如何整理需求,如何进行需求分析,哪些是用户需求,哪些是功能系统,哪些是系统需求,哪些是业务需求?
其次,没有需求跟踪文档的管理。可能很多企业都没有完整的需求文档,那就更加谈不上需求跟踪与需求管理了。需求文档的管理是非常重要的,在项目进行过程中,客户的需求可能会像挤牙膏似的慢慢一点一点出来,这个时候,我们要对客户的需求进行记录进行跟踪,我们也会根据项目的进展状况,对需求进行整理和回顾,这样需求才能有据可查,如果没有需求跟踪文档,需求信息必定会凌乱,不系统,甚至会出现前后矛盾的情况。
再次,没有对需求进行优先级划分。很多企业对客户提出的所有需求统统接收,没有对客户的需求进行优先级划分,哪些是紧急重要的需求,哪些是不紧急不重要的需求,哪些是确定的需求,哪些是不确定的需求。结果导致无论客户提出什么需求,都在第一时间进行响应,有的什么还美其名曰:“我们是以客户为中心”。这种不是以客户为中心的做法,这种做法是鼓励客户犯错误,浪费企业资源。
第四,没有对客户需求进行引导或者合理的拒绝。由于处于乙方的地位,很难对客户的需求管理进行约束,因此,很多企业缺乏合理拒绝客户不合理需求的勇气和流程,有的时候甚至直到客户提出的需求不合理,为了满足“客户需求”,还是要求研发人员及时响应。结果是鼓励客户肆无忌惮无视合理需求,提高研发人员的挫折感,延期项目进度。
第四:缺乏需求变更管理流程,缺乏对需求变更的处罚机制
由于软件行业的需求收集和需求分析存在一定的困难,因此,很多企业就默认客户需求一定会变化的现实。对需求变更采取放任的态度。
我们承认,软件行业的客户需求确实很难把握和管理,如果我们不加以管理,那就更加难以管理了。因此,采取正确的需求变更管理可以有效提高软件需求管理的精确度,减少需求变更的频次。
首先我们要从内部控制的角度来进行,公司内部要建立规范化的需求管理流程和变更管理流程,各个部门和相关负责同志要提高能力,正确引导客户需求,合理拦截客户不合理需求,提高对需求变更的认识,积累经验,提高需求变更的准确率。
其次,我们从客户需求管理入手,帮助客户建立规范化的需求管理流程,最后是客户当面内部先对需求进行收集和整理,通过评审之后再发给软件企业,这样比较无效劳动,提高工作效率,避免项目进度延迟,利人利己。
再次,加强对相关岗位需求变更管理的考核与激励机制,针对造成重大损失的变更要进行处罚,对做的好的需求管理团队进行奖励。
软件项目的需求管理是导入型问题,如果前面的需求管理没有解决,后面的实施就很难进行,因此,软件企业一定要提高“一次性把事情做对的能力”。如果前面的需求没有了解清楚,后面将会花费更多的时间和成本。软件企业如何提高需求管理水平呢?我们认为可以从以下几个方面进行加强。
提高对需求管理的认识。
建立规范化的需求管理流程。(包括客户的)
建立需求跟踪文档。
对需求进行优先级划分。
拒绝客户不合理需求,学会引导客户需求。
建立需求变更管理流程,制定相应的奖励和处罚机制。
如果想在本行业进行长期耕耘的企业,还要加强对市场的研究和技术发展趋势的研究,根据公司战略定位和产品定位,选择目标客户群,对目标客户群进行需求分析和识别,把客户现在的需求,未来的需求按照BAS级别进行系统分析,结合技术的发展趋势,这样才能真正做到引导客户需求.