2017-03-24 10:08:51 u012562943 阅读数 1147
  • SCRUM敏捷开发视频教程

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

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

1,提要
软件开发是一个系统工程,包括最初的可行性分析、再到设计、开发、测试、维护等整个生命周期。在这个过程中某些阶段的失误或说是变化,都可能增加整个软件项目的风险。
如何在保证效率的基础上还能安计划、保证质量的完成软件项目?于是产生了软件开发的一些方法,这个方法不是指具体有编码阶段的各种设计模式和技巧,而是在整个软件开发策略层面的方法。
传统瀑布模式和新型的敏捷开发就是其中最常用的方法,后面着重讨论敏捷开发的优缺点和敏捷开发的基础知识。
2,常用的开发模式
(1)传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到交付大概这样的流程,要求每一个开发阶段都要做到最好。特别是前期阶段,设计的越完美,提交后的成本损失就越少。下面就是典型的瀑布模型。


认识敏捷开发
(3)原型模型,原型化模型第一步就是创建一个快速原型,能够满足项目干系人与未来的用户可以与原型进行交互,再通过与相关干系人进行充分的讨论和分析,最终弄清楚当前系统的需求,进行了充分的了解之后,在原型的基础上开发出用户满意的产品。
(3)螺旋模型,将瀑布模型和快速原型模型结合,并特别强调项目风险。通常分为四个阶段组成:制定计划、风险分析、实施工程和客户评估。一般第一个原型只是双方交流的参考,随着后面的版本完善,最终达到目标。比较适合大型项目。
(2)新型的敏捷开发,即迭代式开发,不要求非常完美的需求分析、设计、文档,而是在最短时间内完成一个框架,然后不断迭代,不断测试,直至交付。
但它并不是不需要文档,不需要从需求、设计、开发、测试这样一个过程,在每个迭代过程中仍然需要做这样的事情。
但是敏捷开发更加注重人的因素,不像瀑布式开发那样,由专门的需求人员采集用户需求,由设计师完成设计文档。敏捷开发每个人都是需要了解项目的需求,并不断的进行小会议,不断的测试修改,直到提交。
敏捷开发则是以测试驱动开发,而瀑布式开发是以文档驱动开发。
下图是Scrum(敏捷开发的一种)敏捷开发模式


