• 项目管理:项目中什么叫完成,传统瀑布开发与敏捷开发的完成标准是什么??


      在做开发过程中,我们总是在问或是被问到:这个任务完成了么?这个版本开发完成了么?这个产品开发完成了吗?这个……。完成没完成我们都需要有个标准,这个标准是什么呢?今天我们就讲一下这个问题。

      首先,对于是否完成在传统开发和敏捷开发中都会有相应的定义或标准。在传统开发模式中,我们以典型的瀑布模型为主,介绍一下完成标准。

      在瀑布开发模型中完成标准主要包含有三种:项目完成标准、阶段完成标准、版本发布标准。下面就针对瀑布开发模型的三种完成标准,举例说明:

      1. 项目完成标准:

      1) 进度:不能超于合同提交时间XXX天。

      2) 系统测试缺陷密度<=5个/KLOC

      3) 成本花费应不能超于计划的XX%

      4) 验收完成项目管理培训

      5) 项目相关文档已归档

      6) 合同结束

      7) 结题评审通过

      等项目管理者联盟

      2. 阶段完成标准:

      瀑布开发模型一般包含:需求、设计、实现、测试、发布阶段。每个阶段都有自己的定性和定量的标准。例如:

      3、版本发布标准:

      1) 验收测试已通过

      2) 发布计划已制定

      3) 风险分析及措施已完成

      4) 回退、应急方案已制定

      5) 问题收集、处理机制已制定

           6) 运维团队已明确

      7) 所有计划、方案、机制已与用户和开发、运维团队评审通过

      8) 发布评审会通过

      9) 等

      项目、阶段、版本发布的完成标准应该在项目计划中制定并评审。在开发过程中可以调整,但是要走正式的变更流程。

      其次,随着现在敏捷开发的流行,越来越多的开发使用小版本迭代模式,从而实现小、快、灵开发。这里我们就以最流行的SCRUM框架为例,讲解一下在敏捷开发中都有哪些完成标准及其具体内容。

      敏捷开发中把完成标准成为DoD(完成定义)。根据各自的开发特点可以定义不同的DoD,一般来讲会有版本发布完成定义、迭代完成定义、故事完成定义、周完成定义和每天完成定义等等。可以看出,后面的完成定义实际上是保证前面完成定义的,是一个层层分解、细化的过程。下面我们就以典型的每日完成定义、故事完成定义、迭代完成定义、版本发布完成定义来具体讲述:

      1、 每日DoD:

      1) 搭建每日构建环境,晚上自动静态代码检查、编译、部署和测试,每日修复前一日构建和测试发现的缺陷和问题。

      2) 下班前必须Check in当天书写的代码

      3) 当天的代码必须在当天或者第2天邀请同伴进行代码评审

      4) 凡是检入的功能代码必须要有对应的单元测试

      5) 当天集成、构建的问题当天(或第二天)解决。

      6) 等

      每日的DoD会在项目初始时确定在框架要求中。

      2、 用户故事的DoD:

      1) 用户故事最终的描述符合如下原则:

      •  独立性(Independent)— 要尽可能的让一个用户故事独立于其他的用户故事,是否可以在一个迭代内完整实现。

      •  可协商性(Negotiable)— Team是否理解用户故事,无疑问。如有有疑问,一个用户故事的内容要是可以协商的,因为用户故事不是合同。

      •  有价值(Valuable)— 每个故事必须对客户具有价值(无论是用户还是购买方,也包括使用新技术的价值)。

      •  可以估算性(Estimable)—开发团队需要去估计一个用户故事以便确定优先级,工作量,安排计划。

      •   短小(Small)— 一个好的故事在工作量上要尽量短小,最好不要超过1-2人天的工作量,至少要确保的是在一个迭代中能够完成。

      •  可测试性(Testable)—一个用户故事要是可以测试的,以便于确认它是可以完成的。

      2) 用户故事得到用户代表试用并初步认可

      3) 用户故事都有测试用例对应覆盖

    4) 用户故事都有对应的自动化测试用例

      5) 用户故事已经实现

      6) 用户故事已经测试通过

      对于一个用户故事以及验证标准,举例如下:

      用户故事实例:作为一个用户,我要在用户界面写入用户名和密码,然后我就可以登录了。

      这个功能的验证标准至少应该分为以下三部分:

      1) 前置条件

      2) 用户输入

      3) 用户期待的结果。(注意是用户的期待)

      验证实例1:

      1) 前置条件:在网站登录页面项目管理者联盟文章

      2) 用户输入:输入用户名、密码

      3) 用户期待结果:可以登录到网站

      验证实例2:

      1) 前置条件:在网站登录页面

      2) 用户输入:输入错误的用户名、密码

      3) 用户期待结果:不能登录到网站,并显示“用户名或密码错误”

      验证实例3:

      1) 前置条件:在网站登录页面

      2) 用户输入:选中“记住我”,输入的用户名、密码,登录后退出,再次进入登录页面。

      3) 用户期待结果:用户名、密码自动存在,不用输入。

      4) 验证实例3:

      1) 前置条件:在移动的网站登录页面

      2) 用户输入:输入用户名或密码三次以上。

      3) 用户期待结果:再次输入用户名和密码后需要增加一个新的验证。

    一般对于用户故事的DoD会写在Use Story CRC背面,并且在对用户故事进行估算时要考虑验证的人工。即对于一个故事的估算点数应该也包含验证的人工。

      3、 迭代DoD:(计划会议下半场)bbs.mypm.net

      1) 我们都明白在Sprint中交付的价值/目标

      2) Sprint交付的所有用户故事都完成了(由谁开确认:PO?用户?)。

      3) 确保相关文档更新完成。

      4) 确保功能描述更新完成。

      5) 验证已识别到/从其他团队的依赖关系和依赖关系。

      6) 根据提交的测试分析和变更进行的测试。

      7) 执行了的同行评审和评价。

      8) 如下产品已经准备和存档完成:

      •   故事描述

      •  源代码

      •  交付报告

      •   测试分析报告

      •   验证规范和报告

      •  详细的需求规范

      •   各版本的自动测试脚本

      •  所有用户需要的报告

      9) 使用静态测试工具没有发现新的缺陷。

      10) 所有单元测试用例已经执行通过。

      11) 核心代码互查完毕并通过

      12) 性能评测通过

      13) 代码已经用工具进行检查完毕并通过

      14) 所有缺陷已通过确认(明确:已修复或可以暂不修复)

      迭代DoD可以在计划会议下半场进行确定。

           4、 版本DoD

      上面的每个故事都测试通过了,每天也都有持续集成,是不是就可以直接对外交付了?

      理论上来讲,如果每日DOD和用户故事DOD,比较完善的话,是可以直接对外交付了,但是在这里我们还要有个决策,这个决策可以算是一个管理里程碑的评审(与技术评审不同)。我们不得不再定义个版本(或者直接叫交付)DOD:

      1) 产品文档已全部更新

      2) 代码已部署到产品服务器上并进入基线

      3) 运维在验收测试环境上测试通过

      4) 原始需求提交人对功能已经验收通过

      5) 运维、市场、客服对新功能已经培训完成

      6) 得到产品经理或是客户的认可。

      无论是传统还是敏捷的开发的完成标准,以上都只是给大家一个参考,我们可以根据具体的开发实际情况去定义、执行、分析,从而保证产品/项目的开发目标。

  • 相关阅读:
    测试理论
    字符串
    类的无参方法
    类和对象
    数组
    循环结构
    选择结构
    java——面对对象
    android通知的基本用法
    Git的基本使用
  • 原文地址:https://www.cnblogs.com/sdusrz/p/7927380.html
Copyright © 2020-2023  润新知