21天敏捷打卡--敏捷方法实现

常用的敏捷实践包含:精益、看板、Scrum、XP极限编程、水晶、DSDM动态系统开发、FDD功能驱动开发、AUP敏捷统一过程、OpenUP。

《敏捷实践指南》将敏捷方法和看板方法是为精益方法的子集。因为他们都符合精益思想的具体实例,都反映了“关注价值”、“小批量”、“消除浪费”。

  • 精益软件开发LSD
TPS
面对场景 解说 原则 解说
过度 对员工和生产/研发过程施加不必要的额外压力 消除浪费 无法带来价值的事务就是浪费
违规 不切实际的需求导致过生产/研发程中的不均匀 尽快交付 短期迭代或小批量提供有价值的反馈,促进有效的决策
浪费 非增值活动或过程 增强学习 通过短迭代周期、重构、继承测试和频繁客户反馈会议增强学习
    团队授权 精益专注于团队,因为决策制定和管理的来源让团队了解最佳选择和成本。
    较迟决定
管理不确定性的最佳方法是收集信息,最后的责任时刻给予承诺,打破部件

间的依赖关系。

    建立整体 确保质量是嵌入在整个系统的,系统需要构建自动化测试,安装和持续集成。 
    目光长远 脚踏实地,快速试错,快速学习。
  • Scrum 参见我的另一篇文章,ACP--Scrum
  • 极限编程

极限编程 (XP)是一种基于频繁交付周期的软件开发方法。该名称基于这样一个理念:将特定最佳实践提炼到最纯粹和最简单的形式,然后在整个项目周期内持续运用该实践。

核心思想:鼓励从最简单的解决方式入手再通过不断重构达到更好的结果,主张“不对将来可能的需求上投入精力”,这么做的好处,设计与代码上的简化可以提高交流的质量。

价值:沟通、简单、反馈、勇气、尊重

  1. 沟通:追求有效的沟通而非无意义的会议。强调项目组成员、客户之间有效地、及时沟通,打破信息孤岛,确保信息的畅通。
  2. 简单/简洁:实现最贱的可行方案。应该尽快保持代码的简单,只要能满足工作需要即可,有利于代码的重构和优化,确保频发的发布功能。
  3. 反馈:通过对当前系统状态进行不断的反馈,达到迅速沟通、编码、测试、发布的目的。
  4. 勇气:勇于放弃和重构,这点太难了。
  5. 尊重:尊重每一位成员,从人性的角度为项目组成员考虑,确保项目的质量和交期。

敏捷编程的开发过程核心活动:“需求→测试→编码→设计过程中,因此对工作环境、需求分析、设计、编程、测试、发布等提出了新的思路、要求和挑战。

敏捷编程开发过程核心活动
动作 解说
工作环境
项目开发人员都需担任角色,并履行相应的权力和义务

开放式的工作环境,方便面对面交流

强调每周工作40小时,不加班

需求分析
开发人员和客户一起编写Story,并根据经验经将user stroy组合或分解,最终记录在stroy card;

根据记录的stroy card,按照商业价值、开发风险有限顺序逐个开发

设计 强调简单设计,即用最简单的方法实现每个小需求,满足系统客户在当前的需求即可
编程 提倡结对编程,共同完成一段程序的编码,可以提高纪律性等等
测试 开始编程之前,先写好测试,提高软件的可测试性。通用方法:单元测试、整合测试、功能测试、系统测试
发布 按照开发计划/时间盒,没完成一个时间盒,发布一次。通过敏捷的迭代和增量交付实现客户利益最大化
  •  看板方法

  • 水晶方法

  水晶是一种方法论家族。水晶方法论旨在根据项目规模(项目中涉及的人员数量)以及项目的关键性来量化并提供方法严格程度选择。

  • FDD(特征驱动开发)

  特征驱动开发(FDD-Feature Driven Development)方法是敏捷软件开发过程中的一种,是由Jeff de Luca 、Eric Lefebvre、Peter Coad共同开发的。它强调特性驱动,快速迭代,即能保证快速开发,又能保证适当文档和质量,非常适合中小型团队开发管理。