认识敏捷开发
3,传统开发模式和敏捷开发的优缺点
主要对比比较常用的瀑布模型和敏捷开发。
(1)瀑布式开发:
a.讲求阶段明确,严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。使用里程碑的方式,严格定义了各开发阶段的输入和输出。如果达不到要求的输出,下一阶段的工作就不展开。 软件生命周期前期造成的Bug的影响比后期的大的多。
b.特别强调文档,在开发的后期才会看到软件的模样。在这种情况下,文档的重要性仿佛已经超过了代码的重要性。
c.流水式的开发,瀑布模型把开发人员定义为流水线上的工人。由于各阶段的开发人员只能接触到自己工作范围内的东西,所以对客户需求的理解程度高低不等。对于客户需求变更,编码人员会比设计人员更容易产生很强的抵触情绪。当然好的方面就是按一定规范开发,如果有人员流失,短时间内可以补上去,除了核心的东西有文档参考外,开发过程本身就是在一定框架内的。
d.进度一目了解,瀑布模型产生的管理文档(计划书,进度表)等,能让不太了解该项目的人也能看懂项目的进度情况(只有能看懂百分比就行),很适合向领导汇报用。所以管理人员比较喜欢瀑布模型,但是开发人员不喜欢,因为它束缚了开发人员的创造性。
(2)敏捷开发
a.唯快不破,敏捷即是快之意,不仅思维快节奏,而且行为也是快节奏,因上受到当今快节奏社会的喜爱。
b.以人为本,和瀑布开发对应的文档为主来说,在敏捷开发中更强调人,在细节开发上个人可以发挥主观性,使用自己善长的技术和模式开发,而非机器式的开发,容易激发团队成员兴趣和创造力。除了项目参与者,人的因素中更考虑到与客户的沟通。每个成员都需要从沟通中,会议交流中,不断实现迭代。
c.结果第一,不强调文档,突破束缚,软件的最终结果才是重点,文档等都是为软件开发本身服务的,完成了一个优秀的、质量可靠的软件才是敏捷开发的重中之重。
d.迭代开发,迭代是敏捷开发的核心,不断迭代测试的过程,实际上就是精益求精的过程,正和现在这个社会的工匠精神相吻合。
e.整合不易,快速迭代,就需要分割整体业务,对于复杂的客户需求,如何兼顾分割与整体,并不容易,这个需要在项目设计之初考虑到。
4,敏捷开发管理方法
敏捷开发的管理方法有很多种,比较广泛应用的有XP、Scrum等。既然都是敏捷开发,他们都有共同点,强调高速响应变更、以人为主重视团队成员自身发展,倾向采用迭代式的软件开发生命周期模型。
敏捷开发中,XP和Scrum的区别:
a.迭代周期不同,XP的每个Sprint(冲阶)的长度大概为1~2周,而Scrum为2~4周。
b.迭代周期内专一性不同,XP在一个迭代中,如一个User Story(用户素材,也就是一个用户需求)还未实现,可以考虑另外需求替换,原则是时间当量相等。而Scrum不允许这样,一旦迭代开发会毕,任何需求不允添加进入,并有Master严格把关,使团队不受干扰。
c.User Story优先级机制不同,XP必须遵守优先级(当然需要先确实优先级),Scrum更灵活,可以不遵循优先级。比如依赖关系中,虽然 US-A高于US-B,但由于要完成A需依赖B,则需要先开发B。
d.实施中是否采用工程方法问题两者做法不同,Scrum这点上没有工程实践处方,体现的是以人为本,自我创造;而XP必须严格按TDD,自动测试,结对编程,简单设计,重构等约束团队,似乎看起来XP的方式束缚了团队,但需要看这个约束的程度,过细则会让人感觉与“以人为本,自我创新”思想不符,但优点就是一定程度上的规范更有利于保证软件质量。
一个让人困惑的矛盾, 因为xp的理念,结合敏捷模式,表达给团队的信息是“你是一个完全自我管理的组织, 但你必须要实现TDD, 结对编程, ...等等”
通过区别,看出: Scrum非常突出Self-Orgnization, XP注重强有力的工程实践约束
5,总结
通过了解传统瀑布开发模式和新型敏捷开发模式的差异,理解敏捷开发的在现在快节奏时代有更好的适用性:唯快不破,以人为本。

2013-08-18 12:01:19 baodinglaolang 阅读数 6124
  • SCRUM敏捷开发视频教程

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

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

原创作品,转载请注明出处http://blog.csdn.net/baodinglaolang/article/details/10042857

android 敏捷开发系列(二)——《敏捷开发架构图》


书接上回,首先奉上敏捷开发的架构图



首先为大家解释里面的几个概念


Frame 整个项目的框架、组织者。里面并没有实际的代码,只是通过配置文件决定了项目需要哪几个模块

Model 模块,项目的组成部分,通常表示单一或部分功能集合

