精华内容
下载资源
问答
  • 本人博客文章网址:... 前言 敏捷开发4大价值观 个体与交互胜于流程与工具 可工作的软件胜于面面俱到的文档 客户协作胜于合同谈判 响应变化胜于遵循计划 个体与交互胜于流...

    本人博客文章网址:https://www.peretang.com/agile-session-agile-values/

    前言

    敏捷开发4大价值观

    个体与交互胜于流程与工具

    可工作的软件胜于面面俱到的文档

    客户协作胜于合同谈判

    响应变化胜于遵循计划

     

    个体与交互胜于流程与工具

    我们需要团队成员紧密合作, 不断交流, 共同协作.

    在团队内要经常面对面交流沟通, 通过缩减不必要的流程来适应变化.

     

    可工作的软件胜于面面俱到的文档

    编制众多的文档需要花费大量的时间, 并且要使这些文档和代码保持同步, 就要花费更多的时间.

    针对团队内部, 可以减少不必要的文档, 仅留下包括系统核心原理, 架构等内容的精简文档, 其余详细的由可工作的软件代替.

    因为代码可以真实地表达了它所做的事情, 新加入的队员亦可以通过代码, 程序快速学习项目相关内容

     

    客户协作胜于合同谈判

    和客户一起沟通合作, 可以尽早发现问题尽早处理, 实时得知客户意见和需求的改变.

     

    响应变化胜于遵循计划

    首先敏捷软件开发方法本身的诞生, 就是因为传统的开发模型无法适应快速变化的环境和需求, 所以响应变化是敏捷开发的根本.

    虽然遵循计划是每个团队成员都应该做到的事情, 但是计划本身, 应该能够随着情况的变化而及时做出调整.

     

    Keep outstanding.

    Pere Tang

    转载于:https://my.oschina.net/peretang/blog/1546663

    展开全文
  • android 敏捷开发系列(二)——《敏捷开发架构图》 书接上回,首先奉上敏捷开发的架构图 首先为大家解释里面的几个概念 Frame 整个项目的框架、组织者。里面并没有实际的代码,只是通过配置文件决定了...

    原创作品,转载请注明出处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 敏捷开发系列(三)——《环境部署》
    展开全文
  • 1,提要 软件开发是一个系统工程,包括最初的可行性分析、再到设计、开发、测试、维护等整个生命周期。在这个过程中某些阶段的失误或说是变化,都可能增加...传统瀑布模式和新型的敏捷开发就是其中最常用的方法,后

    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,总结
    通过了解传统瀑布开发模式和新型敏捷开发模式的差异,理解敏捷开发的在现在快节奏时代有更好的适用性:唯快不破,以人为本。

    展开全文
  • 企业现在大量采用敏捷开发,以加快项目进度及更好地显示其价值。 Gartner应用架构、开发和整合峰会下个月在悉尼召开。Gartner公司研究总监NathanWilson在会议前夕表示,敏捷方法如果使用得当,是有能力改变IT业务...

    敏捷开发的10大指导原则

    据Gartner的资料表明,一众CIO现在有压力,需要支持快速发展的数字业务发展,而同时又遇上传统项目和开发方法不能与时俱进的难题。企业现在大量采用敏捷开发,以加快项目进度及更好地显示其价值。

    Gartner应用架构、开发和整合峰会下个月在悉尼召开。Gartner公司研究总监NathanWilson在会议前夕表示,敏捷方法如果使用得当,是有能力改变IT业务关系以及对IT价值交付产生重大的正面影响。而CIO和整个IT管理团队必须悉心培养获得成功所需的变革文化,只有这样才能交付相应的价值。

    Wilson表示,“敏捷开发做得好的话,是可以成为开发产品组合方法的有机组成部分,CIO可以利用此类方法来应付日益高涨的创新业务需求。但用得不得当的话,敏捷开发导致的问题会比其解决的问题更多。”

    Gartner列出敏捷开发的10大指导原则如下:

    1:敏捷开发不是单一的一件事

    敏捷开发方法是一组软件开发方法,这些方法具有共同的理念,但在具体细节上又截然不同。因此,敏捷开发方法往往能适应不同类型的问题。那些老牌、成熟的组织大可以使用几个方法,但刚处起步阶段的组织则应该选择一个方法,掌握了一个方法后再尝试其他方法。

    2:敏捷开发并非“拿来主义+混合”的方法

    敏捷方法是个高度系统化的方法。其中的每一个构成元素对于最后的成功都是至关重要的。有些组织可能只采用敏捷方法的一些元素(如冲刺『Sprint』)却忽略或淡化其他元素(如“技术债务”(Technicaldebt)的管理。此为常见的错误。这些组织或许会享受来自快速发展和发布新代码的荣誉,但由于未能很好解决技术债务,他们收藏起来的问题终会带来麻烦。

    3:拥抱敏捷开发是一项业务与IT之间的联合活动

    要充分实现敏捷开发的益处就离不开商界领袖、管理层和用户社区的参与。如果一个企业里有些部门不喜欢新的工作方式,那就有必要精心地计划、将不同的管理者社区和用户社区组织到一起进行沟通。

    4:敏捷开发需稳打稳扎,不能急于求成

    有经验的敏捷开发实践者可以应付大规模的开发——颇像攀登珠珠穆朗玛峰。但承担大型软件项目所需要的必要技能来自许多年的积累。在踏上敏捷开发征途的初始阶段,任何组织都需要在山脚下起步,在发展中建立信心、提高承担更大的任务的能力。

    5:采用敏捷开发需要不断地学习

    敏捷开发实践者必须不断努力提高质量和成本效益,即是说,要对每一个开发项目进行分析,吸取经验教训,以期改善以后的决策和工作方法。此类分析和学习不仅仅是少数资深实践者的责任,所有敏捷开发实践者的工作负载基本组成部分里涵括了分析和学习。此外,学习对于直接参与软件开发的程序员无疑是适宜的;学习所有的相关技能也至关重要,如项目管理、架构、质量保证和IT预算管理等。

    6:敏捷开发事关团队及由团队组成的团队的事

    在敏捷开发中,交付的的基本组织单位是一个小团队,典型的人数常为“七加或减二”——含开发人员和质量保证。从人力资源的角度来看,管理敏捷开发团队是一件有些飘忽的事,一方面要保持团队的相对稳定以保持工作效率,另一方面又需要将各个团队的人员进行交换和糅合以鼓励相互之间的思想交流。如果人员交换过于频繁,团队则不能成为高效的小组;而如果团队之间的人员交换不够的话,每个团队会变成孤立的小组,会背离其他团队。要注意的是,采用敏捷开发方法时,团队彼此之间的相对物理位置比传统开发方法中的物理位置要重要得多。

    7:归档、管理和消除技术债务是所有敏捷开发方法的一个核心概念

    技术债务是一个软件两个状态之间的差异,一方为今天的状态,另一方是为满足诸如可靠性、性能效率、便携性、易用性、可维护性和安全性等必要的质量属性要求所处的状态。所有的开发都有技术债务。敏捷开发方法与其他方法的区别在于,敏捷开发会认明技术债务并将其列入需要处理的事务之列,而不是藏起来不理不睬。希望采用敏捷开发方法的组织必须选择所用方法的元素,大刀阔斧地处理重构和消除技术债务。

    8:采用敏捷开发要慎重处理和对待第三方开发服务提供商

    很多IT组织很长时间以来都是将应用程序的开发外包给专业服务提供商。虽然服务提供商在敏捷开发中也有自己的角色,但商业模式和参与模式都是非常不同。对于敏捷开发方法来说,托管业务用户是不言而喻的,因此,将大量工作送到别处的机会比较有限,其结果是,以某种形式雇佣附加人力极有可能是一个更有效的模式。

    9:敏捷开发影响的不只是软件开发团队

    “持续交付”概念是敏捷开发方法的一个有机组成部分。敏捷开发方法是以企业管理者和使用者的持续参与为前提的,并由此出发将不断交付新的、修改过的软件的过程引导到营运环境里。所有这些都要求在企业治理和关系管理以及基础设施和运营团队的两个工作实践方面做出显著的改变。

    10:其他软件开发方法在产品组合开发中仍然有用得到的地方

    在大多数商业和公共部门组织里,应用组合会出现许多不同类型的开发问题,有些适合敏捷开发,而有些可能更适合那些增量、迭代式开发,有些则适合改良型瀑布模型。敏捷开发不是“更好”,只是更适合一些问题,但也会更不适合另一些问题。

    展开全文
  • 本博将通过 讲解敏捷开发概念->敏捷开发架构思想->开发环境搭建->项目源码敏捷开发构建、拆分 等逐步带您走进android敏捷开发的世界。 学敏捷开发,开启 架构师之路..(夸张了呵呵,其实没有,这是基础) 注:本系列...
  • 敏捷开发系列之旅 第二站(走近XP极限编程) 2014-03-19 19:28 2670人阅读 评论(14) 收藏 举报 本文章已收录于:   敏捷知识库  分类: 【研发总结】(73)  版权声明:本文为博主...
  • 这篇文章,我将会去简单探讨为什么需要敏捷? 先贴出链接,如果你有时间的话,可以... 软件工程从无开始,到重量级开发,再到轻量级开发敏捷) 软件开发最原始是啥都没有的,就如同我们大学做第一个大作业差...
  • 我个人是极端推崇敏捷开发的,虽然我做的不够好,但正在努力!我不想去经历一个个失败或者过度延期的项目,虽然我没经历什么项目,但一个糟糕的我也不想碰到。我也不想自己暗无天日的加班只是为了需求的变动,更想让...
  • Scrum敏捷开发流程主要包扩三个角色、四个会议和个三物件。 三个角色 Scrum团队中包括三个角色,他们分别是产品负责人、开发团队和 项目的直接管理者(Scrum Master)。 Scrum 团队是自组织、跨职能的完整...
  • 敏捷开发系列中,把一种开发流程命名为Scrum,其实就意味着,这种敏捷开发的流程,就像是大家在一起打橄榄球,敏捷的动作、富有战斗的激情、人人你争我抢的拼搏精神。这些无一不是现在开发中迫切需要的东西。
  • 分享一个大神的人工智能教程。...在本篇,我们将介绍Spotify基于敏捷开发和精益创业思维的产品研发过程。 引言 在本系列文章的第一篇,我们介绍了Spotify的敏捷研发团队,以及它独特的组织架构。Spotify的研发...
  • 在本系列文章的第一篇和第二篇,我们分别介绍了Spotify的敏捷研发团队和研发过程。 在本篇,我们将介绍Spotify的敏捷工程文化。 引言 Spotify通过文化和价值观来进行管理,在本篇中,我们从如下八个方面来介绍...
  • 1.重点突破 任何一个软件项目,一定有它的业务重点;你开始做项目时,一定要先揪出重点,先解决它。这样做有什么好处呢?1是能快速看到想要的效果。比如淘宝网,最初是从国外花几千块买的,它最初就完成一个开店,...
  • 过去,几乎所有的软件开发项目都采用瀑布模型。这种编程方法酷似工厂装配线,...敏捷软件开发以及似乎无穷无尽的变种方法已越来越常见。现在它们成了主流的编程方法。 我们在本文中介绍了十种最流行的软件开发方法的功
  • 几年前,我把几个高尔夫球打到湖里了,一起打球的朋友给了我一些建议。...类似的,你们可能也被告诫过——ScrumMaster、敏捷教练或敏捷项目经理都可能告诫你——敏捷项目管理是要领导团队而非管理团队。然而,指导...
  • 随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发—测试—发布)模式已经不能满足快速交付的需求。2009 年左右 DevOps 应运而生,开发运维一体化,通过自动化工具与流程让整个软件开发构建、测试、发布更加...
  • 开发项目时,哪些东西需要被管理?1,当然是需求、设计说明。2,界面原型。3,项目进度。4,bug。...我们一直用敏捷方式开发项目,既然就敏捷,就需要短、平、快。当时,在挑项目管理软件时,小编我是
  • 原则,力求各司其职,简单明了。 1. 测试人员提交bug ⑴ 标题: [ 模块名称 ] 问题描述 ⑵ 内容: 问题重现步骤的描述,最好贴上图片。 因为一图胜万言。...⑶ 指定责任人: 根据bug指定责任人。...
  • 敏捷开发之旅的第三站,我想要和大家一起分享FDD特征驱动开发方法。 特征驱动开发——Feature Driven Development 还是老规矩,讨论之前,我们先了解一下什么是Feature?什么是FDD? Feature ...
  • 敏捷开发系列之旅 第一站(掀起你的盖头来)

    千次阅读 热门讨论 2014-02-27 22:49:00
    乍一听,“敏捷开发”这个词很新鲜,其实不然。早在2001年2月,就作为一种相对新颖的产品开发模式,提出了“敏捷开发”这一概念。到底什么是“敏捷开发”呢? 诞生  也就是2001年的2月(没有考据),有17名之多的...
  • 分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!... 引言 2018年4月,来自北欧瑞典的音乐流媒体公司、百亿美元独角兽Spotify创造了历史,它成为了当代上市...
  • 版本管理是非常重要的,但很多公司或者程序员根本对这个版本管理毫无概念。今天,有渔老师就来讲下我在团队中使用的版本管理发布流程。 一、软件 1、版本命名规范 软件版本号由四部分组成,第一个1为主版本号,第...
  • 你想成为一个优秀的Scrum Master吗?我想是的,除非你是一个产品负责人或者其他的角色。我作为一个Scrum Master已经有20多年了,这些年,我给出了很多的建议,也收到了很多的建议。我甄选出了我认为最棒的十个建议给...
  • 敏捷团队被告知他们是自组织的。但是,这并不意味着每个企业的自组织都完全一样。比如说: 团队是否有权将团队的技术需求添加到Sprint中? 团队是否可以决定谁在这个团队中? 团队是否可以在不询问Scrum Maste...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,227
精华内容 890
关键字:

敏捷开发系列