在前面的文章中我提到,项目是临时性的,那么这就意味着项目是有开始和结束日期的。那么在一个SAP项目的生命周期里,到底要经历哪些阶段,每个阶段分别要完成什么样的任务,今天就在这里把这个话题讲清楚。
在讲之前,我在这里还是要先提一下项目管理的方法论,后面我会专门讲一下这个话题,这里先大概说一下。项目管理方法论主要有传统的瀑布模型(waterfull)和现代的敏捷方法论(Agile)两种。这两种方法论的主要区别是瀑布模型是按部就班的分阶段完成所有的任务;而敏捷推崇的是迭代,可以理解为小步快进的方式,让客户尽早参与和体验。
举个例子,美国的阿波罗登月计划是典型的瀑布模型,该计划由一系列严格定义的阶段组成,包括设计、测试、实施等,每个阶段都有明确的起始和结束点。而马斯克的SpaceX公司研发移民火星用的星舰(StarShip)的项目则是妥妥的敏捷方法论,这里最令人记忆深刻是今年11月18日的那次发射,虽然最终火箭发射失败了,但是SpaceX仍然取得了计划中的成果。因为他们的目标不是希望一次发射成功,而是通过多次发射和迭代,逐步完成星舰的设计。这样可以尽早发现一些潜在的问题,为了将来真正的使用做好准备。
讲了这么多,回归正题。SAP项目的方法论也经历了从瀑布模型(ASAP)到敏捷方法论(SAP Activate)的转型。我个人认为,考虑到SAP项目的复杂性,还有SAP项目的产出并不是一个产品,把SAP敏捷方法论(Activate)称为混合方法论(Hybrid)更合适一点。因为每个阶段中的任务还是一种瀑布模型的方式,差别体现在探索和实施阶段,不在要求把所有的蓝图规划好然后实施,而是先以用户故事(User Story)的方式收集用户需求,然后再实施阶段采用典型的迭代方式-冲刺来逐步把用户故事实现。
下面我就基于SAP Activate项目管理方法来分别讲述一下。
初始阶段(Discover)
本阶段的目的是进行可行性调研和评估、投资回报比计算等。在这个阶段,需要确定将来的S4HANA采用哪个版本、是本地部署还是云部署。这些任务基本上是些非常战略性的工作,项目经理需要与其他部门紧密配合,帮助公司高层和项目的指导委员会来完成这些评估和规划,以便为将来的项目打下坚实的基础。
准备阶段(Prepare)
本阶段的目的是为项目进行规划和准备。在这一阶段,将制定项目计划和预算、组建团队和定义职责、建立项目管理规范、整理和规划IT基础架构。此外,在项目的这一阶段还将搭建原型系统,以便尽早让用户熟悉系统环境和标准流程。
准备阶段的任务有:
o 确定项目目标和项目计划
o 建立项目标准、组织机构,并且确定跟踪和报告机制
o 确定项目团队的角色和职责
o 组织召开项目启动会
o 整理和规划IT基础架构,定义系统架构和接口方案
o 搭建原型系统环境
o 准备标准流程匹配(fit-to-standard)研讨会
探索阶段(Explore)
探索阶段的目的是在实施阶段所有的任务制定详细计划。计划应涵盖实施项目的所有方面,比如实施范围、测试、数据迁移方案、配置和扩展解决方案、用户培训需求等。在这个阶段有个重头戏-标准流程匹配研讨会,通过演示SAP最佳实践(Best Practice)和模型公司(Model Company)来比较需求和标准流程的差距,然后创建相应的用户故事(User Story)来确定实施范围。
探索阶段的任务有:
o 举办标准流程匹配研讨会、与用户确定实施范围
o 根据项目复杂程度,确定测试方案
o 根据数据迁移需求,确定数据迁移方案,制定数据准备计划
o 收集最终用户信息,收集培训需求并制定初步培训计划
o 准备开发和测试系统
实施阶段(Realize)
实施阶段顾名思义就是把在探索阶段收到的需求实施完成的阶段。在这个阶段,我们会非常频繁的使用敏捷项目的管理方式,首先,我们要分析用户故事,并且创建相应的RICEFW来确定相应的技术任务和工作量,然后把RICEFW划分到不同的冲刺(Sprint)里面,根据优先级和关联关系选择合适的RICEFW进行实施,另外还需要规划集成测试,数据迁移测试,关键用户培训等。这里提到的RICEFW(Report、Interface、Conversion、Enhancement、Forms、Workflow)是SAP技术工作分类的总称。
o 使用迭代的方式在开发环境中实现解决方案
o 在测试环境中对解决方案进行全面的端到端测试
o 数据准备和数据迁移测试
o 开展项目团队中的关键用户培训、准备最终用户培训文档
o 准备和测试上线计划(cut-over plan)
o 准备生产系统
部署阶段(Deploy)
在部署阶段是上线前后的关键阶段,在这个阶段里面,需要根据上线计划来执行验收测试(acceptance test, dress rehearsal),目的是模拟真实上线的各种步骤,确保上线成功。另外还需要进行最终用户培训,最终执行上线计划,上线后支持(hypercare support),经验总结(lessons learned)等。
o 执行验收测试
o 解决所有关键的未决问题,决定是否上线(Go/No-Go)
o 完成所有预定的最终用户培训
o 完成和执行上线计划,包括所有的技术步骤(比如传输配置)和非技术步骤(比如通过供应商和客户)
o 实施组织机构变更计划,往往流程的实施和整合会带来组织机构的职责和人员的变化
运行阶段(Run)
这个阶段也可以看作日常运营的一部分,所以可以根据实际情况进行取舍。主要的任务是监测流程运行情况,持续改进流程等。