2016-07-20 17:45:42 nuli888 阅读数 1688
  • Android开源项目实践之UI篇

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

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

个人觉得

敏捷开发强调以人为中心,快速迭代,客户参与多沟通,减少不必要的文档,包括Scrum和XP
优点:快速适应变化,做出的项目比较接近客户需要的
缺点:文档不多,如果人员流动大,维护相对更难


瀑布开发强调文档,就是不同阶段按照顺序自上而下而来,如需求、设计、编码、测试(单元测试、系统测试)、维护,每个阶段尽量做得最好
优点:每个阶段可作为检查点,前一阶段完成只需关注后一阶段
缺点:缺少沟通、反馈,文档比较多,不适应需求快速变化,在生命周期后期才看得到结果,如果有一阶段出了大问题,会影响最终成功

2019-03-05 10:57:01 weixin_39835036 阅读数 130
  • Android开源项目实践之UI篇

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

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

传统的软件开发模式主要被称为"瀑布法"或者是V model。核心就是自动化生产线的思路。业务用户首先要提出明确、无歧义、有时效性的业务需求,系统分析人员根据业务需求设计系统功能组件和系统整合策略,细化成为软件架构设计、系统整合方案并进行分模块开发。模块开发完毕后从单元测试、集成测试、系统测试直到用户接受度测试一级级往上扩展。

 

瀑布型开发与敏捷开发引起的思考

 

传统的软件系统开发方式路线清晰,管控容易,但最大的前提就是需要业务需求清晰稳定。一旦需求发生变更,尤其是核心需求和关键功能流程的调整,往往会给开发和架构带来灾难性的影响。就好像根据确定车型的生产流水线已经搭建起来了,产品经理说,麻烦把车加长10厘米。生产总监一定会两手一摊说,给我三个月改造生产线吧。一般情况下,程序员对产品经理动了杀心就是在传统软件开发方式+重大需求变更时发生的。

另外,传统的系统开发路线的确清晰,但从设计到开发再到上线往往要经过漫长的等待。最要命的是,在等待期间需求不能随意修改,术语叫做"需求冻结"或者是"需求窗口关闭"(当然需要懂技术的售前进行正确引导客户)。但是在互联网世界里客户的要求是不可能被冻结的,所以传统的软件开发方式玩互联网行不通。

为了在瞬息万变的互联网行业里活命,一些脑子机灵对软件开发熟悉的产品经理捣鼓出了和传统软件开发流程完全不同的开发方式-敏捷开发(Agile Development)。

敏捷开发嘛,顾名思义,最大的特点就是快。那它是怎么实现快速开发的呢?核心思想就是快速迭代,不断优化,永远在改进,永远在发布新版的路上。

瀑布型开发与敏捷开发引起的思考

 

从图中我们可以看到,敏捷开发的起点往往是并不非常清晰的业务需求(但框架不是乱变,这跟盲人摸象还是有本质区别的)。但随着开发的进行和原型开发过程中与业务用户的交互,核心的功能点逐渐清晰并形成测试用例。在完成最基本的核心功能后,系统就可以内部上线并供业务人员使用,让业务人员试用"第一批的新鲜产品"。

业务人员在试用后认为基本达到业务目的,就可以小范围开闸交给友好用户使用。如果业务人员认为不够成熟,那就会返工重新修改调整。我们看到的互联网app经常是1-2周就有一个新版本发布,往往就是采用这种"短平快"周期的敏捷开发模式,术语一般称为"持续交付"。

所以有人形象地做了个比喻:从河岸这一侧的A点到河岸那一侧的B点,传统开发就是设计桥梁,建造桥墩,铺设桥板,按部就班;敏捷开发就是先用弓箭射一根线到对岸,然后线带细绳,细绳带粗绳,粗绳带钢缆,逐步把通行能力从蚂蚁、老鼠,猫最后提升到人甚至汽车。

但无论是瀑布型开发还是敏捷开发,变中不变的都是系统可伸缩框架定义+模块化设计,无论对于哪种模式下的快速迭代开发以及测试效率都有不可替代的作用。跳出现有局限的设计模式,用更上层的思路来解决问题,做到脱胎于设计模式又不拘泥于设计模式,也许是软件架构师最好的归宿。

