第2章 传统与敏捷方法论

简介:

第2章 传统与敏捷方法论

2.1  传统泛瀑布软件开发模式

2.1.1  瀑布模式

1.瀑布模式简介

2.瀑布模式特色

3.瀑布模式缺点

2.1.2  渐增模式

1.渐增模式简介

2.渐增模式特色

3.渐增模式缺点

2.1.3  雏形模式

1.雏形模式简介

2.雏形模式特色

3.雏形模式缺点

2.1.4  螺旋模式

1.螺旋模式简介

2.螺旋模式特色

3.螺旋模式缺点

2.1.5  统一开发过程模式

1.RUP模式简介

2.RUP模式特色

3.RUP模式缺点

2.2  敏捷方法论

2.2.1  Scrum

1.Scrum定义

(1).轻量的(Lightweight)

(2).简单易懂(Simple to Understand)

(3).难以精通(Difficult to Master)

2.Scrum理论

(1).透明(Transparency)

(2).检视(Inspection)

(3).调整(Adaptation)

3.Scrum基本价值观

(1).专注(Focus)

(2).尊重(Respect)

(3).承诺(Commitment)

(4).勇气(Courage)

(5).公开(Openness)

4.Scrum团队

(1).开发团队(Development Team)

(2).Scrum大师(Scrum Master)

(3).产品负责人(Product Owner,PO)

5.Scrum过程

6.Scrum仪式

(1).冲刺规划(Sprint Planning)

(2).每日Scrum(Daily Scrum)

(3).冲刺审查(Sprint Review)

(4).冲刺回顾(Sprint Retrospective)

7.Scrum的产出

(1).产品待办列表(Product Backlog)

(2).冲刺待办列表(Sprint Backlog)

(3).可交付的增量成果(Incremental Deliverable)

(4).燃尽图(Burn Down Chart)

2.2.2  XP

1.XP的13个实践

(1).全队(Whole Team)

(2).规划游戏(Planning Game)

(3).小的发布(Small Release)

(4).客户测试(Customer Test)

(5).编程标准(Coding Standard)

(6).程序代码共同拥有(Collective Code Ownership)

(7).持续集成(Continuous Integration)

(8).隐喻(Metaphor)

(9).持续步伐(Sustainable Pace)

(10).测试驱动(Test-driven Development)

(11).结对编程(Pair Programming)

(12).简单设计(Simple Design)

(13).重构(Refactoring)

2.XP团队队员

(1).程序员(Programmer)

(2).测试员(Tester)

(3).教练(Coach)

(4).客户(Customer)

2.2.3  精益

1.精益的7原则

(1).消除浪费(Eliminate Waste)

(2).强化学习(Amplify Learning)

(3).尽可能晚做决定(Decide as Late as Possible)

(4).尽可能尽快交付(Deliver as Fast as Possible)

(5).授权团队(Empower the Team)

(6).建构完整性(Build Integrity in)

(7).着眼整体(See the Whole)

2.2.4  看板

1.看板方法的主要原则

(1).从既有过程开始(Start with Existing Process)

(2).同意增量渐进的改变(Agree to Pursue Incremental,Evolutionary Change)

(3).尊重当前角色的头衔和职责(Respect the Current Process "Role" Responsibilities and Titles)

(4).鼓励各层级的领导行为(Leadership at all Levels)

2.看板方法的核心价值

(1).尊重

(2).勇气

(3).专注

(4).沟通与协同合作

(5).整体与系统化的改变

3.看板实战

(1).工作过程可视化(Visualize)

(2).限制进行中的工作(Limit Work in Progress,Limit WIP)

(3).管理流(Manage Flow)

(4).提供明确的政策(Make Policies Explicit)

(5).落实反馈循环(Implement Product-feedback Loop)

(6).根据经验改善协同合作(Improve Collaboratively,Evolve Experimentally Using Models and the Scientific Method)

2.2.5  动态系统开发方法

1.DSDM团队成员必须决定的事

(1).必要的(Musts)。

(2).应该要的(Shoulds)。

(3).可以要的(Coulds)。

