2015-04-23 17:21:41 lqh4188 阅读数 1810
  • SCRUM敏捷开发视频教程

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

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

1.  极限编程在项目中的应用

最早接触极限编程的概念是在2010年看的一本书《解析极限编程--拥抱变化》,当时并没有一下子看完,之后断断续续的读着。但在是实际项目中并没有真正的应用。

在2011年3月份进入一个3500多万的项目中,在调研和开发的过程中,遇到了很多问题,在这个过程中,开始逐步的把极限编程的部分思想来应用于项目。

1.1.  沟通很重要

  无论是在工作还是在日常生活中,沟通对我们来说,都是非常重要的交流与获取反馈的有效途径,在项目管理中,尤为重要。若沟通不良,对项目造成的影响是具大的,比如没有向客户询问该问的问题,而导致程序在关键性设计中出现失误。管理人员不向开发人员问该问的问题,而导致项目进度误报。

  在项目管理中,沟通是获取客户需求的关键,是程序设计的依据,是制定项目计划的参考。所以我们要促进良性沟通,避免不良沟通。

1.2.  简单设计

有三条准备可以避免软件项目中常见的戏剧性效果和机能障碍。

1.在项目初期不可能收集到所有需求。

2.不管你收集到什么需求,最终它们肯定会发生变化。

3.总会有任务超时、超支。

所以在设计的时候要尽量的简单,避免过度设计

1.3.  每周交付一些有价值的东西

大部分情况下,客户不能确切的告诉你他们需要什么,一旦客户见到第一个版本,他们就知道了在第二个版本中他们需要的东西……或者说他们在第一个版本中实际想要什么。所以我们有必要每周都交付一些可用的东西。

这样做的好处是:

1.及时反馈:可以及时获取用户反馈,通过频繁的与用户沟通、反馈,形成良性沟通,明确用户真实需求。

2.保障项目进度:短周期的交付,便于项目的调整,减少用户意途与开发之间的理解误差。便于项目进度的掌控。

3.给用户和开发人员信心:由于每周都能看到可用或可演示的东西,让用户对项目有信心,也可以了解项目进度,这要比一个月交付的一次更有说服力。同时对于开发人员,每周的功能都能得到用户的确认,若需要调整,也是小幅度调整,若不需要调整,则是对工作内容的肯定与激励,可以提高工作激情。

1.4.  控制范围

极限编程中的四个变量是:成本、时间、质量和范围,其中范围的控制最有价值。

一般在项目合同中,均会对时间、范围进行约束,质量就不用说了,如果质量不合格,用户是不会验收的。对于成本和时间基本是不可能有大的改变的,对于范围,合同中不可能对边界定义的十分明确,这就需要我们在整个项目进展中进行有效控制。

客户在开发的过程中,会将范围无限的扩大,如果项目经理不对范围进行控制,这个项目会不断的扩展,造成成本增加,开发周期变长,无法在合同规定内完成项目的验收。

所以说范围的控制最为有价值,他是我们项目管理人员唯一有主动权的要素。

关于质量和时间,牺牲质量以换取时间的做法是不可取的,这种短暂的收益在项目后期将导致致命的伤害。所以要平衡这两者的关系,使得开发人员可以在有限的时间内开发出高效的产品。

1.5.  结对编程

对于极限编程中的结对编程思想,在现实中似乎是不可能应用的,不过在2015年2月份,很有幸的体验了一下。

在一个需求开发即将结束的时候,正好另外有一个需求过来,而且其中有一部分有重叠,于是我和另一个负责人商量了一下,决定把重叠部分进行重构优化,合并抽象为一个模块。由于对于这部分我们两人都了解,所以开发过程中,我们尝试了一下结对编程,他写代码的时候,我在旁边看着,并提示注意事项(当然还可以喝喝茶、吃点东西),然后我再接着写,他在旁边看着,并提示我注意或忽略的地方。3个小时,模块功能完成,测试通过,OK。

这次尝试感觉还是很成功的,两个人的效率还是很高的,而且目标明确,思虑清晰,轻松高效。

但是这种编程方式是不适合推广的:

   a.要求高:要两个人有一定的默契,不然反而事倍功半。

   b.国情:目前没有适合的土壤。

2.   关于极限编程部分关键词

参选书目:《敏捷武士:看敏捷高手交付卓绝软件》析级限编程》

2.1.  概述

极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。

 

2.2.  核心价值

极限编程中有四个核心价值是我们在开发中必须注意的:沟通(Communication)、简单(Simplicity)、反馈(Feedback)、勇 气(Courage)、此外还扩展了第五个价值观:谦逊(Modesty)。  XP用“沟通、简单、反馈、勇气和谦逊”来减轻开发压力和包袱;无论是术语命名、专著叙述内容和方式、过程要求,都可以从中感受到轻松愉快和主动奋发的态度和气氛。这是一种帮助理解和更容易激发人的潜力的手段。XP用自己的实践,在一定范围内成功地打破了软件工程“必须重量”才能成功的传统观念。

