欢迎来到天天文库
浏览记录
ID:15381827
大小:27.50 KB
页数:9页
时间:2018-08-03
《软件开发过程中项目管理问题研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件开发过程中项目管理问题研究 随着信息技术的飞速发展,软件产品的规模也越来越庞大,各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。但国内软件企业对于软件项目的认知,在一定程度上盲目多于理性、理论多于实践。鉴于上述问题,本文分析了基于项目管理的软件开发过程需要注意的几个问题。 1需求开发要注意的问题 需求开发作为软件项目启动的初始工作有两个目标:发现真正的需求并以适合于用户和开发人员的方式加以表述。 发现需求即需求获取,“真正的需求”是指在实现时可以给用户带来预期价值的需求“;以适合于用户和开发人员的方式”即需
2、求定义,主要是指对需求的最后描述必须让用户和开发人员无歧义的理解。在需求开发过程,软件开发人员要注意如下的两个问题: 1.1不要忽视非功能需求 通常,需求分析人员更多的关注功能需求,而忽视非功能需求,从而导致NV[2](即“下一版本”)陷阱。陷入NV陷阱后,产品的质量会大打折扣,甚至“拿不出手”。另外,不完整的需求也容易导致架构的错误设计,如:1.1.1XX查询的响应时间必须小于1秒;1.1.2并发用户的数量每小时超过10000个用户对于此类性能方面的非功能需求,直接影响到架构中持久层设计所采用的技术,而且这种架构上的缺陷实际上很难在“
3、下一版本”轻易的改变。为了防止陷入NV陷阱,非功能性需求从一开始就要被提出来,和功能性需求一样受到应有的重视。如果这些非功能性需求是确实需要的,就应该被写入需求规格书,并在产品开发过程中接受实现状况的检查。 1.2正确面对需求变更 在大多数软件项目中最不稳定的部分就是需求。在项目需求分析阶段,必需全面的、应尽可能细致地讨论项目的应用背景、功能要求、性能要求、操作界面要求、与其它软件的接口要求,以及对项目进行评估的各种评价标准。但由于各方面的原因用户需求始终处在一个持续变化的状态中,这是项目开发人员必须的接收的事实。那么对于这样的现状,软
4、件开发者该怎么办呢?其一是把需求变化控制在最小的范畴,在需求变化发生之前尽量减少需求变化;其二是在设计软件体系结构时,不仅应该想到如何满足现在已经提出的用户需求,同时也应适当地考虑到需求的变更,想办法应对需求变化,例如:采用面向对象的思想。世界都是由对象组成的,而对象都是持久的。面向对象的开发方法的精髓就是从企业的不稳定需求中分析出企业的稳定对象,以企业对象为基础来组织需求、构架系统。这样得出的系统就会比传统的系统要稳定得多,因为企业的模式一旦变化,只需要将稳定的企业对象重新组织就行了。这种开发的方法就被称为OOAD(Ob-jectOrie
5、ntAnalysis&Design面向对象的分析和设计)。 2项目管理人员需要克服的障碍 项目管理是一项控制性的工作,项目管理者的工作重点就是控制和协调。项目管理者首先要确保每个成员完全理解任务,要把任务的目标解释清楚,并强调他对最终期限及评估成果的期望。 在软件的整个开发过程中项目管理者需要有效的监控工作进展,并提供给每个成员必要的协助,以确保整个开发团队朝着目标前进,并且在项目迭代开发过程中的设定可观测的里程碑。作为团队开发的项目管理者,要让整个开发团队有效地运转,发挥团队每位成员的最大能量,必须要克服下列障碍: 2.1障碍一:
6、不信任员工 最简单的例子是,在重量级(Heavyweight)方法[3](制定了大量的规则的RUP方法)中,基本假设是对人的不信任,但不信任就会产生很多的问题,比如士气不高,计划赶不上变化,创新能力低下,跳槽率升高等等。轻量级(Lightweight)(像XP这样只制定少量的规则来规范行为的方法)方法的出发点是相互信任,做到这一点是很难的,但是一旦做到了,那么这个团队就能高效运作。 2.2障碍二:对任务的控制走向极端 很多项目管理者害怕失去对任务的控制。如果能够保持沟通与协调的顺畅,采用类似“关键会议制度”等手段,强化信息流通的效率与
7、效果,任务在完成的过程中,失控的可能性其实是很小的。同时,在安排任务的时候,项目管理者应该尽可能地把问题、目标、资源等,向各成员交代清楚,也有助于避免任务失控。 2.3障碍三:管理意识薄弱 在软件企业中,项目经理大多是技术骨干。因此有些项目管理者凭着自己的技术实力宁可自己做得很辛苦,也不愿意把工作内容交给团队成员。为什么呢?他们认为,教会部下怎么做,得花上好几个小时;自己做的话,不到半小时就做好了,花那么多时间教他们,还不如自己做更快些。问题是:难道项目管理者就这样一直把所有的事情都自己做吗?由于团队成员的经验、技能等方面的差异,尽管项
8、目管理者自己亲自动手可能做得比其他成员好,但是如果项目管理者能够教会团队成员,就会发现:其他成员也可以做得一样好,甚至更好。也许今天项目管理者要耽误几个小时来教其他成员干活,但以
此文档下载收益归作者所有