阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

给成功敏捷开发的 26 条建议

  • 2009-11-08
  • 本文字数:1084 字

    阅读完需:约 4 分钟

Keith Swenson 最近编制了一份给敏捷软件开发的 26 条建议。Keith 提到他常常收集一些不同主题的至理名言,这份列表是这一系列至理名言的精华,肯定能很好地帮助到敏捷软件开发。

在他的博文中,有人评论说很多建议可能并不是专门针对敏捷的,而是面向如何更好的软件开发和设计。Keith 回应说对于有资历的敏捷实践者而言,那些建议可能听起来太平常了,但是还是有更多的受众对那些实践并不是太了解。他补充说:

我正和几个团队在日本一起工作,他们使用一种很严格的瀑布开发模式。对于这种团队来说,我提到的那些建议,可能有一半都“令人惊奇”,甚至可能被认为是很激进的意见。比如“先写测试再写代码”以及“没有必要就永远不要去实现”这些对他们来说就是很激进的概念。他们自豪于“全面”实现功能,甚至去杜撰客户并未提出的用例。结果当然就是代码过度,这是另一种浪费。他们有时候等 6 个月来完成测试。对于在严格的瀑布模式中进行实施的人们来说,测试只是一种“辅助”,正确工作的程序员不需要它。很惊奇哦?

Keith 提议的某些“不是非常常见” 的有趣建议有:

  • 完整地做完第一件事后再开始第二件。软件开发的一个大问题就是同时做几件事情,这将不可避免地使得某些工作被废弃从而造成浪费。用厨房来比喻就是:“先上这道菜,再开始烧下一个。”
  • 不要害怕做决定;不要害怕改变先前的决定。最大可能地延迟决策,直到必须做决定的时候。一旦有新的信息了,不要害怕改变先前的决定。
  • 度量、度量、度量。敏捷开发帮助处理了未来不确定性的问题。但是对于过去,应该没有不确定的事。
  • 设计是为了人,而不是系统。太多的程序员偏离了设计的目的,而更关注技术本身。软件最终的成功取决于让人们有效合作并增加商业价值。
  • 过早地进行优化是万恶之源。仅仅基于对代码的静态理解就直觉地判断什么对整体性能最为重要,结论几乎总是错误的。相反,应该衡量整个系统的行为,随后来识别性能问题。
  • 决不过度强调功能的通用性。这也就是著名的“YAGNI——你不会需要它的(You Aren’t Going to Need It)。”
  • 不要用代码行数来度量代码。完成特定任务所需的代码行数,不同的程序员之间和编码风格之间差异很大。应该去统计功能用例的数目。
  • 软件是可塑的。不像实体制造业,软件可以很容易地获得显著改变。
  • 不要去发明新的语言。XML 的出现引领了无休止的专门订制“脚本语言”的潮流,想来应该会让软件开发更加趋同。这种推理的缺陷在于,离开某个特定实施的环境,几乎从来都没能很好地精确定义操作行为。

想获得更多的信息,请访问这份完整的建议清单。如果你觉得有什么重要的观点遗漏了,请留言。

查看英文原文: 26 Hints for Successful Agile Development

2009-11-08 06:405253
用户头像

发布了 114 篇内容, 共 31.7 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

排序——归并排序 & 基数排序

若尘

数据结构 排序 排序算法 归并排序 基数排序

☕【JVM技术探索】史上最清晰的探究和分析【Safe Point+Safe Region】的原理和运行机制(上篇)

洛神灬殇

GC JVM原理 7月日更 STW

模块七作业

c

架构实战营

Scrum Patterns:完成定义(译)

Bruce Talk

敏捷开发 译文 Agile Scrum Patterns

柯桥平面设计培训到哪里?怎么排版?兴德!

Geek_196d9f

1.1什么是架构

Lemon

架构

呃!原来如此!

Nydia

架构实战营 模块七作业

eoeoeo

架构实战营

模块七作业(王者荣耀商城异地多活架构设计)

Chris Cheng

架构训练营

Go 学习笔记之 包与文件

架构精进之路

Go 语言 7月日更

vue面试题+答案,2021前端面试

buchila11

Vue Vue 3

模块7学习总结

TH

架构实战营

架构实战营 模块七课后作业

iProcess

架构实战营

架构实战营模块1作业

Tina

柯桥室内设计培训到兴德!良心机构!

Geek_196d9f

模块7作业 王者荣耀商城异地多活架构设计

TH

架构实战营

Spring源码解析系列:Spring Web 请求初探

Java spring 源码解析

Spring 源码解析 -- SpringWeb请求映射解析

Java spring 源码解析

新的开始

Justin

柯桥电脑办公培训到兴德!良心机构!

Geek_196d9f

Linux之whereis命令

入门小站

Linux

【Flutter 专题】130 图解 DraggableScrollableSheet 可手势滑动的菜单栏

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

Redis - Cluster - 源码阅读(一)

旺仔大菜包

redis

绍兴柯桥学历提升报到哪里?准备什么资料?兴德

Geek_196d9f

网络攻防学习笔记 Day64

穿过生命散发芬芳

网络攻防 7月日更

架构实战营 模块七作业

夏日

架构实战营

免费分享Java虚拟机JVM的优秀图书

Java入门到架构

Java 书籍推荐

在线2-36任意进制转换工具

入门小站

工具

【LeetCode每日一题 Day 5】5. 最长回文子串

编程熊

程序员 面试 算法 LeetCode 笔试题

1.2如何画出优秀的系统架构图

Lemon

系统架构 架构视图 架构图

「架构实战营」第一课作业

青竹

架构实战营

给成功敏捷开发的26条建议_研发效能_Vikas Hazrati_InfoQ精选文章