2.3.  四个变量

成本、时间、质量和范围,其中范围的控制最有价值。

2.4.  四个准则

沟通、简单、反馈、勇气

2.5.  基本原则

快速反馈、假设简单、递增更改、提倡更改、优质工作。

2.6.  开发软件的四项基本工作

编码、测试、倾听、设计

2016-05-15 22:49:17 u014231523 阅读数 4059
  • SCRUM敏捷开发视频教程

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

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

一般产品人员进行过需求采集,分析,筛选后就会进行产品的设计。
在产品设计的过程中会产生PRD(Product Requirement Document 产品需求文档 ),如果是新产品或者在大公司一般还会有BRD ( Business Requirement Document 商业需求文档)和MRD (Market Requirement Document市场需求文档 )。
当写好PRD之后就会画出简单的线框图,在画好线框图后,为了后面更好的评估开发难度和开发时间,这时产品经理就会和开发经理和开发人员进行一次简单的会议,会议主要是介绍产品的功能点和交互。
这时开发人员进行给出开发难度,如果功能点太难以实现或者比较复杂且优先级不那么高的可能就会先实现主要功能(主要为了降低开发成本,看上线后用户的反应再进行深度开发同时也是为了把试错成本降低)。
没有问题后,产品就会让UI人员给出高保真原型图,同时开发人员进行开发。主要步骤如:

  1. 确定需求后,产品人员写PRD和线框图。
  2. 产品人员和开发人员进行讨论,评估开发难度和开发时间。(如果开发迭代时间固定,主要是评估难度)
  3. UI根据线框图和PRD设计出高保真原型图,同时开发人员进行开发,项目管理开始。
  4. 开发,测试,修改bug(开发中可能会出现需求更改的情况)
  5. 产品经理(项目经理)进项验收,没有问题上线。
    开发流程
    以前的开发大部分都是瀑布式开发,现在一把都采用敏捷开发。项目经理这个职位一般也是只有在稍大的公司会有,在创业的小公司一般有产品经理或者开发经理来担任。我们公司是由开发经理来担任开发进度管理,最后由产品经理验收。
    一般敏捷开发流程(每个公司的迭代周期不同,但大致流程相似。下面是两个星期一个迭代)如下:
    迭代

  6. 如果我们需要从第1周周一开始开发新的迭代(假定第5个迭代)。那么就要在上周的周三,产品人员和开发人员进行PRD评审,如有需要修改的地方进行修改。(第四个迭代开发持续中,UI按照优先级开始绘制已经确定需求的高保真图)

  7. 上周的周五产品进行修改后,再次和开发人员进行评审,确定没有需求没有大的变动。(UI设计持续,启动新的开发迭代(第5个迭代),进行上次迭代(第4个迭代)总结会议和新迭代开启会议),这时项目也会在进行拆分,比如按照epic-story-sprint-task的方式进行拆分。然后把这个迭代的任务拆分成各个小的task,然后进行人员分配。task的时间颗粒度一般不超过两天,分的太粗容易造成delay。task维护一般使用看板的形式,我们使用过的有Jira,kanbanflow,icafe等。(可以根据喜好使用,里面有相应的曲线图和燃尽图)
  8. 第一周周一上班,UI同学会给出一部分设计的好高保真图。这时服务端同学会根据安排好的优先级给出相应功能的接口文档。移动端的同学进行页面编码和设计。同时移动端同学会根据给出的接口文档先造一批假数据已备本地测试(如果有相应的接口测试工具会更好,我们是用的自己开发的接口测试沙箱,可以根据绑定的真假接口进行真假数据的测试)。同时,每天下班前都要有站会。站会主要说自己的三个问题:1.今天做了什么2.有什么问题3.明天做什么
  9. 开发持续进行,到第一周周四时,会先发个测试包,让测试人员进行测试。当然开发过程中也在不断测试。出现问题就进行修复,bug修复不再安排时间,不会在看板上建新的task来修复bug,开发任务继续。
  10. 到第二周的周三,要确保开发任务基本完成。然后发个测试包,进行测试。有bug进行修复。同时产品经理进行查看。同时和产品进行下的迭代(第6个迭代)的PRD评审。
  11. 到第二周的周五,再发个测试包,进行测试。有bug进行修复。产品经理验收。(没有问题,一般会在夜里凌晨1-2点上线。)上线后可能要安排人员进行值守,看有没有问题。同时周五还要和产品进行确认最终新的开发。同时开总结会议和新迭代启动会议,这两个会议也可能放在周一开。
    至此,一个迭代开发周期完成。
    注意:

    • 在开发的过程中,项目经理每天要通过看板或者询问开发人员的进度是不是符合原来的预订计划,如果出现delay现象,可能就要通过加班来把进度提上来。
    • 测试人员也要参与需求的评审,方便后面业务测试。
    • 开发人员要对自己写的代码负责人,写好后要进行代码review和自测,不能把没有测试的代码进行提交。