Component 组件,包含Model的UI以及需求逻辑,在android敏捷开发中包含(Activity、Service、BroadCast Receiver、Provider

Lib lib库,为Component提供了具体的实现,封装了其需要的各种方法


从图中我们看到,

首先Frame包通过配置文件决定项目的模块,这样来满足我们上话提到的各种需求,

此处的Model是我强加来的,其实Frame只需要依赖Component即可以构成项目,因为从依赖链看往往Component会依赖一个特定Lib,但是从逻辑看Component + Lib才完整。所以建议大家把Component + Lib想象成一个Model。

然后每一个模块又通常被分为独立的组件和Lib,这样的好处很明显,通常变化的只有组件,而Lib一但完成只需要维护其稳定即可,当项目界面需要大变化的或需要我们向三方提供此模块功能的时候可以直接提供此Lib,也就是我们说的SDK

最后是我们项目积累封装好的各中jar包,例如图上提到的HTTP、FILE等工具类,可以直接被依赖进来,提高了复用率,我们还可以随时丰富其接口,供大家使用。


敏捷开发的的架构基本是这样,他充分体现了灵活、高效,怎么样,赶快阅读博主的第三篇《android 敏捷开发 环境搭建》,一起开始我们的敏捷开发之旅!

传送门

android 敏捷开发系列(一)——《啥是敏捷开发

android 敏捷开发系列(三)——《环境部署》
2014-04-14 21:36:45 happylee6688 阅读数 8058
  • SCRUM敏捷开发视频教程

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

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

由来


为什么是Scrum?Scrum原本的意思是橄榄球运动的一个专业术语,指:“在橄榄球比赛中,双方前锋站在一起紧密相连,当球在他们之间投掷时他们奋力争球”。在敏捷开发系列中,把一种开发流程命名为Scrum,其实就意味着,这种敏捷开发的流程,就像是大家在一起打橄榄球,敏捷的动作、富有战斗的激情、人人你争我抢的拼搏精神。这些无一不是现在开发中迫切需要的东西。




概念


什么是Scrum?Scrum是一种灵活的软件管理过程,它可以帮助驾驭迭代、递增的软件开发过程,主要用于产品开发或工作管理。Scrum于1995年提出,并在2001年同其他方法论一起组成“敏捷联盟(Agile Alliance)” 。Scrum提供了一种经验方法,它使得团队成员能够独立地,集中地在创造性的环境下工作。


特点

  • 敏捷的流程,可用于管控研发工作
  • 现有设计流程的总结
  • 以团队为基础,是一种在需求迅速变化情况下迭代的、增量的开发系统和产品的方法
  • 控制由利益和需求冲突导致混乱的流程
  • 改善交流、协调合作的最优方式
  • 检测产品开发和生产过程中障碍并将其去除的方式
  • 最大化生产率的一种方法
  • 适用于单一的项目到整个组织。Scrum可以控制并组织多件具有相关性的产品开发以及拥有超过千名开发者和执行者的项目实施过程。 
  • 让每个参与者都对自己所做的工作以及自己做出的贡献感到骄傲,并让他们发挥到最佳水平。 


Sprint(迭代)

  • Scrum的项目过程由一系列的Sprint组成
  • Sprint的长度一般控制在2~4周
  • 通过固定的周期保持良好的节奏
  • 产品的设计、开发、测试都在Sprint期间完成
  • Sprint结束时交付可以工作的软件
  • 在Sprint过程中不允许发生变更


开发流程


Scrum敏捷开发,是对流程控制比较严格的。每个环节都有一套完整的过程和严格的时间控制,我们项目组的主要开发过程如下图所示:



角色


ScrumMaster

  • 保证Scrum团队可以遵守Scrum的价值,实践和规范
  • 帮助Scrum团队和组织采用Scrum模式进行项目流程组织
  • 指导并带领团队变得更加高效,实现更高质量
  • 保护团队不要受到外界因素的干扰
  • 保证各个不同角色之间的良好协作,消除障碍
  • 帮助PO更好的利用团队的能力
  • 不要管理团队

产品负责人PO(Product Owner)

  • PO是一个人并只能由一个人来担任
  • 负责管理产品待办事项表(Product Backlog)并保证其对于客户和团队保持透明度
  • 对产品待办事项表进行优先级排序
  • 与团队一起来进行工作量估算
  • 对于项目的成功负责并保证投资回报率(ROI)

团队Team

  • 最佳团队大小:5~9人
  • 多功能团队:程序员,测试人员,设计师,数据库管理员和架构师
  • 保证团队成员全职参与开发
  • 自我管理,没有头衔之分,不组建子团队
  • 成员更替只能在迭代之间进行,更佳方式是在发布之间进行
需要注意的是,第三点提到的全职参加是指完成了分配到的任务额即为全职参加。并不是指全程参加。


迭代会议


每日站立会议

  • 站立进行
  • 在固定的时间,固定的地点
  • 问题:你昨天完成了哪些工作?今天要完成哪些工作?遇到了什么困难?
  • 仅仅作为信息沟通用途,不解决任何问题
  • 不向任何人汇报
  • 15分钟

迭代计划会议

  • 进行迭代规划
  • PO向团队介绍Product Backlog
  • 团队在PO的协助下充分了解Product Backlog
  • 确定迭代目标和迭代合约
  • 对Product Backlog进行细分并创建Story(一个具体的任务)

迭代评审会议

  • 团队展示完成的功能并收集反馈
  • 对未完成的功能进行描述并说明原因
  • PO接受/不接受当前迭代
  • 邀请所有人,包括客户参与
  • 4小时

迭代回顾会议

  • 哪些做的好
  • 哪些做的不好
  • 哪些可以改进
  • 进团队成员参与
  • 4小时

项目管理工具

  • 禅道
  • JIRA
  • 其他。。。

在项目初期,我们用到的管理工具是国内的一款开源软件——禅道,在项目初期,这款软件还是很强大的。开发团队在迭代计划会议中细化Product Backlog中的任务,生成一个个小的Story,然后由PO把这些Story更新到项目管理工具上(禅道)。

然后组员登录该系统,根据喜好选择并领取任务,需要注意的是,每个成员可以领取多个任务,但每天只能有一个任务是“处理中”状态,这能确保组员能够专心完成某一个任务,而不用三心二意。如果这个任务和其他任务有依赖,则可以与PO协商之后,把该任务先改为“挂起”状态,开始另一个任务。

随着开发的进行,我们的管理工具由禅道换成了JIRA,对于Scrum来说,JIRA更加的适合一些,因为JIRA在设计理念中就已经包括了Product Backlog、Sprint、Story等这些元素。同样的,由PO建立Story,组员去自由选择领取喜欢的Story进行开发。



适用的项目 


刚刚了解Scrum的朋友,经常会有这样的疑问:到底什么样的项目适合使用Scrum呢?我们也一直在探讨。首先,我们来看一下关于过程的定义。过程控制通常有两种形式,一种是预定义过程,另一种则是经验性过程。

预定义过程

  • 每一项工作都可以被完全理解
  • 给予合理的输入定义,每次便可以得到相同的输出
  • 过程启动后,允许运行直到结束,每次运行产生相同的结果
预定义过程的示例比如:生产混凝土的过程,只要原料配比确定,加入的顺序以及搅拌动作、搅拌时间确定,那么产出的结果将完全一样。

传统的瀑布开发模式是基于预定义过程来设计的。

经验性过程

  • 过程是不能够完全预定义好
  • 结果是不可预知的
  • 生产过程是不可重复的
  • 通过不断的检查和调整使得过程能够产出我们需要的结果
经验性过程的示例比如:一场足球赛,我们不可能规定好每个人的动作,我们也不能预测比赛的结果,我们只能通过激励,通过不断检视和调整团队,让他们发挥到更好的水平,以达成战胜对手的目标。

Scrum是一个经验性过程,它的核心是在项目的整个过程中提供给项目的参与者以及干系人高度的透明性,基于透明性来进行不断的检查和调整,通过不断的检查和调整持续的优化过程和产出结果,提升团队交付能力,以此达到按时交付高质量的,客户真正需要的产品。

适合管理复杂的项目


基于上述的对比,显而易见的是管理这种复杂的项目,我们不可能在一开始把整个的过程预先定义好,项目的结果如何,我们也很难再一开始就完全预知,项目存在很多的不确定性,整个项目过程也是不可能重复进行的。所以,管理这样的项目需要使用Scrum这样的经验性的过程来达到更好的效果。


一点经验


关于迭代计划会议


在Scrum敏捷开发中,迭代计划会议是项目开始之前很重要的一个会议,它决定了项目能否顺利的执行下去。而且,在迭代计划会议上,PO、架构师、开发小组成员要对Product Backlog中的需求进行细化分解,分解成最小的任务,最好是彼此没有依赖(期望值,一般这个很难实现)。任务越小,完成每一个任务花费的时间也就会越少。在分解任务时,需要小组成员给该任务评估开发时间,即用多长时间能够完成该任务(Story)。

开发中的沟通问题


在开发中,组员之间、组员与ScrumMaster之间、以及组员与客户之间的沟通是相当重要的,如果在开发中,遇到什么不确定的需求或者问题,要及时的与ScrumMaster反应,以免做一些无用之功,时间对于Scrum成员来说是很宝贵的。ScrumMaster应该确保每个成员每天的有效工作时间,为每一个成员排除一切阻碍他们开发的困难,及时发现,及时沟通,及时解决。


结语


最后,说一点别的东西。就目前软件开发的现状来说,需求的变更是很平常的事情,初期客户由于不了解自己具体所要的系统,而描述的不清楚,但随着开发的进行,随着沟通的增多,客户会越来越清楚想要开发的系统,因此在开发中经常会变更需求。

对于变更需求,传统的开发方式已经很难应对这种情况了。而敏捷开发就是应对这种需求变更最好的方式,以最小的核心需求进行开发,同时每一个迭代之后,都会以最新的需求作为目标,因此每一个迭代都会与客户的目标很接近,最终会完美的交付客户需求的系统。这就是敏捷开发的魅力所在,以最小的代价,完成最伟大的作品。

2014-02-27 22:49:00 happylee6688 阅读数 4102
  • SCRUM敏捷开发视频教程

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

    10414 人正在学习 去看看 CSDN讲师
     乍一听,“敏捷开发”这个词很新鲜,其实不然。早在2001年2月,就作为一种相对新颖的产品开发模式,提出了“敏捷开发”这一概念。到底什么是“敏捷开发”呢?

诞生

     也就是2001年的2月(没有考据),有17名之多的软件工程师在美国犹他州的Snowbird举行会议,讨论轻量级软件开发方法,并发布了《敏捷软件开发宣言》。这标志着敏捷开发的诞生。这一模式随后被硅谷创业公司大量应用,并于近几年被引入国内,让中国的工程师们有机会接触这一新奇的开发模式。

敏捷宣言

  • 个体和交互重于过程和工具
     敏捷方法认为,人是软件开发中最重要的因素,开发团队要能做到团结协作,人与人面对面的交流、沟通,是最快速、最有效的途径。
  • 可以工作的软件重于面面俱到的文档
     文档的意义在于为程序服务,过多的文档需要开发人员花费大量的时间去维护,而且还要确保文档与代码的实时性,否则就失去了文档的意义。而问题也就在于,开发人员没有把时间、精力放到最重要的任务上,能力、资源没有最大化的发挥效能。敏捷方法认为,文档应当短小精悍、易于维护,而且主题突出。
  • 客户协作重于合同谈判
     做过软件开发的人都知道,客户对产品的需求是不断变化的,试图一开始就规定项目的细节和进度,显然是不现实的,只有开发团队和客户彼此精诚合作,常与沟通,频繁的客户反馈,才能促使项目的成功。
  • 随时响应变化重于循规蹈矩
     客户的需求在产品的开发阶段是不断变化的,即使谈判时确定的需求,也可能会根据某些因素而发生巨大的改变。因此,敏捷方法认为,在制定计划时应尽可能的简洁、灵活,以适应技术和需求方面的变动。当然,所有的未知的因素是不可能考虑周全的,这就要求我们在制定计划时,留出一定的缓冲期,来应对这些未知情况。

核心思想

     说了这么多,到底什么是“敏捷开发”呢?其实,简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目经常被拆分为多个子项目或多个步骤来完成,而一个步骤又称为一次迭代,在每一次迭代完成之后,都会产生一个可交付的产品。这样做有效的分解了整个项目的复杂度,便于实现产品交付目标,同时在项目的早起,就能拿出初具雏形的产品。
     敏捷开发方法的核心思想概括起来,就是“以人为本”和“适应变化”。
  • 以人为本
     敏捷方法认为,人是软件开发中最重要的因素。对于人来说,软件开发应该是一种愉快而又轻松的事情,它们注重调动自我的能动性,以积极、愉悦、乐观的心态完成开发,并培养人的自豪感。敏捷开发的理念是充分的信任开发团队能够很好的完成任务,这是管理的中心主题。
  • 适应变化
     传统的软件开发强调的是,足够清晰的需求,制定详细的文档,按照预定的计划逐一进行开发、测试。这样的方式在制定好计划之后拒绝变化,无法应对客户对需求的实时更改,后续的维护必将会付出巨大的代价。
     而敏捷方法则是以最简的方式来迎接变化,客户在整个开发过程中都是参与者,开发团队能够在最短的时间内得到客户的反馈,不断适应需求的变更,从而使得最终的产品能够充分的符合客户的要求。

管理工具

     俗话说,工欲善其事,必先利其器。没有一个好的工具,事倍功半是必然的。目前,已经有一些项目管理工具用于敏捷开发,可以用他们来帮助规划、跟踪,分析和整合工作。
     这些工具在敏捷开发中扮演着重要的角色,也是知识管理的一种方法。通常包括:版本控制整合,进度跟踪,工作分配,集成发布,迭代规划,论坛和软件缺陷的报告和跟踪。
     我们项目中用到的两款项目管理工具,其一是国内的公司出品的Web版的开源软件——禅道(ZenTao),它集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,是一款专业的研发项目管理软件,完整地覆盖了项目管理的核心流程。还有一款是国外的Atlassian公司出品的项目与事务跟踪工具——JIRA,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。

方法

  • XP
  • SCRUM
  • Crystal Method
  • FDD
  • ASD
  • DSDM
  • RUP
  • LD

结束语

     由于我也是第一次接触敏捷开发,我将与大家一同学习敏捷的真谛,在项目中运用敏捷的思想,真正做到开发敏捷、思维敏捷。在这个关于敏捷开发的系列之旅中,第一站主要是简单的介绍了一下敏捷开发,让大家对他有一个整体的了解。
     后续的文章,我会结合各个不同的敏捷方法,同时在项目中吸收的经验、教训,都会与大家一起分享,一同来探讨有关敏捷的真谛。

2013-07-27 17:24:47 baodinglaolang 阅读数 7536
  • SCRUM敏捷开发视频教程

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

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

原创作品,转载请注明出处http://blog.csdn.net/baodinglaolang/article/details/9530695


说起敏捷开发,大家或多或少会有些印象。而在android上的敏捷开发可能还并未普及。

博主将与大家共同讨论一起交流android上的敏捷开发、框架搭建等知识。

本博将通过   讲解敏捷开发概念->敏捷开发架构思想->开发环境搭建->项目源码敏捷开发构建、拆分 等逐步带您走进android敏捷开发的世界。

学敏捷开发,开启 架构师之路..(夸张了呵呵,其实没有,这是基础)

注:本系列基于 maven、nexus、hudson、git等工具实现。

首先让我们了解一下什么是敏捷开发。

什么是敏捷开发

简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

--摘自百度百科

博主认为其核心是:原子+稳定+复用=敏捷开发。拿实际项目来说,稍大一点的项目可能涉及到多种功能多种发行版本

以下可能是您的现状:

1.所有源码在一个工程,臃肿庞大,命名各异

2.每次都为分布在各地的工具方法而整篇的查找项目源码

2.为客户BT的需求一遍又一遍的拆分、整合那些固化功能

3.为新的产品开发copy旧的代码无限复制粘贴

4.在旧版本fix bug后呆呆的把变更一遍又一遍的在高版本上修复(也许还忘记修复)

5.浪费大量的时间在每次编译整个项目上(编译整体项目可能需要数分钟,而编译单模块也许只需要数十秒)

6.com.xxx.xxx.A.java,这TM到底是那个功能的类(挨个问同事吧)

7.不知到如何提升自己

如果您有以上困扰,很好,因为春天很快就要到了,因为我们有敏捷开发。


敏捷开发带给我们什么

1.清晰框架结构

2.高度复用接口

3.灵活的模块组合

4.高速稳定的产品迭代

5.UI与逻辑的解藕

6.低廉的维护成本


举例来说:

某网聊软件(可想像成微信)中功能包括

1.文字、语音通讯

2.联系人管理

3.朋友圈

4.摇一摇

5. ....

多个功能在项目中很容易分成多个模块来交给工程师实现,普通的工作方法我们不再赘述,试想一下,如果这每个功能看作一个模块,每个模块可独立运行并且可以被任意项目集成,那么,也许公司的音乐播放器项目加入朋友圈说不定也不错呢,而这一切只需要配置一些xml而已。


敏捷开发设计到的很多,为了让大家从概念到操作了解清晰,请关注博主第二篇《项目敏捷开发架构图》


传送门

android 敏捷开发系列(二)——《敏捷开发架构图》

android 敏捷开发系列(三)——《环境部署》

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