2019-06-24 19:54:47 qq_42539533 阅读数 58
  • Android开源项目实践之UI篇

    本课程主要展现了如何利用Android开源代码进行app的开发。例如: 1.异步网络请求(android-async-http); 2.百变圆形滚动条(ProgressWheel);3.滑动导航栏(PagerSlidingTabStrip);4.瀑布流与上拉刷新,下拉加载完美结合(PinterestLikeAdapterView)...

    21107 人正在学习 去看看 李忠义

什么是敏捷开发

在这里插入图片描述

一、概念

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

敏捷开发最大的特色就是迭代式开发

二、优势

在这里插入图片描述

  1. 敏捷开发属于增量式开发,对于需求范围不明确,需求变更较多的项目而言,可用很大程度上响应及拥抱变化。
  2. 对于互联网产品而言,市场风向转变很快,需要一种及时快速的交付方式,而敏捷开发则能更好地适用于此。
  3. 敏捷开发科最大程度的体现 80 / 20 法则的价值,通过增量迭代,每次都优先交付那能产生 80% 价值效益的 20% 的功能。能最大化单位成本收益。

三、误区

在这里插入图片描述

四、特点

在这里插入图片描述

五、核心原则

在这里插入图片描述

六、敏捷开发与瀑布模型开发的区别

敏捷开发:

  • 客户到餐厅点菜(新项目)
  • 不确定客户想吃什么的时候,通常选好餐厅后先看看餐厅的菜单(客户往往提不出具体的需求)
  • 根据图文菜单,客人点了个菜(根据原型和设计稿,基本确定了需求)
  • 后厨开始准备(项目启动)
  • 配菜、炒菜,先上了两盘,让客户尝了尝味道(先提供可用实例给客户用)
  • 客户觉得还不错,后厨继续准备后面的菜。陆续上菜(不断迭代,不断测试)
  • 上菜过程中,客人突然发现有个菜味道太淡了,让后厨加了点盐又端了上来(敏捷开发的好处,可用不断测试和需求变更)
  • 又上了两盘,不够辣,又拿到后厨加了辣(敏捷的坏处,需求没有提前明确,反复迭代,增加了工作量)
  • 到最后两盘时,客户要求换两个菜,还没炒好(迭代的好处,随时接受需求变更)
  • 客户吃完,很满意(基本满足了全部要求)

瀑布模型开发:

  • 客户到餐厅来点菜(新项目)
  • 不确定客户想吃什么的时候,通常选好餐厅之后看餐厅的菜单(客户往往提不出具体的需求)
  • 根据图文菜单,客户点了十个菜(根据原型和设计稿,基本确定了需求)
  • 后厨开始准备(项目启动)
  • 根据客户的下单配菜,炒菜(基本上不会主动去了解完整需求)
  • 半个小时了,菜还没上,客户饿极了(项目启动后很长一段时间客户什么都看不到)
  • 再过了二十分钟,十个菜都一起上来了(项目最终一次交付)
  • 客户说,有几个菜挺好的,但是有个菜味道淡了,有两个不够辣,还有两盘重复了想换掉(我是买单的,我要变需求)
  • 这时,大堂经理来了,说味道淡了可以加盐,不辣可以加辣,但是换菜不行(瀑布模型的坏处,需求变更比较麻烦)
  • 于是,后厨只给客户加了盐,加了辣
  • 客人吃完,不是很满意,下次不来了(没有满足需求)

七、总结

总的来说,在现在管理项目过程中,并没有严格的按照完全的敏捷或者完全的瀑布模型,都是各自掺杂了其他的方式。在实际项目过程中,过于强调模式并没有意义,重要的是能不能预防问题的发生,在问题发生之后能不能用最小的成本解决,模式更多的起一个参考作用

    

2018-03-07 09:41:50 W2_Pan0125 阅读数 987
  • Android开源项目实践之UI篇

    本课程主要展现了如何利用Android开源代码进行app的开发。例如: 1.异步网络请求(android-async-http); 2.百变圆形滚动条(ProgressWheel);3.滑动导航栏(PagerSlidingTabStrip);4.瀑布流与上拉刷新,下拉加载完美结合(PinterestLikeAdapterView)...

    21107 人正在学习 去看看 李忠义

传统瀑布式开发:
这里写图片描述
敏捷式开发
这里写图片描述
敏捷式开发优势

  • 拥抱变化
  • 进度可见
2019-08-06 17:46:05 qq_33189961 阅读数 139
  • Android开源项目实践之UI篇

    本课程主要展现了如何利用Android开源代码进行app的开发。例如: 1.异步网络请求(android-async-http); 2.百变圆形滚动条(ProgressWheel);3.滑动导航栏(PagerSlidingTabStrip);4.瀑布流与上拉刷新,下拉加载完美结合(PinterestLikeAdapterView)...

    21107 人正在学习 去看看 李忠义

