2015-06-12 16:35:55 leangoo_cooperation 阅读数 373
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10428 人正在学习 去看看 CSDN讲师

敏捷开发流程及敏捷工具

敏捷开发,要求在开发过程中不断增强,从而提高软件质量,以达到提高商业收入的目的。它是一个迭代的过程,一个不断提高企业投资回报率和服务质量的过程。值得注意的是,成功的敏捷开发,单纯依附于活跃的开发过程和理解敏捷所带来的效益并对此有浓厚兴趣的企业用户。本文将介绍敏捷开发的五大过程及这些过程中所要用到的工具。

敏捷计划

典型的敏捷开发将整体工作分为一系列的发布过程,每个发布过程都是一个迭代循环,每个迭代循环都会发布一组功能特性。

敏捷计划规定了每个循环中所需要完成的工作(发布/迭代)。在该阶段,产品所有者将描述每个循环过程中他希望看到的产品样子。

敏捷计划包含发布计划与迭代计划,两者的内容及执行者不同。

发布计划:包含每次发布的功能组。产品所有者负责在产品发布之前制定发布计划。

迭代计划:开发团队需要在开发工作及迭代开始前确定需要完成的工作。可以通过每天的站立会议来实现。

工具:制定敏捷计划,有很多工具可以使用,如:

创建用户故事

用户故事,是对功能、特性的简单描述。每个特性也可能由很多故事组成。用户故事要简单且容易理解,能在几分钟内通过几行字表述清楚。请注意,用户故事是由项目所有者或主要用户群体来定义的,而非开发者。

正如Mike Cohnrn所建议的,用户故事应该遵循下面的格式:

作为一个(某种角色),我需要(某事)如此如此。

例如,作为一个用户,我希望通过姓名来查找我的客户。

工具:最好的方法是使用索引卡片来记录各个故事。有很多种工具可以帮助完成故事图谱与故事追踪,如

  • SilverStories
  • Pivotaltracker

注意:故事并不是一次性完成的,它循环往复,且贯穿于整个项目开发周期中。

评估你的工作

在敏捷中,评估用于预测功能实现的复杂程度,并根据以前完成相似复杂度功能的经验预估所需要的完成时间。它是一个持续的过程,基于之前的经验和模式学习,不断提高评估的准确性。

通常,评估故事的复杂程度多基于故事要点,而非所耗费的时间。要点解释了故事的复杂性,并通过数据1,2,3……来体现。

评估有助于做出更好的商业决策,定义发布/迭代的范围。例如,我们可以很容易地为每次迭代/发布中的所有故事分配同样的数字。

工具: Planning Poker(估算扑克,scrum中文网微信就有,Scrum_CN,关注即可使用)是定义和改善你评估的最好技术。

站立会议

站立会议是开发团队每天进行的简短会议。会上每个人需要说明昨天所完成的事,及今天的计划和被分配任务现在的状态。商业用户和领域专家偶尔也会参加,这将给他们更多关于项目的信息。

它不是例行会议,仅仅对项目实施情况给出粗略的描述,而是要提供更多关于项目的可视性内容,增强团队间的协作,对当天的计划给出正确指导。

工具:在站立会议中,白板是非常有效的工具,比如Leangoo。

项目监控技术

速率:

通过速率,可以精确地测量开发团队发布商业价值的速度。速率是对生产力的测量。通过计算一定间隔内完成工作的单元数来计算速率。

在每次迭代的最后,为了计算速率,敏捷团队会查看该过程所完成的工作要求,并累加与这些要求相关联的故事点。所完成故事点的总数便是团队的速率。首次小小的迭代之后,你会逐渐发现某种趋势,且能计算出平均速率。

下面一些工具可以帮助追踪速率。

  • TargetProcess
  • Pivotaltracker
  • Timetracking
  • VersionOne

Burndown Reports:

Burndown Report是追踪项目进度的另一个标尺。它用来追踪完成故事点的个数,监控简单的迭代、发布和整个项目积压的工作。它可以显示进度,反映产品交付的价值和团队的速率。

以下一些工具可用于测量Burndown Reports:

  • TargetProcess
  • XPlanner
  • Pivotal Tracker
  • ScrumWorks

来源:Infoq

英文原文:http://techmytalk.com/2013/07/14/agile-software-development-process/

2018-12-01 00:40:19 weixin_41282397 阅读数 20
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10428 人正在学习 去看看 CSDN讲师

最小可行化产品

硅谷创业家 Eric Rise 在其著作 《精益创业》 一书中提出了 “精益创业”(Lean Startup)的理念,其核心思想是,开发产品时先做出一个简单的原型——最小化可行产品,然后通过测试并收集用户的反馈,快速迭代,不断修正产品,最终适应市场的需求。

假如时光倒流,来到了2007 年,你要从零打造一个类似如今新浪微博的产品,有一系列需求摆在面前:

  1. 用户注册、登录
  2. 发布 140 字的文字微博
  3. 发布带图片的微博
  4. 发布带视频的微博
  5. 发布投票

