1、1供用电管理系统开发中的项目管理研究【摘 要】本文分析了油田电力数据管理软件开发时用户需求的不确定性和易变性,以 Scrum 方法为指导,以 Scrum 方法为指导,提出了持续交付开发成果和持续改进系统设计的项目开发思路,有效规避项目风险,并提高软件质量。 【关键词】软件项目 敏捷方法 迭代开发 持续改进 1.引言 随着信息化大潮的到来,越来越多的管理工作都走向了信息化,针对油田公司的供用电管理,也急需一套管理信息系统的支持。 油田公司每年电力消耗近 20 亿千瓦时,用电能效对公司利润影响巨大。电力管理部门负责整个公司的供用电管理业务,需要广泛采集各采油厂的用电数据,并进行统计、分析和挖掘,为
2、决策提供科学、准确的依据。然而,目前我公司的管理工作仍由人工完成,效率低下,难以采集基础用电数据,也难以获得具有时效性的统计报表。为此,与西安工业大学电力 MIS 研究所合作,联合开发油田公司的供用电管理系统。 在系统立项后,遵循软件工程的思想,采用结构化方法进行分析和设计,各项工作有条不紊的向前推进。但很快发现,这种方法存在一系列问题:首先是项目需求不清,软件使用者根本不清楚需要一套什么样的系统,很多用户都提出要先拿出一套系统,看了之后才能提意见;其次是开发进度难以控制,开发中用户不断提出新的需求,已确定的需求2又不断的调整,始终不能确定项目工期;最后是项目质量难以控制,很多时候需求的变动会
3、导致数据库结构的调整,这样解决了一个问题,可能会导致引入一系列问题,项目陷入了变化的泥潭。 可以看出,项目陷入困境的根本原因在于需求的不确定性,传统的方法难以适应这种变化,近些年出现的敏捷方法为我们提供了新的思路。2.敏捷开发和 Scrum 方法 传统的软件项目开发遵循“瀑布模型” ,该模型的基本思想是:将软件生命周期划分为制定计划、需求分析、概要设计、详细设计、编码测试以及运行维护护等六个阶段,并且规定它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。瀑布模型基于严格的“里程碑”划分,每个阶段结束时都要经过评审,并生成相应文档,后一阶段必须建立在前一阶段文档的基础上。 敏捷方法是一种
4、迭代、渐进的开发方法,经常使用反馈进行思考、反省和总结,不停地进行自我调整和完善。敏捷方法的核心价值是:个人交互优先于过程和工具;可用的软件优先于全面的文档;顾客协作优先于合同协商;对变更的影响优先于计划的遵循。 Scrum 是目前应用最广泛的一种敏捷方法,该名称来源于英式橄榄球比赛中的争球,强调通过集体的行动,奋力实现同一目标。Scrum 方法认为软件开发类似于新产品的研发,过程中需要研究、创意和尝试错误,没有一种固定的规程可以保证项目成功,所以团队要围绕目标,紧密协作,以高度弹性解决各种挑战,确保每天、每个阶段都向目标推进。 3Scrum 的过程框架如图 1 所示:完整的开发任务被分解为若
5、干个短的迭代周期,称为 Sprint,每个 Sprint 的工期建议为 2 到 4 周;团队使用Product Backlog 来管理需求,并按商业价值对需求进行排序;每次迭代开始,团队挑选最高优先级的需求作为该 Sprint 的目标,协作完成该目标,并递交有价值的产品增量;在一个 Sprint 内,每天又是一个小的迭代,检查每个成员的进度与计划,了解开发中的困难并及时解决问题。 3.Scrum 方法在供用电管理项目中的应用 3.1 构建团队 为了保证供用电管理项目的顺利实施,根据 Scrum 团队的配置要求,为该项目配置了一个 9 人的团队,结构如下: (1)产品负责人:由甲方的一名主管领导
6、担任,对项目总体负责,协调双方的关系及有效沟通,保证团队的高效工作,并定期组织项目评审工作。同时也负责项目的需求和总体设计工作。 (2)scrum master:乙方的技术负责人,负责团队的开发工作。他要主持召开 sprint 会议,划分产品工作任务并,控制软件开发进度,设计软件总体结构,解决团队成员在开发中遇到的问题,保证 sprint 计划的顺利实施。 (3)团队成员:由 3 名软件开发人员及 1 名测试人员组成,接受项目负责人分派的任务,完成目标系统的开发与测试工作。 (4)用户方团队:代表软件的使用者,由 3 名对供用电管理业务比较熟悉的甲方人员构成,与乙方讨论系统需求,协商需求变更,
7、并在每个 sprint 结束时参加评审会议,测试产品的功能是否符合需求。 43.2 迭代开发 Scrum 方法将整个软件交付过程分成多个迭代周期,帮助团队更好地应对变更和风险,实现增量交付、快速反馈。 供用电管理系统的项目开发分为 6 个迭代进行,如图 2 所示: Sprint1:设计软件的基础结构,包括软件架构、功能模块结构、界面及导航结构、用户注册与登录、用户访问控制等,该阶段结束时能看到软件的总体运行效果,但没有实现具体功能。 Sprint2:设计供电管理模块,实现了基层供电电源点管理、计量点管理、计量点费率管理、计量点用电量及电费管理等功能。 Sprint3:设计用电管理模块,实现了基
8、层用电计量点管理、计量点费率管理、计量点用电量及电费管理等功能。 Sprint4:设计查询审批模块,实现油田总部对各采油厂供、用电计量点、计量点费率、计量点用电量及电费等信息的查询和审批功能。 Sprint5:设计报表分析模块,根据基层录入的供用电原始数据,统计并生成基层数据报表,并根据基层报表统计生成油田公司使用的各类数据报表。 Sprint6:系统精化设计,对前面 5 个 Sprint 中遗留的问题进行持续改进,增加了数据导入导出功能,并优化了几个常用报表的算法。 3.3 过程控制 从图 2 可以看出,Scrum 方法符合戴明环持续改进的理论,引导软件开发过程朝着正确的方向发展。 每个 S
9、print 被划分成 4 个阶段,如下: 5计划:每个 Sprint 初期要召开计划会议,确定该阶段要完成的任务,标注任务的优先级并分配给每个成员; 开发:在 Sprint 周期内,每天要召开开发人员会议,汇报前一天的工作内容及存在问题,说明当天的工作任务,对出现的问题由 Scrum Master 协调解决; 评审:在 Sprint 结束时将产生阶段性的成果,这时召开评审会议,由产品负责人、用户方团队及 Scrum Master 参加,观看成果的演示,提出问题和改进方法; 回顾:在 Sprint 评审后,开发组要召开 Sprint 回顾会议,对发现的问题进行说明和总结,指导后续开发。 另外,在
10、前面 5 个 Sprint 结束时,系统的基本功能已经实现,通过最后一个 Sprint 对系统进行优化和重构,完成了总体开发过程的持续改进。 4.结论 软件项目最大的风险在于需求变动,延长油田供用电管理系统项目存在明显的需求不确定及易变的特性,采用传统的项目管理方法很难适应这种变化,为此,必须引入敏捷方法。本文以 Scrum 方法为指导,合理的构建开发团队,以迭代的方式持续交付开发成果,以戴明环理论持续改进系统设计,很好的适应了需求的变动,有效规避了项目风险,缩短了工期,并提高了软件质量。 参考文献: 1刘勇,唐东平.中小型软件企业的软件项目管理过程研究.科技管6理研究.2006(9) 2高歌,王天勇.敏捷项目管理及实施方案研究.项目管理技术.2006(11) 3杨根兴,金荣得.软件需求的不确定性与解决途径.计算机应用与软件.2002(4) (作者单位:西安石油大学;陕西 西安 710065)