目录

什么是敏捷

什么是敏捷开发

敏捷宣言

敏捷宣言12条原则

敏捷开发的优势

瀑布模型开发

敏捷开发


什么是敏捷

Agile(敏捷)来源于敏捷宣言,宣言明确指出,“敏捷”:

  • 不是一种方法论
  • 也不是开发软件的具体方法
  • 更不是一个框架或者过程

“敏捷”是一套价值观(理念)和原则,帮助团队在软件开发过程中更好地做出决策。

 

什么是敏捷开发

简而言之就是遵循了“敏捷”这一开发原则的开发方法,敏捷并不意味着一味强调速度,而是轻量和高效

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

敏捷开发流程如下:

 

敏捷宣言

  • 个体和互动   高于    流程和工具
  • 工作的软件   高于    详尽的文档
  • 客户合作       高于    合同谈判
  • 响应变化       高于    遵循计划

注:这并不意味摒弃了右边的原则,而是应该更加注重左边的原则。

 

敏捷宣言12条原则

  1. 最重要的是通过尽早和不断交付有价值的软件满足客户需要。
  2. 我们欢迎需求的变化,即使在开发后期。敏捷过程能够驾驭变化,保持客户的竞争优势。
  3. 经常交付可以工作的软件,从几星期到几个月,交付时间尺度越短越好
  4. 业务人员和开发者应该在整个项目过程中始终朝夕在一起工作
  5. 围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务。
  6. 在开发小组中最有效率也最有效果的信息传达方式是面对面的交谈
  7. 可以工作的软件是进度的主要度量标准
  8. 敏捷过程提倡可持续开发。出资人、开发人员和用户应该总是维持不变的节奏。
  9. 对卓越技术与良好设计的不断追求将有助于提高敏捷性。
  10. 简单——尽可能减少工作量的艺术至关重要。
  11. 最好的架构、需求和设计都源自自我组织的团队。
  12. 每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。

比如就“简单”和“尽早交付”而言:

当我们在构建某个功能时,发现其可能会需要数据库支持,一般情况下我们会去构建数据库并为其编码,然而敏捷认为:为这个功能构建数据库就意味着要浪费很多时间,软件就不得不延迟交付给客户,如果能找到一种替代的简单方法完成该功能,那就更符合我的敏捷原则。

但是敏捷原则并不是让我们盲目模仿,应当结合实际情况和敏捷的价值理念做出正确决策。比如scrum可能倡导小组会议站着开,但是如果结合实际情况也可以完全选择适合自己的方式开会,坐着更高效就坐着,切记盲目模仿一些成功的敏捷案例。

 

敏捷开发的优势

相比于瀑布模型:

瀑布模型开发

  1. 客人到餐馆来点菜(新项目)
  2. 不确定客户想吃什么的时候,通常选好餐厅后会先看看餐厅的菜单(客户往往提不出具体的需求)
  3. 根据图文菜单,客人点了十个菜(根据原型和设计稿,基本确定了需求)
  4. 后厨开始准备(项目启动)
  5. 根据客人的下单配菜,炒菜(基本上不会主动去了解完整需求)
  6. 半个小时了,菜还没上桌,客人饿极了(项目启动后很长一段时间客户什么都看不到)
  7. 再过了二十分钟,十个菜都一起上来了(项目最终一次交付)
  8. 客人说,有几个菜挺好的,但是有个菜味道淡了,有两个不够辣,还有两盘重复了想换掉(我是买单的,我要变需求)
  9. 这时候大堂经理来了,说,“味道淡了可以加盐,不辣可以加辣,但是换菜不行,已经炒好的那两盘菜也是要算成本的”(瀑布的坏处,需求变更比较麻烦)
  10. 于是,后厨只给客户加了盐,加了辣
  11. 客人吃完,不是很满意,下次不来了(没有满足需求)

敏捷开发

  1. 客人到餐馆来点菜(新项目)
  2. 不确定客户想吃什么的时候,通常选好餐厅后会先看看餐厅的菜单(客户往往提不出具体的需求)
  3. 根据图文菜单,客人点了是个菜(根据原型和设计稿,基本确定了需求)
  4. 后厨开始准备(项目启动)
  5. 配菜、炒菜,先上了两盘,让客人尝了尝味道(先提供可用实例给客户用)
  6. 客人说还不错,后厨继续准备后面的菜,陆续上菜(不断迭代,不断测试)
  7. 上菜过程中,客人突然发现有个菜的味道太淡了,让后厨加了点盐又端上来了(敏捷的好处,可以不断测试和需求变更)
  8. 又上了两盘,不够辣,又拿到后厨加了辣(敏捷的坏处,需求没有提前明确,反复迭代,增加了工作量)
  9. 到最后两盘时,客人要求换两个菜,还好没炒(迭代的好处,随时接受需求变更)
  10. 客人吃完,很满意(基本满足了全部的要求)

 