现在面临两个选择:1. 花费 6 个月的时间,将以上的需求全部完成后上线,给用户一个强大功能的社交网站体验。2. 花费 2 个月时间,完成用户注册登录和发布文字的功能,让用户最快体验到这个功能相对较弱的全新社交产品,在接下来的时间里,根据用户反馈,完善已有功能,同时开发上传图片的功能,一旦开发测试完成,就立即上线。以小步快跑的节奏不断完成需求表格中的其他需求。

精益创业的思想就是采用第二种方案进行渐进式开发,这样的开发模式有诸多好处:

  1. 最小可行化产品能在最短的时间内完成开发,以最快的速度验证用户需求
  2. 时间早意味着具有先发优势,方便更早地积累用户,这一点在社交产品上尤为明显,后发的同类产品往往需要背负“模仿”的帽子
  3. 能第一时间听到用户的声音,最大程度避免了产品方向上的错误

敏捷开发模式(Scrum)实际上是精益创业思想的实践指南。

敏捷开发模式

敏捷开发采用循序渐进的方法进行软件开发,把一个大项目分为多个相互联系,但也可独立运行的小项目,分别去完成,在此过程中软件一直处于可使用状态,具体流程如下:

1. 梳理产品需求(Product Backlog)

在开发之前,一定会有一个需求列表,定义了产品在接下来需要具备的特性和功能,一般由产品经理来定义,在敏捷流程中,称这个人为 Product Owner(PO)。定义 Product Backlog 时,需要遵循 INVEST 原则,即:

  • Independent 独立的,尽量和其他需求没有依赖
  • Negotiable 可讨价还价的
  • Valuable 有价值的
  • Estimable 可预估的
  • Small 足够小,拆分到一个迭代内能完成
  • Testable 可被测试的

定义需求的同时,Product Owner 还需要定义需求的优先级,定义优先级可以借助一个公式:功能带来的的价值除以实现难度, 这个值越大则代表优先级越高。

2. 制定迭代计划

一般规定两周( 10 个工作日)为一个迭代,在迭代开始之前,需要召开迭代计划会制定这一个迭代的计划,把 Product Backlog 按照优先级排序,由 PO 为大家讲解具体每一个需求,团队成员根据需求的复杂程度评估每个任务的工作量,当前 n 个任务的工作量之和约等于团队总工时时,那么这个迭代就把 Product Backlog 中前 n 个任务作为这次迭代的任务,在敏捷中称之为 Sprint Backlog。

团队总工时的计算方法:如果团队有 5 个工程师,一个迭代的工时为 5 * 10=50 人日,考虑到工作效率和其他的意外情况,再乘以 80% ,那么最终实际用于开发的工时为 40 人日,有些团队会以小时作为单位,同理,只需将单位换成小时。

团队需要把 Sprint Backlog 和预估的时间写在便签纸上,把它们贴在白板上,白板划分成三大块:未开始、进行中、已完成,当然,所有 Sprint Backlog 的状态开始都应放在未开始那一列。

3. 迭代执行

在迭代进行期间,由大家认领白板上的 Backlog,每天早上要开一个每日站会,时间在 10 分钟以内,由大家依次报告:

  1. 我昨天做了什么
  2. 今天计划要做什么
  3. 遇到了哪些问题

每日站会强迫每个人向同伴报告进度,迫使大家把问题摆在明面上,尽可能让信息公开透明。报告进度的同时移动对应的卡片到合适的位置,修改 Backlog 剩余所需要的工作量,Scrum Master 需要统计剩余所有的工时,更新到燃尽图中。当燃尽图的走到 0 ,就意味着完成了这个迭代中所有的任务。

燃尽图

燃尽图

4. 迭代总结

迭代的最后一天,还有两个环节要做:成果展示和团队的内部总结。

成果展示环节要求团队成员在这个迭代中自己完成的任务展示给所有人看,除了团队内部所有成员以外,还可以邀请领导等关心项目进展的人。内部总结则只在团队内部进行,总结这个迭代中做的好的地方以及不好的地方,接下来如何改进等。

以上是实施敏捷开发模式的大致流程,当然,在实际执行过程中会遇到或多或少的问题,一般需要几个迭代的熟悉和磨合。

 

参考文献:

https://www.jianshu.com/p/9308a4cffaf7

https://cloud.tencent.com/developer/article/1040819

2019-12-05 11:48:25 rr19941112 阅读数 23
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10428 人正在学习 去看看 CSDN讲师

敏捷开发–工作流程梳理,让工作更效率

前言:说下我公司敏捷模式,发布周期工作流程和故事开发流程

先说下敏捷的相关概念:

敏捷简述:

敏捷开发是以用户的需求进化为核心,采用迭代、循序渐进的方法进行的软件开发

敏捷核心思想:

敏捷开发的核心思想是:以人为本,适应变化

