2017-03-06 14:50:35 datamining2005 阅读数 1434
  • SCRUM敏捷开发视频教程

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

    10428 人正在学习 去看看 CSDN讲师
敏捷开发方式能给企业和用户带来以下好处:
1. 精确。瀑布模式通常会在产品起点与最终结果之间规划出一条直线,然后沿着直线不断往前走。然而当项目到达终点时,用户通常会发现那已经不是他们想去的地方。而敏捷方法则采用小步快跑,每走完一步再调整并为下一步确定方向,直到真正的终点。
2. 质量。敏捷方法对每一次迭代周期的质量都有严格要求。一些敏捷方法如极限编程等,甚至使用测试驱动开发(test-driven development),即在正式开发功能代码之前先开发该功能的测试代码。这些都为敏捷项目的整个开发周期提供了可靠的质量保证。
3. 速度。敏捷团队只专注于开发项目中当前最需要的、最具价值的部分。这样能很快地投入开发。另外,较短的迭代周期使团队成员能迅速进入开发状态。
4. 丰厚的投资回报率。在敏捷开发过程中,最具价值的功能总是被优先开发,这样能给客户带来最大的投资回报率。
5. 高效的自我管理团队。敏捷开发要求团队成员必须积极主动,自我管理。在这样的团队中工作,每个团队成员的技术能力、交流、社交、表达和领导能力也都能得以提高。

主要的敏捷方法:
敏捷开发方法是一组开发方法的统称,主要包括以下几种:
极限编程其主要目的是降低需求变化的成本。它引入一系列优秀的软件开发方法,并将它们发挥到极致,结对编程(pair-programming)就是其中比较知名的方法之一。除此之外, 其核心做法还有小规模、频繁的版本发布、短迭代周期、测试驱动开发、持续集成、每日站立会议、共同拥有代码、系统隐喻等。
Scrum Scrum是一个敏捷开发框架,它由一个开发过程、几种角色以及一套规范的实施方法组成。在Scrum中,产品需求被定义为产品需求积压(product backlogs)。所有的产品需求积压都是从一个简单的想法开始,并逐步被细化,直到可以被开发的程度。Scrum将开发过程分为多个Sprint周期,每个Sprint代表一个2~4周的开发周期,有固定的时间长度。
精益开发精益开发的核心思想是查明和消除浪费。在软件开发过程中bug、没用的功能、等待以及其他任何对实现结果没有益处的东西都是浪费。浪费及其源头必须被分析查明,然后设法消除。精益开发的其他原则包括强调学习、在最后时刻做决定、用最快的速度交付用户等。
其他敏捷方法还包括动态系统开发方法(DSDM)、特征驱动开发(FDD)、Crystal Clear等,各种敏捷方法的区别在于它们对敏捷的不同阐释和不同侧重。理解这些方法可以帮助我们从多个角度理解敏捷开发,并且了解更多的最佳应用。

2016-08-29 15:22:41 myhead756 阅读数 5443
  • SCRUM敏捷开发视频教程

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

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

最适合App的开发模式——敏捷开发

 

传统的软件开发模式需要经历问题评估、计划解决方案、设计系统架构、开发代码、测试、部署和使用系统、维护解决方案等过程,如下图




采用传统软件开发模式的最大问题是开发周期过长,迭代速度慢。移动互联网行业发展速度快,需求不断变化,产品更新迭代的频率高,基于移动互联网的以上特点,就引入了Scrum这个敏捷开发框架。

 

Scrum简介:Scrum是一个敏捷开发框架,是一个增量的,迭代的开发过程。在这个框架中,整个开发周期包括若干个小的迭代周期,每个小的迭代周期成为一个Sprint,每个Sprint的周期建议为2~4周。在Scrum中,使用产品Backlog来管理产品或项目的需求,产品Backlog是一个按照商业价值排序的需求列表。在每个迭代过程中开发团队从产品Backlog挑选最有价值的需求进行开发。Sprint中挑选的需求经过Sprint会议上的分析、讨论和估算得到一个Sprint的任务列表,称为Sprint Backlog

 

Scrum的流程如下图↓

 

Sprint 计划会议

Sprint计划会议前,产品经理所要实现的产品需求(产品Backlog)以用户故事(即从用户的角度去描述用户所需的功能)的形式确定下来,并画出原型图,UI根据原型图完成设计稿。产品经理同时确定各个产品需求的优先级。

Sprint计划会议期间(一般为2天),开发团队的成员不应该做任何开发工作,要将全部精力放在把产品需求分解成一个个开发任务,并估算开发时间。

估算开发时间需要注意以下几点。

1、对于所需要使用的新技术,要估算学习和调研的时间。

2、根据统计,每个程序员每天的有效工作时间是5个 小时左右,其他时间都被沟通、喝水、休息、上洗手间等琐事占据,如果某个任务估算超过5个小时,那就代表了这个任务完成需要超过一天的时间。