总结:在理解了“敏捷”的价值和原则后,将其带入到软件开发过程中做出正确的决策,就是所谓的敏捷开发了。


参考:

  1. https://www.cnblogs.com/itbuyixiaogong/p/9056918.html
  2. https://baike.baidu.com/item/%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91/5618867?fr=aladdin#8
  3. https://zhuanlan.zhihu.com/p/33472102
  4. https://www.bilibili.com/video/av22511095/?spm_id_from=333.788.videocard.0

 

 

2013-05-27 17:02:44 liao3841054 阅读数 1204
  • Android开源项目实践之UI篇

    本课程主要展现了如何利用Android开源代码进行app的开发。例如: 1.异步网络请求(android-async-http); 2.百变圆形滚动条(ProgressWheel);3.滑动导航栏(PagerSlidingTabStrip);4.瀑布流与上拉刷新,下拉加载完美结合(PinterestLikeAdapterView)...

    21107 人正在学习 去看看 李忠义

1 Scrum VS 瀑布模型,Scrum优势明显
2 Scrum被众多知名企业应用,成功项目众多,有借签意义 
3 调查机构研究表明Scrum最受企业推崇


传统软件开发瀑布模型



Scrum敏捷开发方法





瀑布VS Scrum
     






2018-12-24 20:27:45 weixin_43898433 阅读数 334
  • Android开源项目实践之UI篇

    本课程主要展现了如何利用Android开源代码进行app的开发。例如: 1.异步网络请求(android-async-http); 2.百变圆形滚动条(ProgressWheel);3.滑动导航栏(PagerSlidingTabStrip);4.瀑布流与上拉刷新,下拉加载完美结合(PinterestLikeAdapterView)...

    21107 人正在学习 去看看 李忠义

敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。而迭代开发是一种软件开发的生命周期模型,与其对应的还有瀑布模型、螺旋模型等等。
简单来说,迭代模型是敏捷开发普遍使用的软件生命周期模型,敏捷开发所包含的内容比迭代模型宽泛的多。
敏捷开发的宣言:
1,个体和互动 高于 流程和工具。
2,工作的软件 高于 详尽的文档。
3,客户合作 高于 合同谈判。
4,响应变化 高于 遵循计划。

也就是说,尽管右项有其价值,我们更重视左项的价值。
敏捷开发的原则:
1,最重要的是通过尽早和不断交付有价值的软件满足客户需要。
2,我们欢迎需求的变化,即使在开发后期。敏捷过程能够驾驭变化,保持客户的竞争优势。
3,经常交付可以工作的软件,从几星期到几个月,时间尺度越短越好。
4,业务人员和开发者应该在整个项目过程中始终朝夕在一起工作。
5,围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务。
6,在开发小组中最有效率也最有效果的信息传达方式是面对面的交谈。
7,可以工作的软件是进度的主要度量标准。
8,敏捷过程提倡可持续开发。出资人、开发人员和用户应该总是维持不变的节奏。
9,对卓越技术与良好设计的不断追求将有助于提高敏捷性。
10,简单——尽可能减少工作量的艺术至关重要。
11,最好的架构、需求和设计都源自自我组织的团队。
12,每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。

我们在实际工作中一般会将软件开发压缩成4个阶段;
第一阶段:需求阶段+对于第一个迭代开发的确认;
第二阶段:产品开发的列表以及迭代的具体划分和系统级架构的设计这些计划类确认和开发;
第三阶段:开始进入正式开发阶段并且是开发的工作和测试的工作同时进行;
第四阶段:产品的交付阶段;
至此我们就完成了一个软件开发的完整过程。
敏捷开发既可以用在大周期开发,也可以运用在单个迭代中。在单个迭代中开发与测试同时进行设计工作,开发工作,测试工作,如此反复执行。最后在进行迭代的评审,评审通过交付。

敏捷方法的适用性:
由于敏捷开发具有迭代时间短,功能适用性要求高。所以敏捷开发也具有一定的要求。从产品角度看,敏捷方法适用于需求简单并且可以进行快速改变的情况,如系统有比较高的关键性、可靠性、安全性方面的要求,则可能不完全适合;从组织结构的角度看,组织结构的文化、人员、沟通则决定了敏捷方法是否适用。

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