再说下我们的工作流程:

  • 发布周期工作流程
  1. 需求讨论会,产品发布会:在此期间讨论出最佳解决方案,表结构设计,确认发布周期,估故事点
  2. 迭代计划会:讲故事,拆任务 (时间:迭代第一周的周一)
  3. 站会:昨天做了什么,今天要做什么,以及遇到的阻碍和项目组做一个简单沟通(迭代期间的每天早上9:00)
  4. PBG:梳理下一个迭代的工作(参与对象:项目组全部或者部分骨干人员,时间:迭代第二周的周三下午)
  5. 验收会:对于整个迭代故事的整体验收(参与对象有:项目组全体,客户代表)
  6. 回顾会:回顾本迭代工作中的所得和错误,确认上个迭代梳理出的问题,(参与对象:项目组全体)
  7. uat:对于整个发布周期所有功能的上线前测试
  8. 上线:整个发布周期功能上线,进行上线后测试和缺陷修改
  • 故事开发流程
  1. 开发进行功能开发
  2. 开发自测
  3. 提交前案例评审
  4. 测试人员功能第一轮功能测试
  5. bug修改
  6. 测试人员bug回归测试
  7. 产品单个故事验收
  8. 迭代验收
  • 相关要求
  1. PBG之前要完成需求的整理,原型的同步
  2. 在迭代计划会前要完成迭代所有的需求整理确认和原型的更新
  3. 在迭代期间涉及到任何的需求变动都要得到对应的项目经理,产品经理,测试经理的确认,并通知项目组所有人员
  4. 在迭代期间涉及到原型,案例的部分修改时要通知所有干系人
  5. 迭代期间要按照故事完成定义(开发,测试,验收完成),且必须按照故事优先级来处理工作
  6. 开发过程中严格按照代码规范开发

小结:上述就是我公司现在所实行敏捷开发模式的实际工作流程。
在这里插入图片描述

2019-05-08 22:38:49 SirLZF 阅读数 39
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10428 人正在学习 去看看 CSDN讲师

敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。

它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发;

强调以人为核心

我们大部分人都学过瀑布开发模型,它是以文档为驱动的,为什么呢?因为在瀑布的整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是根据文档进行开发的,一切以文档为依据;而敏捷开发它只写有必要的文档,或尽量少写文档,敏捷开发注重的是人与人之间,面对面的交流,所以它强调以人为核心

以下是敏捷开发的流程:

以下是对上图理解过程中进行了进一步的细化说明

2017-04-06 09:06:53 huver2007 阅读数 622
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10428 人正在学习 去看看 CSDN讲师

从敏捷开发说起

“敏捷”概念最先是从软件开发领域引入的。传统的软件开发采用的是瀑布式开发的流程,把整个开发过程分成了需求、设计、编码、测试、发布等阶段,前面阶段达成后再进入下一个阶段,整个过程按照事先制定的计划前进。

但问题在于瀑布式开发这种预定义计划的方法,每个阶段之间都有强烈的依赖关系,前一个阶段被视为后一个阶段的输入,如果输入质量不高,便会严重影响后续阶段的输出质量。同时,如果前一个阶段未能达到标准,也会造成后续阶段的停滞,导致开发周期拉长。并且,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。

有数据显示绝大部分采用瀑布式开发方法的软件开发项目均延期,甚至失败告终。原因在于,市场的需求瞬息万变,很难实现产品需求的明确且完整地收集;同时,技术的发展也日新月异,对于所定义功能的可实现性也面临着多重不确定性的因素。所以当需求收集和产品定义工作无法得到很好地完成,瀑布式开发方法自然无法摆脱高失败率的命运。

所以从需求的明确性和工程实现的确定性两个纬度出发,当需求的不明确性和工程实现的不确定性均超出一定范围之后,呈现出复杂系统(Complex System)的特征,瀑布式开发这种结构化的开发方法便不再实用。而敏捷开发方法便是在这样的背景下诞生。

敏捷开发的一个核心思想的转换是:从瀑布式开发所代表的“Fix Feature, Flex time”(固定范围,弹性时间)转向“Fixtime, Flex Feature”(固定时间,弹性范围)。

在市场变化和技术变化的背景之下,既然市场需求和产品定义所代表的“范围”无法实现固化,因而无法确定应该投入多少资源来完成,那不妨固定好已有资源的,以资源为约束,实现“范围”的最大化实现。因此从“计划驱动”转向为“价值驱动”。

在敏捷开发的思维模式提出后,2001年,一方面诞生了 “敏捷宣言”, 充分发挥“人”在软件开发过程中的价值。

同时在敏捷宣言的指引之下也产生了多种多样的敏捷开发方法,如冲刺和迭代式的“Scrum”方法,更进一步通过具体的实施手段展现“敏捷宣言”所代表的敏捷价值观。

对比瀑布式开发所代表的预定义计划的工程方法,敏捷开发方法通过测试驱动/价值驱动的手段,更加贴近最终的应用环境,于是也具备了更好的适应性。同时在敏捷宣言指引下,更强调发挥人的价值,可以更好地挖掘出团队的潜能。

没有更多推荐了,返回首页