2019-08-27 00:50:57 seagal890 阅读数 69
  • SCRUM敏捷开发视频教程

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

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

[敏捷开发实践] 敏捷开发的误区

误区之一:人人都有机会,为项目招聘新人组建新团队,采用Scrum过程模型开发

误区之二:敏捷开发不需要写文档

误区之三:敏捷了要拥抱变化,PO(Product Owner)可以随时提出需求变更

误区之四:敏捷了一定要引入自动化测试,否则没有“高大上”的感觉

误区之五:敏捷开发一定可以加快系统/产品发布

误区之六:敏捷开发倡导“个体和交互胜过过程和工具”,过程和工具没有那么重要了

 

(更新中)

 

2018-09-10 14:25:19 Agile_zhanglao 阅读数 723
  • SCRUM敏捷开发视频教程

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

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

只要是在IT互联网行业工作的人肯定对 Scrum敏捷开发 都多多少少有一些了解。工欲善其事,必先利其器,那我给大家介绍一款敏捷开发项目管理工具-Leangoo

它是由国内最早推广敏捷 也是最权威的 Scrum中文网 研发打造,完美支持Scrum敏捷开发中的所有元素,我们一起来具体看看吧!

Leangoo是什么?

Leangoo是一款基于看板的项目管理工具,用它可以进行项目需求、任务、问题和文档的管理和协作。而团队工作体现为卡片,卡片的内容可以是需求、任务、缺陷等等。

leangoo主要元素包括列表和泳道,列表管理工作的不同阶段或状态。泳道实现任务的分组对应,从两个纬度让团队的工作高度可视化。

Leangoo提供 永久免费版(无任何限制) 在线企业版(收费:99/人/年) 私有部署版(699/人永久授权)

具体区别可以看这里:https://www.leangoo.com/price.html

团队为什么选择Leangoo?

    1)简洁轻量,上手快

         多多少少用过一些类似的工具,要么太繁重,太繁重学习起来很累,我们使用工具是为了提高工作效率,如果还要花时间去学习的话,那就是在加大工作量! 

要么太大而全,太大而全的工具就是什么都有,比如说连点赞这种操作都有,从而失去产品本身初创的意义,协作不为提高效率而生了,反倒成为项目进展的的阻力!

 Leangoo基本不需要花学习成本,5分钟内就可以上手, 而它的功能方面,并不是简单的将任务罗列出来,它有完整的项目展现视图,聚焦的目标展现以及项目中的需求,缺陷的统计,可以一目了然的了解项目进展!而选择一个好的项目管理软件可以让团队更有效率,且事半功倍!

   2)永久免费(也有收费版)

     当然 永久免费 并不是噱头,在Leangoo永久免费版里,是没有任何成员或者项目数限制的,并且关于看板的统计以及项目的统计都有!

具体几个版本的功能区别可以看这里:https://www.leangoo.com/product.html

  3)完美支持Scrum敏捷开发和看板方法

   如果恰好你们公司也是在做敏捷开发的,那么这个工具正好是你的选择。它支持所有的敏捷元素,燃尽图,工作量估算,泳道等,那如果你们没有用敏捷,但是研发团队只是在迭代,那么它也可以帮咱们更好的管理团队,并且利用电子看板,数据也可以更好的沉淀!

   Leangoo敏捷实践

1)基于scrum创新和管理

Scrum是用于开发和维护复杂产品的一个框架。上世纪90年代,Scrum在全球已得到广泛应用,Scrum最初用于产品研发,目前已广泛用于软硬件开发、互联网、人工智能、学校、政府、市场、管理组织运营等诸多领域。

随着技术、市场和环境的复杂度和不确定性持续增长,Scrum在处理复杂性方面的效用日益得到证实。Leangoo可以完美实现Scrum实践落地。

2)产品线路图

产品路线图是重要的产品管理工具。Leangoo可以帮助我们创建价值和目标驱动的敏捷产品路线图。(横向为泳道)

3)管理产品Backlog

产品Backlog是Scrum框架的3个工件之一,它是一个按照价值排序的需求清单。在敏捷中需求是条目化的,通常使用用户故事来表达。通过Leangoo可以使用看板对产品Backlog条目进行可视化管理,让整个团队非常直观的了解需求的优先级和规划安排。

4)管理Sprint Backlog

