zoukankan      html  css  js  c++  java
  • 持续交付5-持续交付管理

    持续交付管理

    持续集成:个体不断向主干分支快速迭代的过程,强调开发的及时性,以保障局部和整体开发进度的协调,而不是像瀑布模型那样集中提交,而存在大量冲突的情形;

    持续交付:将持续集成的二进制包不断进行测试,优化的过程,使应用保证一种随时可交付使用的状态.

    持续部署:构建产品可快速安全交付用户使用的方式,强调快速生产化,包含基础设施的部署能力.

    业务治理

    持续交付的实现不仅仅是一种新的交付方法论,它更是对于企业的业务治理.
    1 快速交付可以支持收入的持续增长;
    2 业务风险管理,提前控制风险;

    通过明确持续交付内容,可以把握软件的整体和部分,理解整个业务流程,便于规划和管理企业软件;

    配置发布成熟度模型:

    持续交付成熟度模型

    业务治理目标

    1. 缩短生产周期,快速交付,提前盈利;
    2. 减少缺陷,提高效率,降低修复成本;
    3. 提高软件交付生命周期的可预测性;
    4. 具有采用和遵守任何必要的法律规章的能力;
    5. 具备发现和管理软件交付风险的能力;
    6. 通过更好的风险管理和交付更少缺陷的软件来减少成本;

    成熟度模型使用:

    1. 确认公司配置发布阶段;
    2. 选择适合公司的阶段领域进行改造,定义验收条件;
    3. 创建实施计划;
    4. 验证是否达到预期,相关干系人进行实施讨论;
    5. 不断重复,积累知识,然后在内部推广;

    项目生命周期

    团队发展阶段:

    创建期,风暴期,规范期,运转期,调整/重组期;

    同样,项目也可以划分为以下阶段:

    识别阶段,启动阶段,初始阶段,开发/部署阶段,运维阶段

    • 识别阶段

    1 收集利益干系人列表
    2 进行软件前期业务分析
    3 收集产品需求
    4 排列需求优先级

    • 启动阶段

    1 生成商务分析报告,评估项目价值;
    2 列示概括性的功能和非功能需求列表(容量,可用性,服务连续性,安全性等要求),可以满足工作量评估和做项目计划即可;
    3 发布计划,包括了工作量规划,项目相关成本;需要评估需求的相对大小,工作量,风险和人力资源计划;
    4 测试策略
    5 发布策略
    6 架构评估报告,使用的平台和框架
    7 风险和问题列表
    8 开发生命周期的描述
    9 执行上述内容的计划描述

    实际该阶段需要干系人对产出物达成共识,可以对于相应的问题域有较详尽的认识且是共识,这个是必须要记录的,也是该阶段的关键;
    整个项目最长周期最好以三到六个月为怡.

    • 初始阶段

    1 确保团队获取到对应的软硬件
    2 确保基础设施就绪
    3 权限分发
    4 创建好版本控制库
    5 角色,职责,工作时间和会议时间达成共识
    6 为第一周做准备,并设置好该周目标
    7 创建一个简单的测试环境和测试数据
    8 稍微详细的研究下预定系统设计:探索可行性
    9 做一些调研,识别和缓解任何分析,开发和测试风险
    10 建立需求列表
    11 初始化项目,完成项目结构,构建脚本,一些测试,可以持续集成

    • 开发/部署阶段

    核心流程

    1 代码随时处于可工作状态,每次提交代码都会触发自动化测试套件(单元测试,组件测试,端到端验收测试)
    2 每个迭代都可以部署到类生产环境,并向用户演示
    3 迭代长度不超过两周

    迭代开发价值

    1 功能被划分优先级,将核心功能快速成型,
    2 快速和用户沟通产品进度,得到产品反馈
    3 定期演示,进行产品进度跟踪
    4 保持软件随时可工作,加强团队纪律性和兴奋度
    5 可以有效验证产品,可以部署到生产环境.

    • 运维阶段

    识别新功能,排定优先级,分析,开发,测试和发布,周而复始

    整个项目的生命周期代表软件的成长阶段,针对不同的阶段有效的安排对应的事情,可以加速软件成型,快速创造价值,磨练各个团队.一个好的项目管理是企业文化的体现,这种环境下,企业的效益和员工的成长都是息息相关的.

    风险管理流程

    影响软件交付进度的所有因素都是软件的风险.对于它们的管理,可以加强软件的健壮性和快速交付能力.

    风险管理模型:影响*可能性;

    比如如果软件推迟一天交付,公司要损失10万,而推迟的可能性是50%,那么风险的影响的就是5万.

    实际中根据项目生命周期的阶段来进行风险管理是具体而有效的,不断降低软件开发中的不可控因素,是保障软件成功的关键,将所有风险影响因素变为可测量项,并进行跟踪治理,就可以获得一个健康的产品.

    风险管理内容:

    1 如何跟踪项目进度
    2 如何防止缺陷
    3 如何发现缺陷
    4 如何知道一个需求已完成;
    5 如何管理环境
    6 如何管理配置项,如测试用例,部署脚本,环境和应用程序配置,数据库脚本和外部库
    7 演示频率
    8 回顾会议频率
    9 运行自动化测试频率
    10 如何部署软件
    11 如何构建软件
    12 可行且可接受的发布计划
    13 风险问题列表及时更新

    常见软件风险:

    1 不频繁或充满缺陷的部署
    2 较差的应用程序质量
    3 缺乏管理的持续集成工作流程
    4 较差的配置管理

  • 相关阅读:
    判断Redis复制是否完成的方法
    jquery ajax 设置header的方式
    二维码 halcon(转)
    转 python 简易windows编辑器
    转 【ORACLE 12C】ORA-65066
    转 python 2 读取配置文件
    转 MySQL active threads more than 40 on db3.***.com
    推荐一个画连锁不平衡图(LD block)的软件LDBlockShow,亲测比haploview好用!
    ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found解决方法
    一个R包(IntAssoPlot),LocusZoom图、连锁不平衡图和基因结构图一步到位
  • 原文地址:https://www.cnblogs.com/chengmuyu/p/13273187.html
Copyright © 2011-2022 走看看