十年前对敏捷开发的体会

简介: 十年前对敏捷开发的体会

说明

翻到10年前的旧文,发出来。记录自己的成长。

正文

敏捷开发强调灵活性,适合小而精的团队。许多小公司10年来一直稳定在五个程序员,可能适用。

四大价值观

个体与交互甚于流程与工具。非常适合小而精的团队。沟通的成本正比于人员的平方。团队成员需要磨合才能高效沟通,所以不适合新团队,也不适合高流失的团队。

可运行的软件甚于面面俱到的文档。和客户确认需求时,如此甚好,很多时候通过文档确认需求的作用可以忽略。但文档可以记录总结、积累,和同行交流,也可培训新人。

客户合作甚于合同谈判。生产力是有限的,所以只能完成用户最需要的。只有反复谈判才能知道用户的取舍。

响应变化甚于遵循计划。具体情况具体分析。遵循计划可以避免遇到同类问题。

 

简单设计与测试先行

关于敏捷开发,我最认可的两个原则是:简单设计与测试先行。

简单设计,我理解的是:一,只完成系统分析师与架构师要求的需求,不要增加任何需求。二,反复优化设计,使得设计简洁。三,使用规范、惯例划分模块和命名,如果想创新,要能一句话能说明白。

工匠一,先拉上一根水平线,每砌一块砖时,都与这跟水平线进行比较,使得每一块砖都保持水平。工匠二,先将一排砖都砌完,然后再拉上一根水平线,看看哪些砖有问题,对有问题的砖进行适当的调整。工匠一就是测试先行。

Scrum(橄榄球)

类似于增量模型,每个子产品称为一个冲刺。不同点如下:一,文档少(产品订单、冲刺订单、燃尽图),且没有设计文档。二,每日站会代替工作日志。15分钟内,包括:昨天干了什么,今天计划干什么?遇到什么问题。三,需求没有评审,需求理解错误(这经常发生)的话,只有在冲刺结束的评审会才能发现。四,反思会/回顾会。有专门的时间进行反思和总结,这个有利于总结。

极限编程(XP)

极限编程的4个商业实践:一,测试驱动开发。二,结对编程。让2名开发人员共用一台电脑,写同一段代码。假定旁观者可以大幅提升效率。三,集体代码所有制和持续集成。集体代码所有制假定大家解决问题的思路完全一致,不会出现“按起葫芦浮起瓢”。持续集成可以提前发现问题。四,重构。永远保持代码处于较优状态。与Scrum的不同:没完成的需求可以被替换。

 


相关文章
|
数据采集 自然语言处理 程序员
ChatGPT 调教日记(一):Markdown 解析器
ChatGPT 调教日记(一):Markdown 解析器
386 0
|
算法
MATlAB运用——数值积分
MATlAB运用——数值积分
325 0
|
10月前
html5+svg太空人404动画模板源码
html5+svg太空人404动画模板源码
143 17
|
人工智能 弹性计算 运维
《触手可及,函数计算玩转 AI 大模型》解决方案深度评测
本次评测全面评估了《触手可及,函数计算玩转 AI 大模型》解决方案,涵盖实践原理理解、文档清晰度、部署体验、优势展现及生产环境适用性。方案通过函数计算实现AI大模型的高效部署,但模型加载、性能指标和示例代码等方面需进一步细化。文档需增加步骤细化、FAQ、性能指标和示例代码,以提升用户体验。部署体验方面,建议明确依赖库、权限配置和配置文件模板。优势展现方面,建议增加性能对比、案例研究和成本分析。此外,为满足实际生产需求,建议增强高可用性、监控与日志、安全性和扩展性。
172 2
|
Unix Linux 开发工具
【Linux】centos7安装配置及Linux常用命令
【Linux】centos7安装配置及Linux常用命令
427 1
|
存储 索引 Python
NumPy 教程 之 NumPy 统计函数 6
这段内容介绍了 NumPy 中的 `numpy.mean()` 函数,该函数用于计算数组元素的算术平均值。通过设置 `axis` 参数,可以在不同轴上计算平均值。示例展示了如何对一个二维数组进行整体及按行、列计算平均值的过程及其结果。
399 2
|
消息中间件 监控 Java
使用 JMX 监控 Kafka 集群性能指标
使用 JMX 监控 Kafka 集群性能指标
1432 1
|
存储 监控 Python
python 检测文件大小并定期删除
python 检测文件大小并定期删除
177 1
LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?
LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?
532 0
|
数据可视化 测试技术 持续交付
Git Flow规范在工作中的使用流程
Git Flow规范在工作中的使用流程
351 0