Sprint Backlog同样是Scrum框架的3个工件之一,它包括了本次迭代需要完成的产品Backlog条目(通常是用户故事-User Story),以及基于故事拆分出来的任务。故事和任务通常都放在一个可视化的任务板上,任务板通常包括了Story,Todo,Doing,Done这4个列表,拖拽移动任务卡片以体现工作进展。

5)故事地图

故事地图是一个非常实用的组织和管理用户故事的实践。通过故事地图我们可以看到整个系统的全景图,基于这个全景图对产品需求进行有效的规划。

6)验收测试

验收测试是对软件产品行为的正式描述,通常表示为示例或使用场景。

通常验收测试使用Given,When,Then的三段式格式来进行表达。在Leangoo中,我们通过为卡片的检查项来实现用户故事的验收测试。

7)故事点估算

通过故事点来进行工作量估算是一个非常普遍的敏捷实践。故事点是一个度量单位,用于表示完成一个产品待办项或者其他任何某项工作所需的所有工作量的估算结果。敏捷估算通常使用相对估算法,即设定一个基准为一个单位(一个故事点),用待估算的故事和这个基准进行比较,得到的倍数就是估算值。估算值使用类似于斐波那契数列的数字(1,2,3,4,5,8,13…)来进行表示。Leangoo更支持故事点估算

基于Scrum敏捷的度量和统计

1)缺陷分布

Leangoo的缺陷管理和统计功能,可以对缺陷进行全方位记录与跟踪。使用缺陷分布对BUG进行分析,能够及时跟踪问题,提高团队的开发质量。

2)燃尽图

燃尽图是Scrum中的一个简单实用的团队进展跟踪的工具,能形象地展示当前迭代中的剩余工作量和剩余工作时间的变化趋势。Leangoo工具可以基于看板的变化自动生成燃尽图。

3)团队速率

4)任务分布

Leangoo持续集成、持续交付、DevOps

DevOps通过自动化的构建、部署、发布及监控实现需求的更高频的发布和反馈,是企业敏捷的重要实践。Leangoo工具深度整合集成了主流的DevOps工具链,通过Leangoo看板可以非常方便的实现持续交付流水线,做到一键构建和部署。

关注leangoo微信公众号,实时微信接收与自己相关的任务提醒。

 

 

 

2018-04-22 23:09:48 qq_21791645 阅读数 1249
  • SCRUM敏捷开发视频教程

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

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

一、定义:

1.迭代开发:在迭代开发中,整个开发工作被组织为一系列的短小的、固定长度(如3周)的小项目,被称为一系列的迭代,这叫迭代开发。每一次迭代都包括了定义、需求分析、设计、实现与测试。

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

二、区别:

1.性质不同:迭代开发是软件开发的生命周期模型,是一种开发过程;敏捷开发是多种软件开发项目管理方法的集合,是一种开发方法。这是两者最根本的区别。

2.开发方法模型不同:迭代开发对应的是瀑布模型,螺旋模型等;敏捷开发对应的是Scrum,XP(极限编程),Crystal(水晶编程)等开发方法。

3.对需求要求不同:迭代式开发适合那些需求信息不明确的项目;而敏捷开发是紧紧围绕用户需求,以用户为导向,以快速开发,快速验证,快速修正的迭代式开发打造大量精品。

三、联系:

1.开发方法:敏捷开发和迭代开发都有采用迭代的方法进行软件开发。

2.实际应用中的联系

a.敏捷开发的核心原则是拥抱变化,递增变化。迭代式开发适合那些需求信息不明确的项目,这样在开发过程中遇到需求的变化时,所带来的影响要比其他模型小。而现在的很多项目中,需求在项目进行中变化的事儿经常见,所以显得迭代式开发的优势更明显一些,这正符合敏捷开发的拥抱变化。而且迭代开发是不要求每一个阶段的任务做的都是最完美的,明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来,以最短的时间,最少的损失先完成一个“不完美的成果物”直至提交,然后再通过客户或用户的反馈信息,在这个“不完美的成果物”上逐步进行完善,这正符合敏捷开发的递增变化。

b.敏捷开发只是一个总体概念,而迭代式开发只是几乎所有敏捷开发所采用的一个主要的基础实践。敏捷开发除迭代式开发外,还包含了其他许多管理与工程技术实践,如演进式架构设计、敏捷建模、重构、自动回归测试(ART)等等。总而言之,就是敏捷开发与迭代开发是整体与局部的关系,前者就像大家庭,而后者是大家庭中的一员

c敏捷迭代开发是对用户反馈的核心功能进行规划,从最小化可用产品 的用户试用反馈,到每个功能用户参与的反馈,形成 开发 、测试、 验证的快速循环。





敏捷开发

阅读数 543

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