3.1 项目管理在没有建立软件过程管理的软件开发组织中,主要的管理手段是实施项目管理,项目管理的好坏是项目成功的关键。项目的生命周期分为识别需求、提出解决方案、执行项目和结束项目四个阶段。识别项目的需求和界定项目的范围是建立项目计划的关键 项目计划实施过程中必须强调反馈和控制,跟踪项目的需求源,对项目需求的变化进行控制 同时,项目经理一定要向客户强调一点,项目成功不是开发方努力就可以了,它必须要有客户的紧密合作,把需求的不确定因素纳入项目管理的全过程中。项目管理者联盟
3.2 文档化与顾客有关的过程club.mypm.net
在“GB/T 19001—2000质量管理体系要求”7.2节中要求确定“与顾客有关的过程”,并就“与产品有关的要求的确定”、“与产品有关的要求的评审”和“顾客沟通”作出了具体的规定。在软件能力成熟度模型CMM中指出“需求管理的目的是在顾客和软件项目之间建立对将由该软件项目处理的顾客需求的共同理解,与顾客的约定是策划和管理软件项目的基础”。需求管理是CMM2级(可重复级)的关键过程域之一,其主要工作包括两点:其一,通过与顾客的交流来获取需求,并进行有效的组织和记录;其二,使顾客和项目团队在系统变更需求上达成一致。因此,对与顾客关系的控制依靠遵循有效的变更控制过程,并将其用文档化的程序加以规定,用过程的方法将软件需求过程加以管理,使其成为“可重复的”过程,把需求的不确定因素纳入过程管理之中需求变更的控制,必须明确部门与人员的职责和控制流程,图1给出了一种需求变更的控制流程图,根据控制流程图编写出文档化控制程序。项目管理培训
3.3 UM 开发方法新方法的代表项目管理者联盟
Martin Fowler在“新方法论”中提出需求是不可预期的,真正的软件需求的获取,通常要等软件出来后才会更清楚,因此好的方法应能适应需求的变化。为此,近几年软件专家们陆续推出了一些新的方法,特别引人注目的是“轻载(Jjght Weight)”方法和过程,它们是相对于“重载(HeaW Weight”方法(如ISO一9O0O,CMM,SPICE)而提出的。目前提出的较出名的轻载方法有eXtren~:Programming,Pair Programnnng,SCRUM等。club.mypm.net
SCRUM方法提出“编制更软的软件”,避免软件需求不确定性是不可能的,因此没有必要事先描述清楚充分的需求。SCRUM方法提供技术来解决这些问题。training.mypm.net
这些技术基于复杂的管理概念,即自组织、经验过程管理和知识创新。因此在这个意义上。SCRUM不仅是“迭代的和增量的”开发方法,而且是一种“适应性的”软件开发方法。项目管理者联盟
SCRUM开发方法的模式相对于现存的组织模式语言作为一种扩展模式语言出现。在虽近的几年中,SCRUM开发方法作为一种获得软件开发超高生产率的有效方法迅速地得到了承认。SCRUM 的目标是在一个系列(3~8个确定的时间段)内交付出尽可能优质的软件,这里一个“确定的时间段”称为一次短跑(s耐tit),典型的一次短跑持续约一个月。开发周期的每一阶段(需求、分析、设计、演化和生产)现在被填A到短跑或短跑的系列中。比如说,需求阶段,一个原型的交付,可以用一次短跑。分析和设计阶段可以分别用一次短跑。然而演化阶段无论如何都要用3到5次短跑。与GMM中可重复和已定义过程的方法相反,在SCRUM中一次短跑是没有预先确定的过程的。取而代之的是,SCRUM会议促使所分派任务的完成。项目管理者联盟
SCRUM方法的四个要素是:任务库、团队、短跑、SCRUM会议 将初始获取的需求,确定其优先级,定义为工作项,加A任务库。通过SCRUM会议给团队成员分配任务库中的工作项,每一次短跑实现这些所分配的工作项。作为一条规则,在一次短跑中不能从外界加A更多的项目。一次短跑的目标是完成尽可能优质的软件。在一次短跑中,每天都召开SCRUM会议来决定1) 自上次SCRUM会议以来已完成了什么项目。项目管理者联盟
2)在已发现的事件或障碍中哪些是需要解决、排除的(SCRuM主管扮演团队领导的角色负责排除障碍)。项目管理者联盟
3)在下一次SCRUM会议之前什么新任务值得团队去完成。bbs.mypm.net
在每一次短跑的末尾,有一次演示(D~mo)来:项目管理者联盟
1)向客户展示开发者正在做什么(客户参与);项目管理者联盟
2)给开发人员一种成就感(成功补偿);项目管理者联盟
3)整台、测试已完成软件的合适部分(QA参与);www.mypm.net
4)确保真正的改进并使任务库缩小。pmp.mypm.net
收集用户新的需求或变更,并为剩余的和新的任务重新确定优先权限后,就组成了新的任务库,新的一次短跑就开始了。显然,SCRUM方法建立我们采用更软性的方法来构建软件。我们应该认识到要提前描述清楚充分的需求或确定背景和环境是不可能的。需求是在背景中明确的,我们的系统改变着背景,新的问题出现在系统和新的背景中。
3.4 软件需求管理工具在采用软件过程管理、新的软件开发方法的同时采用需求管理工具,可以提高需求管理工作流程的自动化程度,使需求管理可以在项目实施过程中得到有效的推行。项目管理软件可供选择的范围还是比较大的,比如,CA公司的CA—Super Pmj~t、Proj~t Software&Development公司的Qwlknet PIDfesslonal和Rational公司的。~mlystStudio需求工作包等。Rational公司的Aria—lystStudio需求工作包可以在整个项目生命周期内,帮助团队的有效地协作,将需求的变更信息及时传送到团队的每一个成员,可以使跨项目团队的所有成员都能掌握必要的需求详细信息,并对软件项目规划、软件项目跟踪与监督实施管理。它具有以下主要特点:pmp.mypm.net
(1)采用RUP(Rational Unitled Process)方法,提供完整的需求分析及管理流程。www.mypm.net
(2)以Web方式获取反馈,加强团队之间的有效沟通。bbs.mypm.net
(3)用追踪图直观展现需求变化带来的影响。项目管理者联盟
现在。不少软件开发组织认识到软件需求管理的重要性,采用购买或自行研制的方式采用需求管理或项目管理的工具。这是我国软件产业发展中的一个可喜现象。项目管理者联盟
4 结论PgMp.mypm.net
软件开发组织的项目管理者应充分认识软件需求不确定性的事实,根据实际情况采取相应的对策是十分必要的。特别是在把进行项目开发转向产品开发,把企业做大做强的背景下。把握软件需求不确定性的认识尤其重要。一次性开发成功一个软件产品几乎是不可能的。尤其在市场竞争激烈的今天 一个软件产品从商业的角度是尽快打向市场,但要被用户认可,真正占领市场,必须不断地从用户的反馈中持续改进,此时sURCM方法是可以采用的轻载方法。项目管理培训 项目管理者联盟
|