(4).不要的(Won't Have)。

2.DSDM团队的核心原则

(1).用户的积极参与对项目至关重要。

(2).团队必须有权作出决定。

(3).团队必须专注于频繁的交付产品。

(4).已批准的交付产品必须都符合验收标准。

(5).必须以迭代的方式进行,且每个迭代都有增量产品。

(6).开发过程中,任何改变都必须可复原。

(7).产品需求是站在高阶思维,不是低阶的改变。

(8).全声明周期都要进行产品测试。

(9).团队经由协同合作来沟通。

2.2.6  功能驱动开发模式

杰夫·德·卢卡,提出功能驱动开发(FDD),产品功能都是在以两周为一个迭代的周期交付,并专注于下列工作:

(1).创建模型。与客户初步沟通后,确定项目范畴,并建立模型。

(2).开发功能列表。以相同的样板描述要开发的功能。

2.2.7  水晶家族

1.水晶家族的价值观

(1).高包容性(High Tolerance)。

(2).专注于人和沟通。

2.水晶家族的适用规则

(1).用渐进式开发,最长不要超过4个月。

(2).项目前后都要举办检讨会议,也可以在期中增加一次检讨会议。

2.2.8  精益与敏捷的关系

2.3  通用敏捷框架

2.3.1  敏捷项目管理模式结构

吉姆·海史密斯,提出敏捷项目管理模式结构(Agile Project Management Model Structure,APM),包括5个阶段:

(1).构想(Envision)

(2).推测(Speculate)

(3).探索(Explore)

(4).调整(Adapt)

(5).结束(Close)

2.3.2  敏捷通用过程

迈克·格里菲斯,提出的敏捷通用过程(Agile Unified Process,AUP),将敏捷开发分为5个阶段:

(1).可行性研究(Feasibility)

(2).启动(Initiation)

(3).发布规划(Release Planning)

(4).迭代(Inside Iteration)

  (5).收尾(Close Out)

本文转自SanMaoSpace博客园博客,原文链接:http://www.cnblogs.com/SanMaoSpace/p/6661872.html,如需转载请自行联系原作者


相关文章
|
1月前
|
运维 监控 安全
运维自动化的演变与实践
【8月更文挑战第11天】在信息技术日新月异的今天,运维自动化已成为提升企业效率、保障系统稳定性的关键。本文将深入探讨运维自动化的发展历程,分析其在现代IT架构中的应用,并分享实施自动化过程中的经验教训。通过具体案例,揭示自动化如何优化运维工作流程,提高服务质量和工作效率。
|
2月前
|
敏捷开发 算法 搜索推荐
软件测试的演变:从传统方法到敏捷实践
本文深入探讨了软件测试领域的发展轨迹,从早期以代码为中心的测试方法,到今日强调快速迭代和持续集成的敏捷测试实践。文章通过分析历史数据、行业报告以及权威研究,揭示了测试自动化、跨功能团队合作以及质量保证在现代软件开发中的重要性。进一步地,本文还讨论了如何将科学严谨性融入测试过程,包括采用基于证据的测试策略、利用统计方法评估软件质量,并提出了逻辑严密的测试案例设计原则。
|
4月前
|
敏捷开发 数据可视化 测试技术
理解并实现敏捷开发方法论:技术视角的深入探讨
【5月更文挑战第28天】本文深入探讨了敏捷开发方法论,强调其以人为本、快速迭代、灵活适应和关注价值的核心思想。文章介绍了Scrum、XP和Kanban等敏捷实践,并概述了实现敏捷开发的步骤,包括组建团队、明确目标、选择方法、实施开发和持续改进。同时,提醒注意保持开放沟通、注重质量效率、灵活应对变化及培养敏捷文化。敏捷开发旨在适应软件行业快速变化的需求,通过迭代和增量方式提高效率与质量,确保项目成功。
|
4月前
|
监控
构建高效能团队的敏捷方法论
【5月更文挑战第10天】敏捷方法论助力构建高效能团队,强调个体协作、迭代开发、客户参与和灵活应变。通过选择合适的敏捷框架,建立协作文化,制定明确流程,持续改进,团队能迅速响应市场变化,保证产品竞争力和创新力,促进企业成功和持续发展。
|
4月前
|
敏捷开发 数据可视化
深入探索软件开发中的敏捷方法论
【5月更文挑战第7天】敏捷方法论是应对软件开发中快速变化需求的解决方案,强调迭代、增量和响应变化。它注重团队协作、客户参与和适应变化,典型实践包括Scrum、Kanban和极限编程。优势在于快速响应需求、提高协作效率和降低项目风险,但挑战包括对团队素质要求高、持续资源投入及不稳定客户需求。实施时需根据项目特点调整。
|
4月前
|
项目管理 微服务
拥抱不确定性:技术实践中的敏捷思维构建高效微服务架构:后端开发的新趋势
【5月更文挑战第29天】 在快速变化的技术世界中,不确定性已成为常态。本文探讨了如何在技术实践中运用敏捷思维来应对不确定性,提出了一套实用的策略和心态调整方法。通过案例分析,展示了在项目开发、系统设计以及团队协作中如何有效地应用敏捷原则,以适应需求变动、技术演进和市场波动。文章强调了持续学习、灵活适应和以人为本的管理对于维持技术实践敏捷性的重要性,旨在为技术人员提供一种面对不断变化环境的心智工具箱。
|
敏捷开发
敏捷研发体系基础
敏捷研发体系基础
230 0
敏捷研发体系基础
|
敏捷开发 架构师 安全
「敏捷架构」敏捷架构:规模化敏捷开发的策略(上)
「敏捷架构」敏捷架构:规模化敏捷开发的策略
|
敏捷开发 XML 存储
「敏捷架构」敏捷架构:规模化敏捷开发的策略(下)
「敏捷架构」敏捷架构:规模化敏捷开发的策略
|
存储 分布式计算 架构师
【企业架构】敏捷时代的企业架构:更少的监管,更多的指导
【企业架构】敏捷时代的企业架构:更少的监管,更多的指导