它提出的每个功能开发时间不超过两周,为每个用例user case限定了粒度,具有良好可执行性,也可以对项目的开发进程进行精确及时地监控。它抓住了软件开发的核心问题领域,即正确和及时地构造软件。FDD还打破了传统的将领域和业务专家/分析师与设计者和实现者隔离开来的壁垒。分析师被从抽象的工作中解脱出来,直接参与到开发人员和用户所从事的系统构造工作中。

  角色:项目经理、开发经理、首席编程人员、类负责人、领域专家,由团队成员分别担任。

  FDD最佳实践

    • 持续集成Continuous Integration.

    • 对领域(业务)对象建模Domain Object Modeling.

    • 按特性开发Developing By Feature.

    • 类的所有者Individual Class ownership.

    • 按特性组织团队Feature Teams.

    • 源代码控制Source Control.

    • 汇报/结果可见性Reporting/Visibility of results

  • DSDM动态系统开发方法

  一种敏捷项目交付框架,强调制约因素驱动交付而著称。DSDM的基本观点是:任何事情都不可能一次性圆满完成,应该用20%的时间完成80%的有用功能,以适合商业目的为准。

  DSDM的基本原则:

  1.活动用户必须参与。

  2.必须授权DSDM团队进行决策。

  3.注重频繁交付产品。

  4.判断产品是否可接受的一个基本标准是符合业务目的。

  5.对准确的业务解决方案需要采用循环和增量开发。

  6.开发期间的所有更改都是可逆的。

  7.基本要求是高层次的并区分优先级(以在低优先级的项目上获得一定的灵活性)。

  8.在整个生命周期集成测试。

  9.在所有参与者之间采用协作和合作方法。

  • AUP敏捷统一过程

  捷统一过程 (AgileUP)是软件项目中统一过程 (UP)的分支。与紧前统一过程相比,该过程具有加速周期和轻量级的过程。其目的在于在七个主要因素之间执行更多迭代的周期,并在正式交付之前纳入相关反馈。

  该方法应用了敏捷技术,包括 测试驱动开发(TDD), 敏捷模型驱动开发(AMDD), 敏捷变更管理和 数据库重构,以提高生产率。

  AUP的哲学
  敏捷UP基于以下原则:
    1.员工知道他们在做什么。人们不会阅读详细的过程文档,但会不时需要一些高级指导和/或培训。
    2.简单性。使用很少的页面(而不是数千个页面)来简洁地描述所有内容。
    3.敏捷性。敏捷UP遵循敏捷联盟的价值观和原则 。
    4.专注于高价值的活动。重点是实际计数的活动,而不是项目上可能发生的所有可能事情。
    5.工具独立性。

  • OpenUP

 四项核心原则:

  1. 平衡,在竞争优先级以及最大化干系人利益之间,建立平衡 。
  2. 协作,协作以协调利益,以及保证理解一致。
  3. 关注,从开始起,就将注意力放在软件架构上,以减轻风险,并组织软件开发。
  4. 演化,持续演进并且不断获得反馈。

 生命周期:OpenUP的迭代开发流程分布并且贯穿在几个阶段中:启始(Inception)、精化(Elaboration)、构建(Construction)和移交(Transition)阶段。

  1. 启始阶段: 确保项目目标和范围已经明确。
  2. 精化阶段:开发整体架构框架,确保架构已经稳定。
  3. 构建阶段:从摸索到可部署产品的开发,转向功能模块的开发。
  4. 移交阶段:确保软件被最终用户接受。

原文地址:https://www.cnblogs.com/atun/p/12040650.html

时间: 2024-08-06 03:34:43

21天敏捷打卡--敏捷方法实现的相关文章

21天敏捷打卡-敏捷估计与规划

通过之前的章节,我们可以清楚的知道,估算交付时间.交付成本.可获得利润,对项目是否可以落地有重要的影响. 敏捷估算的基础: 为什么要估算:估算可以让团队了解项目规格计算ROI和IRR,形成可执行许可的基础,有了估算,市场也可以提前的为后期产品上市做准备: 谁执行估算?:产品负责人.敏捷教练: 会议什么时候进行?自然是越快越好,在整个项目进行之间,同样随着逐步完善更多的信息,估算也要持续进行.敏捷提倡:拥抱改变,那既然拥抱改变,估算也要做调整,该加人手就要加人手.不要一味指望加班来压缩成本,随着9

敏捷21天打卡-敏捷项目管理(终章)

