最近正在看java敏捷开发这本书
摘抄了其中的一些内容并且简单的做一了些评价
AMDD更加专注于开发,本书之所以选择AMDD,除了它提出的观点和我的很一致外,还因为它的目的是只做那些足够好且必要的建模工作(例如,格式自由的结构图),也许AM网站上的这段话能很好地总结你对产生工件的感受:“你的目的是为了产生共享性的概念,而不是要写出很具体的文档。”我不需要再多说什么了。
对于XP,你会遇见很多概念,它们会在本章或整本书中遇到。例如,用户故事(user stories)、CRC卡片、测试先行设计、版本发布和迭代计划等。
你的团队每天都要构建程序并对它进行单元测试,程序经常要进行集成(也许随着单元测试的通过提交,会不断地进行),每两周(即一次迭代)一个独立的产品就会产生,可以进行部署。客户每两周就会测试驱动或使用新增的功能(每两个月发布一个新的版本)。
总之,这是一种软件开发者和用户双赢的局面。
以下是XP项目的生命周期
探索阶段
一般的探索阶段包括一组探索性的活动,它能够帮你更好地理解客户的需求和接下来该怎么设计和构建程序,下面是一些在本阶段中可能发生的活动的例子。
n 域建模——领域建模可以帮助你来定义主要的业务概念(实体)和它们之间的关系。
n 用户接口原形和故事板——有些最初版本的页面可以使我们清楚地知道用户对产品界面的要求。而一组相关的界面流程图就是故事板。
n 用户故事——一些用户故事的完成标志着项目的开始,它们组成了发布的第一个版本。用户故事(从某种意义上与要做的事相似)由用户编写,用简短的语言描述出用户定义的产品功能。注意,虽然之前你所收集的用户故事的数量由项目来决定,但是应该努力确保它是足够好的并且是有用的。
n 范围定义——预先定义项目的范围可以使你知道什么需求是需要开发的,什么是可以延期的。它也阐述了用户对软件的期望。
n 分析——这是个综合性的活动。例如,需要在白板上画出一个非正式的程序架构图,列出术语,进行分析。
计划阶段
计划对于不同的人来说具有不同的意义,对于我来说,至少要包括以下部分:
n 版本发布计划——它实际上是为系统的下一版本所做的计划。它可以很容易地被表单程序、字处理程序或HTML表格汇总在一起。它列出了在下一版本中将要包括的所有用户故事,并且按照不同的迭代分组。一般地,一个发布是有固定时间要求的,最短1个月、最长3个月,两个月一般是比较好的选择。
n 迭代计划——在每一次迭代之前都要有一个迭代计划,包括在下一次迭代中客户希望实现的用户故事。迭代时间一般也是固定的,最短一周、最长3周,两周一般是比较好的选择。
n 规范定义(代码、数据库、过程)——在开始任何开发之前,为一些东西制定规范来统一化是非常好的做法。例如,这些规范包括:编码约定、数据库命名约定和过程(包括构建、继承和发布)约定等。
产品的迭代开发阶段(渐进式构建软件)
迭代开发也许是一个你很熟悉的术语,但是不同的人使用不同的软件开发方法,对迭代和每个迭代过程所包含的内容的理解是不同的。
在我看来,迭代开发意味着每一次迭代中都要有设计、编码、用户验收和生产就绪代码的部署。生产就绪的代码要部署到生产环境中,如果在一个大公司,经常部署到生产环境并不是很现实,需要把它先部署到验收环境中,只要用户验收通过,就可以进入到下一个迭代过程中了。总之,每次迭代需要有以下的事件:
n 开发人员对开发任务进行评估,制定下次的迭代计划;
n 客户和开发人员事先的沟通交流;
n 设计——包括CRC卡、UML图等;
n 编码——测试先行,按照要求重构代码/数据库/程序架构,在最后阶段优化;
n 用户验收测试(UAT)。
n 将迭代后的版本部署到生产环境或验收环境中,这个过程也叫做发布一个小版本。
按照这样的方式进行迭代,可以不断地建立项目的下一个版本。假定一个项目,我们估计会在3个月内完成,我们会把它分解成每两周一次的迭代,所以会有大约6次的迭代开发。
每一次迭代的截止时间是工程可以进入下一个阶段的时候,换句话说,迭代的小版本成为了生产就绪的代码(稳定的代码),即使它只是完整系统的一个子集。
- 大小: 15.8 KB
分享到:
相关推荐
敏捷模型开发流程是一种迭代和增量的软件开发方法,强调快速反应变化和持续交付有价值的软件产品。根据提供的文件内容,我们可以从中提炼出以下敏捷开发的相关知识点: 1. 产品待办事项(Product Backlog): 产品...
### 敏捷模型详解 #### 前言: 在当今快速变化的市场环境中,软件开发团队面临着越来越多的挑战。为了适应这种变化并提高产品的质量,许多团队转向了敏捷开发模式。敏捷开发是一种以人为本、迭代、逐步推进的软件...
Spotify的敏捷模型的有效性和不可复制性主要源于其独特的企业文化和瑞典的文化背景。 首先,Spotify的敏捷模型建立在其高度自主和灵活的小队结构之上。这些小队由跨职能的团队成员组成,每个团队都有明确的业务目标...
在敏捷模型驱动工程(Agile Model-Driven Engineering,MDE)中使用DevOps工具链是当前软件开发领域的一个重要趋势。DevOps是一种实践,旨在融合开发(Development)和运维(Operations),通过持续集成(CI)和持续...
基于敏捷模型的D公司移动互联网软件项目管理策略研究.pdf
综上所述,CMMI 1.3版本的变化旨在使模型更加贴近现实的软件开发环境,尤其是在敏捷开发领域的最佳实践,同时也强化了需求管理、结果导向和与组织目标的连接。这些改进有助于组织更好地适应快速变化的软件开发场景,...
本文主要探讨了四种常见的软件开发模型:瀑布模型、增量模型、螺旋模型以及敏捷开发模型,并结合华为云DevCloud HE2E DevOps框架,阐述了软件开发的新形势与挑战。 首先,瀑布模型是一种线性的开发模型,它按照固定...
敏捷模型的核心在于其灵活性和自适应性,它强调快速响应变化,通过迭代和增量的方式实现软件的开发和交付。 **敏捷模型的特点**: 1. **敏捷宣言**:敏捷模型遵循敏捷宣言,强调个体和互动高于流程和工具,可工作的...
敏捷成熟度模型使用说明 敏捷成熟度模型(Agile Maturity Model,简称 AMM)是一种评估敏捷团队成熟度的模型,它通过 8 个维度和 5 个级别来评估团队的成熟度,并帮助团队找到持续改进的方向和目标。该模型建议每...
书中不仅介绍了敏捷开发的基本概念,还深入剖析了各种敏捷模型,包括极限编程(XP)、水晶方法(Crystal)、特征驱动开发(FDD)和Scrum等,旨在为开发者提供全面的理论指导和实践经验。 敏捷开发的核心原则是...
Spotify敏捷模型映射微服务 建造 > go run .circleci/mage.go 去做 ### 项目 Golang专案最佳作法 转到模块 去工具供应商 Magefile迁移 功能标志支持 电汇代码生成 CircleCI集成 文献资料 ### 服务 ...
**提炼模型阶段**:基于两年的实际经验,腾讯开始总结并形成适用于自身项目的敏捷模型。这些模型不仅考虑了腾讯的特点,还为类似项目提供了具体的指导。主要包括极速模型和迭代模型两种。 1. **极速模型**:适用于...
•AMM(敏捷成熟度模型) 全称Agile Maturity Model,是一套用来评估软件开发团队或者整个开发组织的当前敏捷状态和将来的目标状态的框架,评估的结果用来帮助团队识别改善点。 •可以评估一个IT组织的敏捷程度,其...
此外,瀑布模型可以通过与迭代模型、敏捷模型等其他模型的结合,形成混合模型。混合模型既保持了瀑布模型阶段清晰、文档化的特点,同时又吸收了其他模型的灵活性和迭代优势,从而更好地适应不断变化的项目需求。 ...
在软件工程领域,软件开发模型是用于指导软件项目开发...例如,敏捷模型在需求频繁变动的情况下表现出色,而瀑布模型则更适合需求清晰且稳定的项目。理解并熟练应用这些模型,对于软件项目经理和开发人员来说至关重要。
常见的软件生命周期模型有多种,如瀑布模型、增量模型、迭代模型、螺旋模型、敏捷模型等。 - 瀑布模型:按照线性的顺序执行各阶段,每个阶段完成后才进入下一个阶段,具有较强的顺序性和依赖性。 - 增量模型:将...
敏捷开发是一种旨在提高软件开发效率和质量的方法论,其核心理念是通过持续的反馈和适应性调整,确保软件产品能够快速响应变化,并满足用户的真实需求。《敏捷开发的必要技巧》一书,由王伟杰(Wingel)翻译自...