【经验】项目管理:瀑布式、Scrum
1、瀑布式开发
流程 | 关键词 | 关键人员 | 输出 |
---|---|---|---|
立项 | 简述、周期、预算 | 领导 | 立项申请表、立项评审表 |
策划 | 计划 | 项目经理、QA、CM | 各种计划书(项目、配置、测试等),评审 |
需求 | 功能 | 项目经理 | 功能列表、需求规格书、需求开发计划等,评审 |
设计 | UML | 开发 | 设计(概要、详细、数据库)、分析、评审 |
编码 | 写代码 | 开发 | 源码、单元测试、安装包、产品集成、代码审查 |
测试 | 测试 | 测试 | 需求测试、集成测试、系统测试、缺陷跟踪、评审 |
手册 | 使用文档 | 项目经理 | 安装手册、操作手册 |
验收 | 发布、验收 | 客户 | 确认表、验收单 |
结项 | 评价 | 领导 | 总结报告 |
质保 | 维护 | QA | 检查表、问题跟踪表 |
2、Scrum
2.1 简述
Scrum是迭代式增量软件开发过程,是敏捷方法论中的重要框架之一
百度百科:https://baike.baidu.com/item/Scrum/1698901?fr=aladdin
推荐博客:https://blog.csdn.net/a715167986/article/details/128716292
2.2 术语
角色
产品负责人 Product Owner: 负责维护产品订单的人,代表利益相关者的利益。
Scrum主管 Scrum Master: 为Scrum过程负责的人,确保scrum的正确使用并使得Scrum的收益最大化。一般不翻译。
开发团队 Team: 由负责自我管理开发产品的人组成的跨职能团队。
工件
产品列表 Product Backlog:根据用户价值进行优先级排序的高层需求。
冲刺订单 Sprint Backlog:要在冲刺中完成的任务的清单。
产品增量 Increment:最终交付给客户的内容
活动
计划会 Sprint Planning Meeting:在每个冲刺之初,由产品负责人讲解需求,并由开发团队进行估算的计划会议。
每日立会 Daily Standup Meeting:团队每天进行沟通的内部短会,因一般只有15分钟且站立进行而得名。
评审会 Review Meeting:在冲刺结束前给产品负责人演示并接受评价的会议。
反思会/回顾会 Retrospective Meeting:在冲刺结束后召开的关于自我持续改进的会议。
其他
冲刺 Sprint: 一个时间周期(通常在2周到1个月之间),开发团队会在此期间内完成所承诺的一组订单项的开发。
2.3 用户故事
用户故事(user story)是从用户的角度来描述用户渴望得到的功能。一个好的用户故事包括三个要素:
角色: 谁要使用这个功能。
活动: 需要完成什么样的功能或目标。
商业价值:为什么需要这个功能,这个功能带来什么样的价值。
用户故事通常按照如下的格式来表达:
英文:
As a <Role>, I want to <Activity>, so that <Business Value>.
中文:
作为一个<角色>, 我想要<活动>, 以便于<商业价值>
举例:
作为一个“网站管理员”,我想要“统计每天有多少人访问了我的网站”,以便于“我的赞助商了解我的网站会给他们带来什么收益。”
需要注意的是用户故事不能够使用技术语言来描述,要使用用户可以理解的业务语言来描述。
关于用户故事,Ron Jeffries用3个C来描述它:
卡片(Card) - 用户故事一般写在小的记事卡片上。卡片上可能会写上故事的简短描述,工作量估算等。
交谈(Conversation)- 用户故事背后的细节来源于和客户或者产品负责人的交流沟通。
确认(Confirmation)- 通过验收测试确认用户故事被正确完成。
用户故事的六个特性- INVEST
INVEST = Independent, Negotiable, Valuable, Estimable, Small, Testable独立性 可协商性 有价值 可以估算性 短小 可测试性
- 独立性(Independent)— 要尽可能的让一个用户故事独立于其他的用户故事。用户故事之间的依赖使得制定计划,确定优先级,工作量估算都变得很困难。通常我们可以通过组合用户故事和分解用户故事来减少依赖性。
- 可协商性(Negotiable)— 一个用户故事的内容要是可以协商的,用户故事不是合同。一个用户故事卡片上只是对用户故事的一个简短的描述,不包括太多的细节。具体的细节在沟通阶段产出。一个用户故事卡带有了太多的细节,实际上限制了和用户的沟通。
- 有价值(Valuable)— 每个故事必须对客户具有价值(无论是用户还是购买方)。一个让用户故事有价值的好方法是让客户来写下它们。一旦一个客户意识到这是一个用户故事并不是一个契约而且可以进行协商的时候,他们将非常乐意写下故事。
- 可以估算性(Estimable)—开发团队需要去估计一个用户故事以便确定优先级,工作量,安排计划。但是让开发者难以估计故事的问题来自:对于领域知识的缺乏(这种情况下需要更多的沟通),或者故事太大了(这时需要把故事切分成小些的)。
- 短小(Small)— 一个好的故事在工作量上要尽量短小,最好不要超过10个理想人/天的工作量,至少要确保的是在一个迭代或Sprint中能够完成。用户故事越大,在安排计划,工作量估算等方面的风险就会越大。
- 可测试性(Testable)—一个用户故事要是可以测试的,以便于确认它是可以完成的。如果一个用户故事不能够测试,那么你就无法知道它什么时候可以完成。一个不可测试的用户故事例子:软件应该是易于使用的。
2.4 史诗、特性
敏捷中需求通常被分为史诗、特性、用户故事三大类别,逐层往下,粒度越来越小。需求直到被分解至用户故事时,才能放入Scrum迭代。
史诗:由多个较小的故事组成的史诗。
特性:一组相关的故事,有价值的单方向功能集合。
用户故事:独立的较小用户的价值交付单元。有可能不足以单独发布。
2.5 猪与鸡
2.5.1 鸡和猪的故事
一天,一只鸡散步时遇见了猪。
鸡对猪说:“嗨,我们合伙开个餐厅吧。”
猪说:“好啊,那准备取什么店名呢?”
鸡说:“要不,就叫火腿和鸡蛋吧。”
猪直接拒绝了:“那可不行。我要割肉,你只要下蛋。这样下去,我迟早要完蛋。”
2.5.2 保护“猪”,兼顾“鸡”
这个故事实际上反映了软件开发过程中的2种不同角色,即需要完全投入的“猪”和只要部分投入的“鸡”。真实项目过程中,往往会发生这样的现象,产品经理或领导,喜欢临时往项目中新增任务,打乱原先的开发节奏,导致程序员压力倍增,士气低落,项目延期。
而Scrum,就是为了保护“猪”这种角色,兼顾“鸡”的感受,从而确保整个项目正常交付。它是一套敏捷开发流程。
2.6 Scrum用到的工具
- 用户故事。迭代计划会议用到,Product Owner以用户的角度去描述需求。如,作为一个学员,我希望能在做完一份试卷后,系统能针对我的薄弱点提供相应的指导及练习。
- Product Backlog。迭代计划会议用到,Product Owner事先将所有的用户故事按优先级排好,放到一个列表内,这个列表就是Product Backlog。
- Sprint Backlog。迭代计划会议用到,整个开发小组通过估点将用户故事按优先级移入到迭代计划内,迭代计划中待完成的用户故事列表即为Sprint Backlog。
- 估点。主要用于评估用户故事的大致工作量。下一篇文章会额外介绍估点。
- 燃尽图。主要用于迭代进度的管控。下一篇文章会额外介绍燃尽图。
2.7 Scrum标准流程
2.7.1 Scrum标准流程之Sprint Planning Meeting
迭代计划会议中,整个小组通过估点的方式,按优先级将用户故事从Product Backlog中移入到Sprint Backlog,表示整个小组承诺本迭代要做完的任务。做完的标准是测试通过,除非此任务不可测试。
2.7.2 Scrum标准流程之Daily Stand Up Meeting
迭代计划会后,小组成员按个人喜好领取自己的任务,并在每天的站立会议上讲一下自己昨天做了什么,今天准备作什么,大概什么时候完成,以及遇到了什么问题。当有人提出遇到难题时,Scrum Master需要在会后安排人帮忙解决,而不是在会议上直接解决。每个人大概30秒-1分钟,整个会议一般不超过15分钟。每一个工作日结束后,需要画燃尽图(下一篇文章会额外介绍)。
2.7.3 Scrum标准流程之Review Meeting
一个迭代开发阶段结束后,进入内部演示会议,工作成果给整个小组演示(包括Project Owner)。EduSoho的做法是,bug及小优化不演示,点数较大的功能点做演示。
2.7.4 Scrum标准流程之Restrospective Meeting
内部演示结束后,整个小组(包括Project Owner)召开一个迭代回顾会,回顾本迭代中大家哪些做的好,哪些做的不好,每人各列举3个好的以及不好的,列的时候只讲现象,不分析原因,不找解决方案。然后整个小组投票选出3个不好的,分析原因,寻找解决方案,并指定执行者。
为什么只解决3个不好的?每个小组的精力有限,如果要一个迭代内解决全部问题,不太现实,先优先解决3个最重要的,多次迭代后,会发现整个小组的变化越来越明显。
相关文章:
【经验】项目管理:瀑布式、Scrum
1、瀑布式开发 流程关键词关键人员输出立项简述、周期、预算领导立项申请表、立项评审表策划计划项目经理、QA、CM各种计划书(项目、配置、测试等),评审需求功能项目经理功能列表、需求规格书、需求开发计划等,评审设计UML开发设…...
Learning C++ No.17【STL No.7】双端队列
引言: 北京时间:2023/3/17/7:18,刚刚快乐的早锻炼回来(不对 ,应该说回来有一会了),因为此时我已经吃完早饭,洗过澡了;现在回想起上学期,就算是第二天需要晨跑…...
Snackbar
1.简介 位于底部的提示View 支持侧滑消失 同一时间只有一个 不支持跨Activity展示 国内使用率很低 2.基础使用 2.1 基本展示 Snackbar.make(view, "Content", Snackbar.LENGTH_LONG).show()2.2 设置点击事件 注意不设置点击事件回调,点击按钮的文字不…...
HummerRisk 使用教程:主机检测
1. 概述 HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生环境的安全和治理问题。核心能力包括混合云的安全治理和容器云安全检测。 本文将介绍HummerRisk中的主机检测部分功能,包括如何管理主机、管理凭证,以及使用主机检测规…...
【Arduino无线气象站项目】
【Arduino无线气象站项目】 1. 概述2. Arduino无线气象站电路图3. 定制设计电路板4. Arduino无线气象站代码5. 总结1. 概述 使用DHT22传感器测量室外温度和湿度,并使用NRF24L01收发器模块将这些数据无线发送到室内机。在室内机,还有另一个用于测量室内温度和湿度的DHT22传感…...
HTTP详解
一,什么是HTTPHTTP(全称为“超文本传输协议”),是一种应用非常广泛的应用层协议,之前在《初识网络原理》的博客(初识网络原理_徐憨憨!的博客-CSDN博客)中,有详细讲解过TCP/IP五层模型,其中应用层描述了数据…...
cpufreq--处理器功耗控制
cpu 功耗控制 参考框架: cpufreq 框架。 cpufreq 框架提供 cpu 功耗管理接口,以及功耗管理方案。 用户可以通过功耗管理接口(以文件形式提供)来选择管理方案,并设置相关参数。 管理方案的实现则由具体的驱动来完成。…...
做技术,最忌讳东张西望
又好长时间没更新,研二了,忙着做实验、写论文、发论文,再加上给我导做一些事情(都习惯了,以前很不爽的事情,现在居然能这么平静的说出来)。 但这不是我今天说的重点,而是另外一件事…...
Oracle 常见报错问题汇总
Oracle 常见报错问题汇总 报错:ORA-01017: invalid username/password; logon denied报错:ORA-01031: insufficient privileges报错:"ORA-01034: ORACLE not available" 和 "ORA-27101: shared memory realm does not exist"报错:“ORA-00119: invalid…...
单片机连接有人云上传数据
首先采用有人物联网的模块 ,连接有人云平台服务器 看云平台相关配置配置连接设备在线后 添加设备添加设备完成后 添加变量模板 变量模板的添加方式如下 :本次采用的是标准的MODbus 协议添加一个温度变量温度变量如下显示云平台 下发数据 采集01 03 00 00…...
系统集成项目管理工程师:第18章项目风险管理学习笔记
第18章项目风险管理 一、目录 18.1 风险概述 18.1.1 风险的定义 18.1.2 风险的分类 18.1.3 风险的性质 18.2 项目风险管理 18.3 规划风险管理 18.3.1 规划风险管理的输入 18.3.2 规划风险管理的工具与技术 18.3.3 规划风险管理的输出 18.4 识别风险...
【笔试强训选择题】Day3.习题(错题)解析
文章目录 前言一、Day3习题(错题)解析二、Day3习题(原题)练习总结前言 今天我们将进入到第三天的练习,希望能一直坚持下去,不断反思总结错误,得到进步; 一、Day3习题(错…...
基于GPT-4的免费代码生成工具
大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…...
Android开发的这一年里,Jetpack的Room源码是怎么狠狠奖励我的?
简述 Android Jetpack的出现统一了Android开发生态,各种三方库逐渐被官方组件所取代。Room也同样如此,逐渐取代竞品成为最主流的数据库ORM框架。这当然不仅仅因为其官方身份,更是因为其良好的开发体验,大大降低了SQLite的使用门槛…...
推荐一款卸载软件的小工具-《UninstallToo》
目录 UninstallToo介绍 UninstallToo下载 UninstallToo使用 总结 UninstallToo介绍 Uninstall Tool 是一款可以用来替代“添加/删除程序”的工具。它允许您显示隐藏的安装程序,按名称过滤已安装程序的列表,强行写在程序,浏览注册表项目&a…...
线程池——JUC随记8
线程池使用方式 1、一池N线程(Executors.newFixedThreadPool(n)) import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class ExecutorDemo {public static void main(String[] args) {ExecutorService execu…...
SpringCloudAlibaba微服务调用组件-Feign
SpringCloudAlibaba微服务调用组件-Feign 本项目代码与笔记已存放在Gitee仓库 地址: 代码,笔记 文章目录SpringCloudAlibaba微服务调用组件-Feign1. 什么是Feign1.1 优势2. Spring Cloud Alibaba快速整合OpenFeign1)引入依赖2)编写…...
高效学习方法论
2023.03.17 《程序员的三门课:技术精进、架构修炼、管理探秘 / 于君泽等著》学习笔记 学会学习一、高效学习的方法1、管理好自己的目标1)评估能力2)制定目标3)评估目标2、利用好碎片时间3、在同一时间只做一件事二、高效学习的途径…...
C语言结构体(一篇学会)
C语言结构体 在C语言中,结构体是一种自定义的数据类型,它允许用户将不同类型的数据组合在一起。结构体由多个变量组成,这些变量称为结构体的成员。结构体成员可以是不同的数据类型,如整数、浮点数、字符或其他结构体等。 结构体…...
嵌入式软件开发之Linux下C编程
目录 前沿 Hello World! 编写代码 编译代码 GCC编译器 gcc 命令 编译错误警告 编译流程 Makefile 基础 何为 Makefile Makefile 的引入 前沿 在 Windows 下我们可以使用各种各样的 IDE 进行编程,比如强大的 Visual Studio。但是在Ubuntu 下如何进…...
普通Java工程师 VS 优秀架构师
1 核心能力 1.1 要成为一名优秀的Java架构师 只懂技术还远远不够,懂技术/懂业务/懂管理的综合型人才,才是技术团队中的绝对核心。 不仅仅是架构师,所有的技术高端岗位,对人才的综合能力都有较高的标准。 架构路线的总设计师 规…...
Java:SpringBoot实现ApplicationEvent事件的监听和发布
通过发布订阅模式实现数据的异步处理,比如异步处理邮件发送 新建SpringBoot项目 项目结构 . ├── pom.xml └── src└── main├── java│ └── com│ └── example│ └── demo│ ├── Application.java│ …...
星戈瑞-Sulfo-Cyanine3 azide?磺酸基-Cy3-N3叠氮基水溶性染料
Sulfo-Cyanine3 azide? 品牌:星戈瑞 CAS号:2055138-89-9 外观: 暗红色晶体 分子量:720.83 分子式:C34H45N6NaO8S2 纯度:95% 储藏条件:-20C 下避光保存 Sulfo-Cyanine3 azide 是一种…...
十大经典排序算法(下)
🍓个人主页:bit.. 🍒系列专栏:Linux(Ubuntu)入门必看 C语言刷题 数据结构与算法 HTML和CSS3 目录 1.6 快速排序 1. 算法步骤 2. 动图演示 3.代码实现 1.7 堆排序 1. 算法步骤 2. 动图演示 3. 代码实现 1.8 计数排…...
网络协议分析期末复习(四)
目录 0.前言 1.IP层对改善TCP性能支持的机制 2.TCP防止半开放连接的机制 3.TCP协议中强推位(P)和紧急位(U)的用法 4.TCP的流量控制和拥塞控制的异同点 异: (1)两者的特点不同:…...
Matlab对图像和视频的简单处理(图像视频文件读取和输出,转灰度图,取指定帧的图像)
文章目录1.图像文件的读取2.图像效果展示3.将彩色图转换为灰度图4.视频文件的读取5.读取视频中指定帧的图像6.图片文件的报错1.图像文件的读取 语法介绍: A imread(filename) A imread(filename, fmt)参数介绍: filename:要读取的图像文…...
ArrayList源码分析
ArrayList源码分析目标:一、 ArrayList的简介二、ArrayList原理分析2.1 ArrayList的数据结构源码分析2.2 ArrayList默认容量&最大容量2.3 为什么ArrayList查询快,增删慢?2.4 ArrayList初始化容量1、创建ArrayList对象分析:无参数2、创建A…...
SpringBoot IOC、DI、@Autowired、@Resource、作用域
一、初识Spring1.1 Spring是什么Spring是一个轻量级Java开发框架,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,Java开发者可以专…...
链表相关oj题
1.Leetcode203 移除链表元素 解题思路:从头节点开始进行元素删除,每删除一个元素,需要重新链接节点 struct ListNode* removeElements(struct ListNode* head, int val){struct ListNode*dummyheadmalloc(sizeof(struct ListNode));dummyhea…...
【Linux】操作系统(Operator System)
操作系统(Operator System )一、操作系统的概念二、操作系统的作用三、系统调用和库函数一、操作系统的概念 操作系统是一组控制和管理计算机软硬件资源,为用户提供便捷使用的计算机程序的集合,是配置在计算机硬件系统上的第一层…...
网上代做论文的网站好/优化系统的软件
在当今的智能手机市场,iPhone和安卓形成了两大操作系统阵营,但是由于两者的操作系统不同、用户群体不同,导致使用手机的时候形成了不同的使用习惯,今天小胖就来总结一下两者在使用手机时的一些区别。清后台因为早年的安卓手机性能…...
物流建设网站总结/百度网盘资源搜索
点蓝字关注我们大胆热爱Hello Everybody【火影秘术小课堂】开课了本期的主题【c盘满了怎么办】火粉们赶紧搬好小板凳,准备上课吧1c盘为什么会满在如今这个信息爆炸增长的时代,我们要看的信息越来越多,也就意味着在电脑里有意无意留存的资料也…...
广州专门做网站的公司/推广计划书范文
求职 地图 网页 应用 更多 关键词:C/C面试技巧及试题? C/C 试题有难有易,不能因为容易,我们就轻视,更不能因为难,我们就放弃。我们面对高薪就业的态度永远不变,那就是坚持、坚持、再坚持。出现问…...
做网站哪一家公司好/营销网站建设大概费用
在皕杰报表的函数中,数据集函数和单元格函数都有sum求和函数,但其用法是不同的。我们先看两个函数的说明: 一、数据集函数sum 函数说明:从数据集中,从满足条件的记录中,算出给定字段或表达式的总和 语法&a…...
国外专门做旅游攻略的网站/广州疫情最新消息今天封城了
6月29日,MWC2017大会在上海新国际博览中心拉开帷幕。本届MWC以“势在人为”为主题,邀请了多位来自全球顶尖的通信、运营商、终端等企业的重量级嘉宾进行主题演讲,就物联网、增强现实与虚拟现实等最新行业趋势展开了深入探讨。在智能革命加速到…...
重庆市建设工程信息网招标文件/网站seo基础优化
欢迎和号主【前端点线面】进群盘算法,此外本号干货满满:14个门类(100篇原创)内容(又干又硬)、《前端百题斩》pdf(助力薪资double)、20篇思维导图(知识系统化、记忆简单化…...