3、开发人员对于开发任务的估算尽可能精细,一般来说,每个任务的估算时间不应该超过5个小时,如果超过5个小时,就应该把这个任务再细分为多个更小的任务。只要尽可能精细地估算任务,总体估算时间是大概精确的,因为有的任务估算的时间比实际完成的多,有的比实际完成的少。

最后根据产品经理的优先级和开发人员的估算时间,确定这个迭代周期最终的开发任务和其对应的优先级,即完成Sprint Backlog

 

日常开发

 

App开发中,App通过APIApp后台交互,后台人员可以先设计好相关的API并让API返回假数据。

开发过程中遇到任何问题,必须及时找相关人员沟通。为了保证沟通的效果,可以采用下面的方法。

1、如果不是非常紧急的问题,可以等相关人员休息的时候再沟通。

2、解决一个问题,先梳理好情绪,沟通的时候对事不对人。

Scrum中有个关键的职位“Scrum master”,Scrum master一般有技术总监担任,团队和外部的沟通必须统一通过Scrum masterScrum master的最大作用是屏蔽外部对开发团队的影响,使开发的进度和开发的效率得到保证。

在开发的过程中需要注意:一个Sprint Backlog中,需求不能变更,UI确定后原则上只能做小修改。产品有新需求,下一个Sprint Backlog再考虑。

 

每日例会

 

每日例会前,团队成员应该整理各自的任务列表,包括:

1、昨天完成了哪些任务,每个任务使用了多少时间,没完成的任务估算还要多少时间。

2、剩余的开发时间

例会中产品经理和开发团队的成员都要参加,如果可以的话,让运营人员和市场人员也参与进来,这样可以使团队每个成员都对公司的产品有个整体的了解。

每个人在例会上报告一下3方面的事情。

1、昨天做了哪些工作?

2、今天准备做哪些工作?

3、有什么工作需要其他同事配合?

注意避免在会议上讨论问题,如果真的需要讨论,请在会议后和同事讨论,不要浪费整个团队的时间。

 

测试和修复BUG

 

产品开发完成就进入测试和修复BUG的阶段。

测试人员把测试得到的问题提交到BUG管理软件,每个BUG应该包含3个部分。

1、问题描述和重新步骤

2、测试人员

3、负责解决这个问题的人员,如果测试人员不知道具体负责人,把这个问题提交给技术总监,由技术总监指定解决问题的研发人员。

 

评审会议

 

在测试和修复BUG完成后全体人员开评审会议。相关开发人员在评审会议中向全体人员演示APP的功能。

 

回顾会议

 

研发完成后开回顾会议,每个成员都在会议中提两点。

1、这轮迭代过程中做得好的地方。

2、这轮迭代过程中做得不好的地方。

这个过程走两轮,即每个成员都要提两点做得好和不好的地方。注意当一个成员提出自己的意见时,其他成员不做任何的评论。

 

及时反馈

 

可以通过建立相关QQ群收集意见,在APP中可以增加一个意见反馈的功能。

 

总结

 

敏捷开发不是万能的,敏捷开发更适用于需求多变,开发周期端的项目。


2018-02-05 11:33:03 qq_37551899 阅读数 105
  • SCRUM敏捷开发视频教程

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

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

瀑布式开发和敏捷开发是两个最具代表性的开发模式;

瀑布式开发:


特点:

1.强调文档,前一个阶段的输出是下一个阶段的输入,文档是各阶段衔接的唯一信息;

2.没有迭代与反馈,瀑布式模型对反馈没有涉及,所以对变化的客户需求非常不适应;

3.可以很方便的把握开发的进度;

敏捷开发:

以人为核心,迭代,循序渐进的开发方法,在敏捷开发中软件项目被划分为多个子项目,每个子项目都经过测试,具备集成和运行的特征;

敏捷开发宣言:

1.个体和交互胜过过程和工具;

2.软件胜过文档;

3.客户协作胜过合同谈判;

4.响应变化胜过遵循计划;



2016-05-11 17:08:18 Liukx940818 阅读数 686
  • SCRUM敏捷开发视频教程

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

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

刚接触敏捷一个月左右,看各种设计模式、TDD、scrum、xp,但是当别人问到我什么是敏捷开发的时候,还是不知道怎么去回答,所以就想着,是时候理一下这些天学习的关于敏捷的所有,在心里搭一个框架。

什么是敏捷开发?

在《高效程序员的45个习惯:敏捷开发修炼之道》中这样写道:敏捷开发就是在高度协作的环境中,不断地利用反馈进行自我调整和完善。

红色的关键字也指出了敏捷开发的三个特点:高度协作——以人为核心,不断自我调整和完善——持续集成,循序渐进,反馈——迭代开发,尽早反馈。

何为高度协作?

