以知识为核心的ALM之规划和执行管理篇

近期,在一项针对部分中国企业的软件项目管理需求研究中,我们发现,软件开发项目管理存在着一系列问题,其中有相当一部分集中在项 目规划和执行环节。有很多企业指出,目前他们采用的项目管理工具虽然能出色地规划项目,但与软件实际开发过程脱节,导致管理人员无法跟踪项目进度,更严重 的会致使项目完全失控。在项目执行过程中,企业也同样遭遇到种种问题,如缺乏透明度、监督乏力、合作困难、效率不高、质量无法保障、难以为将来提供决策依 据等。

项目规划决定了团队是否能在预算内按时交付高质量软件。同时,企业更需要将项目规划与项目实施紧密关联,以满足不同级别的管理需求。 企业主管希望对项目进行宏观的透明化管理;高层管理者需要全面精确的项目报告;项目经理必须动态监控项目底层的任务进展情况。

集成的项目规划和执行管理解决方案

TechExcel通过在ALM领域多年的经验发现,使软件设计团队与开发团队高效配合的最好方法,就是将产品设计规划与产品实际开 发的过程相集成(如图1所示)。

通过这种集成的解决方案,一方面使得项目规划有效地指导项目执行;另一方面,项目执行的信息将反馈到项目规划系统中,这会为企业带来 一系列好处: 通过项目规划界面,项目经理和项目组长可以完全透视任务级的开发进程;可高效管理每一个开发细节(如各种功能、缺陷和其他任务)的进展;可评估任务的完成 情况,自动反馈到项目规划工具中,对可能发生延迟的项目自动预警;支持传统的瀑布开发,同样适用于敏捷开发等其他多种开发模式;通过完整的知识库,实时共 享产品功能说明书、需求分析等文档;整合会议邀请和事件管理,使智能化资源规划和分配更加有效;管理人员可设置任务工作流,查看历史记录等。

由此可见,集成的规划和执行管理方法是企业真正需要的解决方案,它不仅要提供完整的项目规划,还需要整合任务跟踪和知识管理,确保在项目执行前形成概念产 品和必要的资源配置,从而有效控制项目成本、时间和质量。项目经理和设计人员负责确定产品结构和项目规划;而开发和测试工程师则根据既定的设计规范、时间 安排、里程碑日期和团队资源,完成项目具体实施。

SpecDD中的项目规划和执行管理

SpecDD(Specification Driven Development )是TechExcel提出的概念性框架。它通过规范点 (Specification,简称Spec) 这个基本单元的组合,让所有设计得以完整表达,并通过中央知识库与整个团队有效共享,使Spec成为贯穿ALM各阶段的要素,从而驱动整个开发流程。

在SpecDD框架中,通过需求分析形成“概念产品”, 开发团队以此为依据实现“实际产品”。一个好的“概念产品”要系统地表达完整设计,通过设计来指导和驱动所有的规划、编码和测试活动,使它们都围绕 Spec的结构和条目进行。Spec成为联系项目规划和项目执行这两个环节的线索。

同时,SpecDD使得项目团队可以根据自身需求定义任务的颗粒度。Spec是高度结构化的,表现为其树形结构准确对应产品/版本功 能树,每个功能都对应分支上的树叶。这保证了项目团队针对自身需求决定任务的颗粒度,对任务进行有效的度量和评估。

项目规划和执行的核心要素

项目规划和执行管理的核心,是要在完整的项目规划的基础上,全面跟踪和管理所有开发任务,促进不同开发成员、小组乃至客户间的密切合 作和沟通。

基于知识管理的项目计划控制

项目规划阶段需要借助历史数据对任务进行合理估计。以知识为核心的ALM使经验数据的积累成为可能。知识条目与项目规划中的子项 目和执行过程中的任务关联,能够传递给相关的项目成员。项目经理和开发测试经理/组长以知识库中相似或同类型的历史数据为参考,有助于准确地估计项目以及 各个任务所需要花费的时间和人力资源,以及完成质量。

