换个角度看敏捷2-敏捷软件开发概述
敏捷软件开发概述
如同前文所述,可以把敏捷看做一种问题解决方式。下面我们就从敏捷问题解决方式的角度解读敏捷软件开发。
敏捷软件开发
软件开发是问题本身和问题解决能力不确定的一种典型情况。软件项目起源于人的构想,随着时间不断变化。项目团队对项目的认识随时间不断加深,成员能力不断提升,工作方式和过程改变导致团队开发能力不断变化。
敏捷软件开发分为3个层次。
产品层
1. 问题与问题参与者
问题是产品构想。问题提出者是客户(业务负责人),问题解决者是特性团队。
2. 问题分解与检验
a) 问题分解
将问题从产品构想分解到业务特性。业务特性是问题提出者客户可检验的单位问题。
b) 问题检验
在可工作的软件中检验完成的业务特性。可工作的软件是客户检验问题完整性的基础。
3. 迭代
迭代的大小从1周到4周不等,这是一个客户可接受的频率(节奏)。
业务特性层
1. 问题与问题参与者
问题是业务特性。问题提出者是特性团队,问题解决者是特性团队或负责业务特性的相关人员。
2. 问题分解与检验
a) 问题分解
将问题从业务特性分解到单元。单元是特性团队可检验的单位问题。
b) 问题检验
在可工作的业务特性中检验单元的完成情况。
3. 迭代
迭代的大小从小时到天,这是一个特性团队可接受的频率(节奏)。
单元层
1. 问题与问题参与者
问题是单元。问题提出者是开发人员,问题解决者是开发人员自身或另一个开发人员(结对编程)。
2. 问题分解与检验
a) 问题分解
将问题从单元分解到单元职责。
b) 问题检验
在预期的单元测试中检验单元职责的完成情况。
3. 迭代
迭代的大小从分到小时,这是一个开发人员可接受的频率(节奏)。
常见敏捷软件开发方法学
Scrum
Scrum和敏捷软件卡发有很多共同点。而对比敏捷软件开发,可以看到Scrum的敏捷实践侧重于高层,而缺乏低层的敏捷实践。
极限编程XP
XP与敏捷软件开发的吻合度更高。它是由一系列简单却互相依赖的实践组成,这些实践结合在一起形成了一个胜于部分结合的整体。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?