软件项目管理的两大主流管理模式:传统项目管理(预测型项目管理).敏捷项目管理: 传统项目管理(预测型项目管理):瀑布式.部分迭代开发模式,要求在项目一开始,需求足够明确.文档足够规范.迭代过程需求变更越频繁,其对项目造成的遭难往往越大.相信很多IT团队都尝试过,这里不赘述. 敏捷项目管理作为新兴的项目管理模式,简化了传统项目的流程,从繁琐的流程和详尽的文档中解脱出来.但并不代表敏捷不做计划,有很多人的观念“敏捷不做计划”这是错误,否“probacklog.scrum.看板.燃起图.燃尽图.用户故

敏捷开发之Scrum方法运用

目前软件开发除了强调产品质量,同时对产品能够快速发布并且迅速适应市场变化的要求也日益强烈.为适应这种开发环境和市场需求,传统的软件开发模式已被敏捷开发模式所替代.本文介绍敏捷软件开发中的Scrum方法,并结合实际问题,分析Scrum方法在实践中的运用. 产品质量和开发效率一直是软件产品开发的关键.随着科技和经济的发展,软件的市场环境和用户需求不断发生变化,这对软件产品的快速发布提出很高的要求.传统的瀑布模型.螺旋模型.原型模型等已不能适应越来越复杂和不断变化的需求和市场环境.近年来,敏捷软件开发

安卓模拟器创建和使用SD卡的方法

安卓模拟器创建和使用SD卡的方法: 创建一个SD卡镜像文件 打开cmd,进入Android SDK安装路径下的tools目录下,输入如下命令:mksdcard 1024M sdcard.img 该命令会在当前目录下生成一个sdcard.img文件,该文件是Android模拟器的SD卡镜像文件.1024M表示SD卡有1024M大小,即1G容量.目前Android支持8M~128G的SD卡. 运行带有SD卡的模拟器 创建了SD卡镜像文件,只是创建了一个文件,还不能在模拟器中直接使用,要在模拟器加载该

android获取sd卡路径方法

public String getSDPath(){  File sdDir = null;  boolean sdCardExist = Environment.getExternalStorageState()  .equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否存在  if (sdCardExist)  {  sdDir = Environment.getExternalStorageDirectory();//获取跟目录  }

sqrt函数实现之卡马克方法

sqrt函数的实现主要有三种方式: 二分法 牛顿法 卡马克方法 这里主要介绍高效的卡马克方法.卡马克方法起源于<雷神之锤III竞技场>中使用的平方根倒数速算法,下列代码是平方根倒数速算法在<雷神之锤III竞技场>源代码中的应用实例.示例剥离了C语言预处理器的指令,但附上了原有的注释: float Q_rsqrt( float number ) { long i; float x2, y; const float threehalfs = 1.5F; x2 = number * 0.

html5手机端播放音效不卡的方法

html5手机端播放音效不卡的方法线下载http://wxserver.knowway.cn/solosea/js/audioEngine.js 这个是性能不错 然后直接播放音效就可以了 audioEngine.playEffect('/solosea1/music/laidian.mp3', false); 如果切换不了 可以先stop 然后再play audioEngine.stopEffect('/hcfabuhui/music/2.mp3'); 如果延迟 是其他代码性能影响了 预加载也没

21天敏捷打卡-用户故事地图

上图是基于敏捷故事的一个看板或者说敏捷流程中的一种,没有什么比亲身投入的效果更好.用户.组员需求方通过自身的投入.表达以便于让团队成员更加了解其想法和统一组员的想法.用户故事是一种思维,通即故事思维,运用故事的元素进行思考和设计,解决问题.达到某种效果.用户故事设计中核心是通过故事传递信息,引起共鸣,决绝问题. 讲故事不是一个简单工作,需要优秀的组织能力,清晰的表达方式,达到听众清晰明了我们想表达的.这里笔者建议,如果平时和人交流的时间太少,可以通过书写博客等方式,组织自己的中心思想,让听众知道

21天敏捷打卡-看板

看板在我们生活中随处可见,”课程表.餐厅的餐牌.加油站的今日油价等等“,其作用便于所有人了解点前的状态,例如通过课程表,可以让我们知道接下来课程的安排,做出有计划的复习.和课前准备. 在制造业中看板运用的价值更为突出,通过生产看板,可以及时了解到当前的生产状况.物料信息.品质信息,便于整个车间\小组都能理解当前的生产状态,并以一种自发的.有动力的相互协作的方式完成今日的目标.上图是一个我在开发中常用到的看板,通过”待处理.开发中.评审中.集成测试中等“几个状态,组员可以清晰的知道当前的工作进度,