由于大学课程软件工程的限制,还有一些小公司的实习经历,曾一度让我以为瀑布式开发就是最正确的,一叶障目。与敏捷不同,瀑布式开发是以文档为核心的,严格遵循预先计划的需求、分析、设计、编码、测试的顺序,各个环节彼此分离,主要依靠记录的文档进行沟通,要求写详细的文档,但是,任何人在做任何事之前,都不可能预测出所有的可能性,一次性设计完美,所以可想而知,这样的开发方式,会导致整个项目周期又臭又长,问题不断,返工不断,效率低下,严重打击团队成员的积极性,工作乏味。但是敏捷开发呢,强调以人为核心,各个环节的人面对面交流,用户也参与其中,客户协作胜过合同谈判,只写必要的文档,人为可工作的软件胜过面面具到的文档,团队中所有人一起工作,不论哪个环节,有问题及时提出,沟通调整,响应变化胜过遵循计划,所以敏捷开发可以及时发现问题,防患于未然。

何为不断自我调整和完善?

敏捷开发强调开发要持续不断,只要有人使用这个软件,开发就没有真正结束。在《高效程序员的45个习惯》中这样写道:为什么要持续开发呢?因为软件开发是一件复杂的脑力劳动,任何遗留下来的问题,要么侥幸不会发生意外,要么使情况变的更糟,慢慢恶化到不可控制。面对这样的问题,唯一的办法就是持续地推进和完善项目,把问题扼杀在萌芽状态。

何为反馈?

敏捷开发将冗长的项目周期划分为一个一个短暂的小周期,每个周期都有一个可交付的产品,一个周期就是一个迭代,每个迭代的成果都要给客户演示,及时获得反馈,定期回顾,持续改进,这样小步开发,及时获得反馈,就不会出现像瀑布开发一样到最后交付出用户不满意到产品,然后再大动筋骨地改造,耗费成本。

敏捷开发的好处是什么?

从敏捷开发的特点不难看出它的好处,提高开发效率,每一次迭代都能及时获得用户的反馈,大方向不容易走错,步步为营,不用返工,效率必然提升;降低开发成本,不用返工,自然成本降低;提高产品质量,敏捷开发要求团队成员面对面工作,及时沟通,交流代码,共同进步,产品的质量自然高,也不容易出现一个人离开团队,其他人就无法接受他的工作他的代码这样的事。

怎样敏捷开发?

敏捷开发的具体方式有两种,scrumxp(极限编程)。xp有五个核心价值观:交流、简单、反馈、勇气、谦逊,xp偏重实践,成功打破了软件工程“必须重量”才能成功到观念。scrum偏重过程,是一个包括了一系列的实践和预定义的过程骨架(是一种流程、计划、模式,用于有效地开发软件)。两种方法在实际使用中可以结合使用,这里主要介绍scrum,后期补充xp。

scrum

像上面提到的,scrum是一个过程,这个过程通过一些角色的设定和配合使团队能高效工作,就像这个词的汉语意思”争球“,迅速,激情。

scrum中的角色设定

产品负责人(product owner):确定产品是否达到标准,确定发布日期及发布内容。

scrum主管(scrum master):负责scrum过程顺利进行,使整个过程收益最大化。

开发团队(scrum team):负责开发工作,一般5到10人,团队人员自我管理能力很强,每个人可能负责不同的技术。

scrum的工件

产品订单(product backlog):按照优先级排列的高层需求,有product owner负责。

冲刺订单(sprint backlog):要在冲刺中完成的任务清单,一个sprint通常为2~4周,就是一个迭代,冲刺订单记录了本次迭代要完成的工作以及具体安排。由scrum team制定,越细越好。

冲刺燃尽图(burn down chart):在冲刺长度上显示所有剩余工作时间逐日递减的图。

scrum的活动

计划会(sprint planning meeting):在每个冲刺之初,由产品负责人讲解需求,并由开发团队进行估算的计划会议。
每日立会(daily standup meeting):团队每天进行沟通的内部短会,站立参加,因为站立可以避免在椅子上打盹儿,事实上是比坐着效率高,一般只有15min左右。
评审会(review meeting):在冲刺结束前给产品负责人演示并接受评审的会议。
回顾会(retrospective meeting):在冲刺结束后关于自我持续改进到会议。

scrum工作周期图


2015-04-03 15:15:35 u010121676 阅读数 318
  • SCRUM敏捷开发视频教程

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

    10428 人正在学习 去看看 CSDN讲师
                           敏捷的价值观
  1. 个体和交互 胜过 过程和工具
  2. 可以工作的软件 胜过 面面俱到的文档
  3. 客户合作 胜过 合同谈判
  4. 响应变化 胜过 遵循计划

敏捷开发是迭代的过程,是对传统瀑布式开发模式一种颠覆,每次迭代结果都应该是一个可以交付的产品,迭代的周期尽可能的短,迭代顺序先是重要的功能或风险大的模块,提倡研发人员和客户交流不断获取用户最新需求,随着迭代次数增加功能得到不断的细化、完善,这些特点可以增强产品对市场需求的适应能力,这难免对软件架构设计要求很高,代码需要不断的重构,而且要求一套不断完善的测试驱动程序来保证安全的重构过程。

敏捷开发流程总结

阅读数 12563

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