如何构建混合型(预测+敏捷+DevOps)项目管理体系及实践案例(敏捷和混合项目管理)
混合型项目管理实践案例
瀑布、敏捷和DevOps等等管理方法各有优劣,很多公司在推进项目管理体系的时候,由于不同的环境选择的方法也各不相同,很多时候需要综合运用多种方法的实际上形成了混合型项目管理,今天为大家分享一个混合型项目管理实际案例,供大家借鉴参考。
某主题App业务介绍
1、产品
致力于为消费者提供精品原创的个性化手机主题、表盘、字体、壁纸、AOD、铃声、美化等业务,秉持“匠心设计,灵感点亮生活”的品牌理念,助力全球优秀设计师、艺术家、开发者等内容生产者的优质作品获得全球曝光及丰厚回报。
2、服务
能够为用户提供主题商店和主题内容管理服务、会员服务、造字服务、评论、社区和互动服务、活动及福利服务。
3、结构
从设计架构上看,该应用可分为服务器端(即云端)和客户端,其中客户端可装在手机、平板、车机等电子产品上。
某主题App项目所处的环境
1、外部环境(VUCA 乌卡):
Volatility(易变性):移动端用户欲望的变化,催生更多的需求变化;
Uncertainty(不确定性):市场环境、行业环境和顾客需求的不确定高;
Complexity(复杂性):项目面临的诸多条件间的相互关系导致的复杂性越来越高;
Ambiguity(模糊性):对现实的模糊,是各相关方误解的根源,各种条件和因果关系的混杂;
2、内部环境:
组织冲突:制定决策的管理者与受这些决策影响的人之间存在的组织冲突;
利益冲突:相关方因位置不同导致的利益不一致;
客户、合作方
角色:项目经理、SE(系统设计师)、开发、测试
VUCA环境下某主题App项目怎么做?
VUCA时代的不确定性和复杂性模型
不确定性和复杂性,导致不同的项目生命周期类型;
- 预测型:这是一种更为传统的方法,提前进行大量的计划工作, 然后一次性执行。【瀑布型、基建工程项目为例】;
- 迭代型:这种方法允许对未完成的工作进行反馈,从而改进和修改该工作。【软件开发、管理咨询】;
- 增量型:这种方法向客户提供各个已完成的,可能立即使用的可交付成果。【地产开发样板间】;
- 敏捷型:这种方法既有迭代,也有增量,便于完善工作,频繁交付。【软件开发、管理咨询】;
某主题App项目生命周期的选择
一、预测模式:
PMBOK指南(第六版/第七版)(PMI);
在项目生命周期的早期阶段确定项目范围、时间和成本;
二、敏捷模式:
敏捷实践指南(PMI-ACP);
需求范围在迭代开始之前就得到了定义、评估和批准;
三、DevOps模式:
《DevOps实践指南》;
基于精益原则、约束理论、丰田生产系统、学习型组织等知识体系的集大成者;
DevOps三步工作法:流动原则、反馈原则、持续学习与实验原则;
三张模式详解
1、预测模式(软件开发生命周期,也称为瀑布模式)
预测型生命周期:预计会从高确定性的明确的需求、稳定的团队和低风险中获益。因此项目活动通常以顺序方式执行,如下图:
2、敏捷模式
1)迭代型生命周期
迭代型生命周期通过连续的原型或概念验证来改进产品或成果。每一个新的原型都能带来新的相关方新的反馈和团队见解。然后,团队在下一周期重复一个或多个项目活动,在其中纳入新的信息。迭代有利于识别和减少项目的不确定性。
2)增量型生命周期
有些项目优化是为了加快交付速度。许多企业和项目无法等待所有的事情全部完成;这种情况下,客户愿意接受整个解决方案的一个部分。这种少量可交付成果的频繁交付称为增量型生命周期。
3)敏捷型生命周期
3.1 基于迭代的敏捷
团队以迭代(相等持续时间的时间盒)形式交付完整的功能。
3.2 基于流程的敏捷
团队根据自身能力,从待办事项列表中提取若干功能开始工作,而不是按照基于迭代的进度计划开始工作。
基于迭代和基于流程的敏捷生命周期
3.3 敏捷方式
以最小可行性产品,交付给客户,不断的得到客户的反馈, 不停的迭代,改进,完善,最终交付客户的满意成果
什么是敏捷?
一句话概括敏捷:敏捷就是“以人为本→化繁为简→快速迭代→持续交付价值”的过程。
2001年,软件行业思想领袖共同发表《敏捷宣言》,正 式宣告敏捷开发运动的开始。
2018年,项目管理协会(PMI )和敏捷联盟携手发布 《敏捷实践指南》,敏捷方法的应用逐渐从软件行业向各行业扩展。
敏捷宣言、价值观、原则和通用实践之间的关系
敏捷典型实践–Scrum,咱们以前分享过很多可以查阅:
图解通俗易懂Scrum敏捷项目管理精华
图解Scrum敏捷项目管理知识地图【附知识地图下载链接】
Scrum 敏捷项目管理精华PPT【文末可编辑PPT下载】
一图掌握Scrum敏捷项目管理方法
DevOps模式是什么?
DevOps概念模型
通过开发(Dev)、IT运维(Ops)和质量保证(QA)的沟通和和协同,使得构建、测试、发布软件能够更加的敏捷、频繁和可靠;
DevOps显著特征:
1、必须拥有共同的目标;
2、打通用户、PMO、需求、设计、开发(Dev)、测试、运维(Ops)等各上下游部门或不同角色;
3、打通业务、架构、代码、测试、部署、监控、安全、性能等各领域工具链;
关于DevOps咱们也分享过很多相关内容,供大家参考:
终于有人把DevOps讲明白了
TOP30个DevOps面试问题及如何解答?
学了敏捷,但你还不知道DevOps,就Out了【管理有度5】
DevOps如何帮助PM构建数字化的项目管理?
图解DevOps流程体系全景图–构建敏捷 持续交付的体系平台
一文全面精通DevOps
如何构建基于瀑布、敏捷和DevOps混合模式项目管理框架?
为什么可以在某主题App项目中运用”预测 敏捷 DevOps“方法?
- 乌卡时代,该App开发需求不确定性和复杂程度增加,交付周期变短,需要快速做出反应,应对变化。
- 该App项目具备使用敏捷方法的基本条件,可以提高开发团队的工作效率。
- 该App项目具备使用DevOps方法的技术条件,如架构解耦,系统支持拆分为可DevOps的单元,有微服务管理平台支持,平台服务支持和工具链支持等。
基于“瀑布”、“敏捷”和”DevOps”模式,以客户(HW)的软件工程能力为支撑,应用混合(也可称为集成)开发生命周期,具体来说就是端到端的项目管理实施框架。
实施框架:融合预测-敏捷-DevOps
该框架是以版本(基线或补丁)为最小可实施单元(DevOps单元),分为持续规划、持续开发、持续部署发布、持续运维、持续反馈等5个阶段,每个阶段的主要关键活动和工具如下:
全价值流中敏捷理念、工具和技术的应用:
端到端全流程的敏捷DevOps
1215敏捷项目管理模型:1个铁三角,2个端到端交付环,15个实践;
端到端DevOps框架可以有效实施的前提条件如下:
1、架构解耦,最小可行产品是敏捷的保障;
2、系统拆分为颗粒度合适的可DevOps的单元,是架构支持DevOps的基础;
3、全面支持应用的一站式微服务管理平台;
4、面向云服务/微服务的架构,向敏捷/DevOps全功能团队转型;
5、重塑角色设置,实现快速自我决策;
6、软件分层、专业聚焦,平台化,避免小团队全栈能力构建,使能DevOps ;
7、支持服务/微服务DevOps的工具链及环境;
8、工具:自动化运维-基于数据分析的全方位故障监控;
01
架构解耦,最小可行产品是敏捷的保障;
1)架构与系统解耦,做到组件化,乃至微服务化:
实现松耦合,可并行开发、构建、测试、部署、运行的最小可运行产品/特性。
2)需求分解的原则:
需求分解遵循小步快跑,同一个特性可以由多个迭代Story逐步演进,从简单 可用、到功能完善。
由横向分层的大系统 ->纵向解耦的小系统演进 / 各个微服务/特性,可由独立团队并行开发交付。
02
系统拆分为颗粒度合适的可DevOps的单元,是架构支持DevOps的基础;
◼ 尽量垂直划分服务;
◼ 比较独立的新业务优先采用微服务架构;
◼ 优先抽象通用服务;
◼ 优先抽象比较容易识别的,边界比较明显的服务;
◼ 优先抽象核心服务;
◼ 采用绞杀者模式。
03
全面支持应用的一站式微服务管理平台;
04
面向云服务/微服务的架构,向敏捷/DevOps全功能团队转型;
对特性/部件/服务,完整的实施规划/需求/设计/开发/测试并独立部署、交付、运维(DevOps场景)的项目型团队。
05
重塑角色设置,实现快速自我决策;
由“集团军作战”转变为“班长的战争”,按照特性/微服务组建<10人的全功能团队,“Two Pizza团队“,实现业务快速开发、决策与上线。
06
软件分层、专业聚焦,平台化,避免小团队全栈能力构建,使能DevOps ;
充分使用云基础设施和平台服务(IaaS/PaaS),基于IaaS/PaaS动态分配资源。
分工细化,专业团队提供专业云服务;
自治云服务承载架构复杂度;
07
支持服务/微服务DevOps的工具链及环境;
支持微服务DevOps独立并行开发、测试,经过Gamma类生产环境验证,实现灰度发布和频繁快速上线,并持续反馈与演进。
08
工具:自动化运维-基于数据分析的全方位故障监控;
系统能够自动化部署、升级和扩缩容,支持自动化监控、告警、故障的定界定位和故障自愈。
业务/服务的颗粒度更小,交付部署更频繁迫切需要增强对服务、服务所部署的软硬件环境的全方位监控、评估能力;构建针对各类日志、KPI数据、告警事件等的数据采集分析平台。
某App开发项目的混合敏捷管理实践方案
1、持续交付:持续交付核心实践
2、持续交付:DevCloud实践,每日持续交付流水线
解读:
1. 每天晚11:00,由流水线触发,从每个服务的代码仓库Release分支获取代码。进行静态检查、下载代码、编译构建、归档发布。
2. 每天凌晨0:00,触发自动部署。流水线调用部署服务实现版本包的自动化部署。
3. 每天凌晨3:00,触发自动化RF接口测试。
流水线的质量控制
• 源码版本控制
• 分支策略
• 静态扫描
• > 80% 代码覆盖率
• 漏洞扫描
• 开源扫描
• 制品版本控制
• 自动化环境准备
• 不可变的服务器
• 集成测试
• 性能测试
• 每次提交触发自动化构建、部署、测试
• 自动变更单
• 低风险发布
• 特性开关
3、持续反馈:灰度发布策略驱动自动化部署与回滚
一键回滚;在线验收测试;A/B测试;重要新特性友好用户先体验;
4、持续反馈:灰度发布,友好/公测完备流程,产品、运营、运维配合
5、持续反馈:VoC 驱动,持续规划,数据分析,动态调整,有错就改
PS:VoC : Voice of Customer 客户声音
项目实践全景
PMO前沿《一杯咖啡谈项目》专栏
特约作者介绍:张永彬,PMP/PMI-ACP,项目管理专业硕士,某软件科技集团公司质量部总监;15 年消费电子和IT软件两大行业工程实践者,现代项目管理方法的践行者和推广者。