2018-09-03 15:56:36 tangweiee 阅读数 4515
  • Android开源项目实践之UI篇

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

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

                               敏捷开发和瀑布模型对比


               瀑布、迭代、螺旋、敏捷——在这里讨论的敏捷,都属于过程模型

 

2019-07-14 15:33:51 qq_29924227 阅读数 94
  • Android开源项目实践之UI篇

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

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

什么是敏捷开发?

敏捷开发=迭代开发+增量开发
迭代开发:将一个大项目分解成多个小项目,每个小项目都有类似的生命周期。开发者首先发布一个简单的版本,然后再不断的增加功能或者进行改进,这个过程就是不断迭代的过程,每次迭代都有完整的生命周期(包括需求分析、设计、编码、测试、部署评估)。
增量开发:迭代开发只是将一个大项目分成多个小项目来完成,但是没有规定如何划分项目进行迭代。这时,就要按照增量开发的方式进行迭代,迭代的每个版本都会增加一个用户可以感知的完整功能,就是按照功能进行划分迭代。

敏捷开发的优点

  1. 及时交付:敏捷开发完成第一个版本就可以先进行交付,而不需要等到完成所有功能再进行交付
  2. 反应迅速,拥抱变化:当前市场需求变化很快,当需求发生变化的时候,敏捷开发可以及时的做出相应,进行改变。
  3. 80/20原则:根据增量开发,可以先完成具有80%价值的20%的功能。

什么是瀑布模式?

一种由需求文档驱动的开发模式,开发人员严格按照文档进行开发,瀑布开发模式分为几个阶段:
在这里插入图片描述

瀑布模式的缺点

  1. 需求隔离:每个开发人员只能接触到自己负责的阶段,对用户需求理解不高,开发人员像流水线上的工人。
  2. 变更代价大:正如这个开发模式的名字:瀑布 一样,如果开发过程中需求变更,代价极大。
  3. 束缚创造力:由于强调文档驱动,限制了开发人员的创造力
  4. 周期漫长
2019-02-28 17:43:55 weixin_44702197 阅读数 113
  • Android开源项目实践之UI篇

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

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

        敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。强调以人为本,专注于交付对客户有价值的软件。是一个用于开发和维持复杂产品的框架。主要还是以用户的需求进化为核心,采用迭代和循序渐进的方法进行软件开发。

        用通俗易懂的话来说就是客户交付给你一个大的项目。你们研究以后将其分为几个小的可独立运作的小项目分别完成。期间你会影响软件的使用。但是当你们已经完成了小项目的时候客户又提出这个东西不用了或者要变成另外一个东西,那么就需要快速的进行更改。保证快速完成。

敏捷开发的基本流程如下:

1、产品经理将整个项目做一个需求。

2、 召开产品会议,确定哪些需求是需要在第一个迭代中完成的。完成整个产品需要多久。

3、把迭代的功能需求写在纸条上贴在任务墙,让大家认领分配。

4、每天组织十五分钟左右的立会。总结昨天任务完成情况、领取今天任务。在任务墙上更改任务进程。

5、在迭代完成时开评审会议,向客户展示产品,听取客户意见。

6、完成后召开总结大会,总结得失。

 

谈起敏捷开发不得不提瀑布式开发。

 

传统的瀑布式开发一般流程如下:

1、需求分析

2、方案设计。

3、实施/编码

4、测试/评估

 

瀑布式开发流程如下:

1、概念阶段

2、需求阶段

3、开发实现

4、功能测试

5、系统测试

6、内部体验

7、产品发布

在这七个流程中需求阶段、开发实现及功能测试可看做一个敏捷迭代。

瀑布模式把每个环节都可以看做一个黑盒,每个员工只关注自己阶段的工作。这样做的好处是员工可以更加专注的做好自己的本职工作,坏处是沟通不到位,如果有员工离职后面就会很麻烦。同时前面出现的BUG远远大于后面BUG对软件的影响。而敏捷开发则不会出现,因为分为不同个迭代完成,所以可以随时根据客户的需求更改。BUG影响也相对较小。同时客户可以在一次迭代完成以后对产品做一次反馈,可以及时更改,客户满意度更高一些。瀑布式开发较适合相对稳定的大型开发,敏捷开发则更加灵活。

 

 

敏捷开发:瀑布模型

博文 来自: cczk8138
没有更多推荐了,返回首页