在项目规划工具中,随着时间的推移,某一类型任务的平均时间将会得到统计,作为制定项目计划的依据。项目数量不断增加,企业就有 海量的数据参考,从而使得宏观层面的项目控制更加有效,对企业项目规划管理能力的提升有深远意义。

工作流程和流程自动化

工作流程的可视化和自定义是高端项目执行管理软件必不可少的部分。一个工作任务在任何时刻都将只有唯一的负责人、状态和到期时 间;流程中的每一个状态、状态转变以及合适的转变执行者都能被设定,以此确保每一个研发任务从提交到最终解决的生命周期严格符合业务流程。此外,直观的图 形界面(如图2所示)使用户可以通过拖拽的方式,轻松快捷地创建工作流,并随着项目的推进进行适时调整。

除了可定制的工作流,流程自动化也是软件开发管理所需要的。例如,自动任务分配功能基于事先设置的规则,综合评定项目成员当前的 工作量和业务水平,确保每个任务都分配给最合适的人去解决,实现“人尽其责、人尽其能”。任务的负责人可以是某一个项目成员或某一类用户角色,在不确定负 责人的情况下,还能分配给小组文件夹,并由小组内部审核后进行二次分配。

权限管理

软件项目的人员管理可以分为两大类:用户角色和用户小组(如图3所示)。一方面,根据项目成员所发挥的作用,为他们设置一种用户 角色,如项目经理、软件架构师、程序员等;另一方面,根据工作分工,设立若干用户小组,如设计小组、测试小组和开发小组等,并划分项目成员。同一小组的成 员在项目中拥有部分相同的责任,使用分组,可以有效地整合团队资源。

各个用户角色具有不同的权限,能获得的信息量也是不同的。以页面和字段的权限管理为例,主要可分为三种级别:隐藏、只读和可修 改。每个页面和字段都能进行针对性的权限管理。例如,公司总经理能浏览所有页面,开发人员不能修改Bug的描述字段,实习生只能看到部分页面和字段等。另 外,工作流对任务操作也能设定权限管理。例如,可以规定只有项目经理才能关闭严重程度最高的Bug修复任务等。

可定义的内置报表分析

项目的执行人员往往需要将繁杂的数据以清晰简明的报表格式呈现给管理团队,帮助他们全面了解项目进展和各种资源分配,为项目规划 的执行评估和调整提供重要依据,并及时识别和规避风险。

报表种类方面,既要有任务和人员工作量等方面的数据报表,还要有反映任务分布与呈现趋势、解决时间和开销等指标的图形报表。诸如 任务搜索以及团队成员与状态信息的过滤器等功能,将动态显示不同目的和风格的报表。同时,工具还应提供自定义报表,以满足企业的特殊需求。另外,如果报表 能够被自动导出成Excel文件,或者生成可以直接查看的链接,企业高层就可以更直接获得项目情况,而不必登陆系统,减少了项目管理人员的工作量。

易用性和扩展性

优秀的软件项目规划和执行管理解决方案不仅要具有强大的功能,还需有很强的易用性和扩展性。公司在近期的调研中也发现,约有 61%的被调研企业认为,易用性和可扩展性是决定他们购买的重要因素。

首先,直观灵活的用户界面很有必要,将帮助开发和测试人员快学快用。其次,需要有多种自定义的操作,让用户通过点击就能设定各类 描述字段的名称、内容以及字段间的逻辑关系,以及定义个性化页面,而无需编程、写脚本或使用宏。此外,业务规则和工作流程更可通过直观的图形化界面实现。 用户可轻松查看、编辑或者查询大量数据,并能很容易地理解数据之间复杂的关系,再也不必耗费精力考虑如何获得信息、遵循何种业务流程。灵活的配置和稳定性 将使产品适用于不同团队规模和环境的企业;与第三方软件的集成更可为扩展性锦上添花。