美文网首页
DEC培训Day-1:导论和精益敏捷

DEC培训Day-1:导论和精益敏捷

作者: MisterCH | 来源:发表于2020-10-09 18:06 被阅读0次

    2020年9月18日 DEC培训

    一、Devops导论(董越)

    概述

    软件工程

    核心思想:工程化。
    为了解决软件危机,用工程化方法开发软件。要有严格的计划和周期。

    敏捷——>精益:消除各种浪费

    精益:定义工作目标,定义价值,识别价值流,流动,拉动,尽善尽美。

    将关注点从自身转移到客户,关注价值流。

    持续集成

    • 为了避免独自前进太远
    • 频繁测试,验证质量

    通常狭义、不涉及SIT、UAT等

    持续交付

    软件可随时发布上线,交付测试。
    持续交付是一种能力,能够让给各类变更(如新特性、配置变更、缺陷修复、尝试性内容等)以安全、快速、可持续的方式交付到生产环境或用户手上

    架构和技术方面

    结构化变成——>面向对象变成——>软件复用
    实体机——>虚拟机——>容器——>函数服务
    微服务、云原生
    思路:尽量做到复用

    DevOps诞生

    原因:软件交付的形式的巨大变化:本地安装——>在线服务
    部门墙:Dev团队与Ops团队
    DevOps的目的是期待更顺畅的协作:Dev、QA、Ops
    是“法”的维度

    广义的DevOps

    将Devops在本时代下的实践整合在一起
    DevOps = 精益敏捷 + 持续交付 + 容器化 + 微服务
    DevOps = Dev + QA + Sec + Ops
    DevOps = 软件开发交付运营的最佳实践

    DevOps的优化目标

    产品定义侧

    • CEO、产品经理
    • 设计产品,探索和发现有用价值
    • 多尝试,尽快反馈,迅速调整

    产品实现侧

    • 开发、测试、运维、安全
    • 提供产品和服务,落地实现价值

    ——>在具体场景下的多快好省:更高产能、更快响应速度、适当的质量、合理的成本

    不是所有项目都适合DevOps

    DevOps的十个核心策略

    细粒度低耦合

    不仅仅是软件架构,也适用于组织架构
    组织架构的考量:全栈团队更快速
    集中办公的效率?

    工具、环境、方法的优化,可以扩张团队的职能,让团队提高自服务的能力

    小批量持续流动

    瀑布——>Scrum——>以特性为颗粒度的交付(不再赶发布火车)
    需求拆分
    限制在制品数量
    持续集成、持续交付
    去掉发布窗口

    综合手段保证质量和安全

    扩展测试的定义
    各阶段的综合保证:综合考虑测试的性质放在合适的位置
    “便宜”的测试,尽量左移
    "贵"的测试,进行右移

    自动化与自助化

    自动化好处:省时间、省成本、可重复、完备记录
    单个活动的自动化+流程的自动化
    自动化——>自助化
    工具的稳定性

    加速各项活动

    硬件能力
    并行
    避免重复
    只关注增量
    缓存

    关注各个过程活动中的加速

    及时修复

    涵盖范围:测试阶段、发布后
    如何实现:及时通知、优先处置、修不如退、便捷排查

    完备记录、充分展现

    自动化不仅仅关注往前推动,还关注记录

    • 工作项、sprint backlog、看板墙
    • 流水线相关信息展现
    • 版本控制&制品管理
    • 对外来资产的管理
    • 权限管理策略
      • 组织内开源有利于协作
    • 数据备份

    保持一致性

    内容涵盖:可重复性、标准化、组织级统一、运行环境一致性
    实现方法:规范化、内化到工具、版本控制、代码化
    有章可循的适度灵活
    配置参数两类

    • 随着系统演化的升级:类似源码的管理方法
    • 对于每个具体环境的改变的变化:采用别的管理方式

    协调完成整体功能

    架构层面:接口定义、接口管理、兼容性
    管理层面:SoS、SAFe、LeSS、DAD
    工程层面:特性涉及多个部署单元的改动、集成、发布涉及多个部署单元、完整性、顺序、摘除与回退

    基于度量的持续改进

    组织结构与文化

    1.1 关键思路:自主性

    • 沟通、协调需要精力
    • 协作带来排队和等待

    特性团队:长期的、具备交付价值所需的各种角色的、可以协同完成完整用户价值交付的团队

    1.2 各职能之间的协作

    • 每个团队都尽量是全功能的团队
    • 工具&环境团队
    • 方法&流程团队
    • 其他情况

    1.3 负责不同开发内容的团队的划分

    长期团队
    独立完成特性代码改动
    运用康威定律:通过组织的改进,来推动产品的改进
    有负责公共品的团队
    层级:还是需要部分划分来进行层级管理
    其他情况

    1.4 团队规模

    两个披萨原则:5-9人合适
    自主 和 专注

    DevOps文化

    设置共同目标
    尊重和信任
    及时和充分的沟通
    聚焦于解决问题并改进机制
    鼓励学习和探索
    其他

    二、精益敏捷(丁晓娇)

    基础

    参考书

    • 《精益思想》
    • 《看板方法》
    • 《Scrum敏捷软件开发》

    五大原则:定义价值,识别价值流,流动,拉动,尽善尽美。

    拉动:让客户按需求去拉动,而不是硬推给客户不想要的;只有被客户和下游拉动时,价值才流动

    流动:从按“部门”和“批量”转化为“生产团队”和“连续流”

    价值流中的浪费:

    1. 部分完成的工作(未被集成的代码)
    2. 额外过程
    3. 额外特性:最大化的做当下的需求,不要考虑额外的工作
    4. 任务调换:任务调整、切换时候的浪费
    5. 移动:针对强矩阵组织,打破部门墙。不需要协调资源去做事情。
    6. 缺陷:提前发现问题,成本可降低
    7. 等待:等待开发、等待测试、等待部署,都需要透明化,想办法去消除等待
    8. 管理活动:尽量自主去解决问题

    为什么要精益敏捷开发
    做到多快好省。通过强调价值、流动和人员,就可以提高质量,降低成本,加快交付速度

    敏捷研发模型

    Scrum:透明化、检查反馈、持续改进

    长期:向团队同步价值、确定使命和目标
    中期:制定需求和版本中期规划
    迭代前:需求准备,优先级
    迭代中:需求池、每日站会时间把握、暴露问题、sprint review还是需要的
    两周一回顾
    3355:3个角色、3个工件、5个活动、5个价值观

    五大常见实践:

    • 测试驱动开发
    • 集体所有权:针对代码,所有人员可以看到整个工程的代码
      • 风险和效能的权衡
    • 持续集成
    • 重构:优雅性的提升,每个迭代要解决部分技术债问题
    • 结对编程:code review的进一步

    看板方法

    一种基于精益思想的软件开发方法,其五大实践:

    • 透明化
    • 规则显示化
    • 限制在制品
    • 管理流动
    • 建立反馈,持续改进
    透明化

    针对不同公司、不同场景组织架构下,浪费的活动定义不一样
    价值活动:需求分析、编码、……、部署
    I型浪费:

    1. TO C场景下的编写文档
    2. 跨团队沟通
    3. 系统间联调

    II型浪费:

    1. 协调团队排期
    2. 部署申请
    限制在制品的价值、原则和方法

    什么是在制品
    又称WIP,“进行中”能交付客户价值的工作,包括待开发的需求,未被集成的代码,未测试的代码,未部署的制品等。

    为什么?

    • 精益思想之流动:小批量,让价值流动起来
    • 在制品越多,切换和等待产生,反馈环被拖长
    • 通过限制在制品,有效识别和消除浪费,加速流动
    • 提高质量,减少复杂度,提高专注度

    基本原则

    • 限制在制品不是目的,改进才是;限制过程也是个改进过程
    • 人员闲置或工作闲置
    • 没有限制是不对的
    • 更低比更高好,但不要使得组织压力过大,开始时设置大些,建立改进驱动力后,逐步调低
    • 停止启动,聚焦完成
    • 单件流"1"并不是答案

    思路
    限制在制品的过程就是发现问题和驱动改进的过程

    方法

    • 基于列的在制品限制(更倾向)
      • 对于瓶颈处的处理方法——约束理论
        1. 挖掘策略:挖掘瓶颈处的问题,并解决它
        2. 保护策略:如设置缓冲区(比如开发->测试,中间增加“待测试”缓冲区)
        3. 服从策略:改善瓶颈效能所需要的变化通常不发生在瓶颈处,关注整体端到端(可调用其他资源协助)
        4. 突破策略:比如资源增加(最后再考虑这种策略)
    • 基于整个团队限制
    • 按人员限制在制品

    管理流动方法
    管理并监控看板的工作流动

    • 限制在制品
    • 显示化等待列和实践,并缩短等待
    • 消除阻塞,永远不要被阻塞——敏捷开发的最高指示
    • 避免返工
    • 打造跨职能团队
    • 设定SLA或需求前置时间目标
    • 通过每日站会及时发现和跟进阻碍流动的问题
    • 识别和管理瓶颈

    每个教练要定制适合自己团队的scrum+kanban研发模型

    需求管理活动

    用户故事 VS 工作故事

    用户故事:AS...(角色),I WANT...(活动目标),SO I CAN...(价值原因)
    工作故事:WHEN...(场景),I WANT...(活动目标),SO I CAN...(价值原因)

    基本要素:标题、描述、验收条件(DoD)、优先级、大小
    产品参与验收

    六个特性:INVEST
    从用户角度拆到最小可测试,可独立交付的最小用户功能

    产品经理从用户价值角度拆,RD从独立负责人,风险可控角度去拆

    要权衡管理成本,对于技术性团队,下太重管理成本可能做不下去。

    需求拆分

    需求拆分是后续所有过程的基础

    1. 面临的挑战
    • 如何拆出既能体现进度又能在一个迭代内完成的故事
    • 如何避免拆出瀑布型阶段任务
    • 不会花费太多时间
    • 不会迷失在网络上太多的拆分方法
    1. 需求拆分方法
      复杂型故事:涉及基础架构型故事,无法拆分,占比较小
      符合型故事:包含多个更小的故事,可以拆分,占比较大
      针对业务人员,需要了解无法拆分的原因。

    2. SPIDR方法

    5). Spikes:刺入探索法。在不知道客户需求的情况下
    2). Paths:路径分析法。客户如何使用功能,客户路径。
    1). Interfaces:场景界面法。理清什么场景下客户的需求,通过什么样的功能来满足痛点。
    4). Data:数据因素法。与Rules类似,逐步将数据补充给用户。
    3). Rules:规则分析法。在Paths考虑的情况下,可通过迭代的方式逐步增加规则。

    INTERFACE法

    image.png

    PATHS

    image.png

    DATA

    image.png

    RULES

    image.png

    SPKIES
    使用MVP来探索用户的需求

    1. 需求估算方法
      建议需求估算不要花费太多时间
      统计各种SIZE需求花费的历史数据,可计算花费人天,适合中长期规划估算
      理想人天:比较难以估准。
      根据自己的团队文化进行估算

    2. 需求规划和发布
      通过用户故事地图,按照场景和大功能进行需求归类,再从每个版本规划功能(产品经理的职责)

    跨团队敏捷(Scrum of Scrum)

    适用场景:团队需求耦合、团队技术架构耦合,且团队人数也较多的时候,需要拆分多个Scrum小团队,通过SoS方法进行协作

    尽量不要走版本火车的模式,通过管理手段应该避免浪费,而不是增加浪费

    产品经理团队制定愿景、对齐中长期目标、横向对齐需求优先级并驱动一起做计划

    跨团队需求引入特性技术负责人,把控和对齐方案

    社区沟通架构和技术演进和成长,促进人员能力提升和跨团队沟通

    Sos扩展实践

    • 产品经理团队内定期产品发布规划,关注整体目标
    • 产品经理团队内主动对齐需求优先级和依赖
    • PM联合技术负责人沟通和对齐方案
    • 共享团队chengyuan
    • 成立集成团队专注解决项目集成过程中各种问题

    Sos扩展实践

    • 从产品交付价值角度建立产品backlog,可分不同团队子视图
      • 产品级是用户故事视图,研发级是用户故事拆分出的任务视图。
    • 团队间协调实践
      • 团队建设同步迭代解耦(迭代日历)
      • 派代表参加SoS会议(定期解决协作问题)
    • 扩展Sprint计划实践
      • 产品经理和技术负责人提前沟通对齐
      • 计划日错开
      • 大房间(集中办公)

    相关文章

      网友评论

          本文标题:DEC培训Day-1:导论和精益敏捷

          本文链接:https://www.haomeiwen.com/subject/ibsjyktx.html