写点什么

给成功敏捷开发的 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:405491
用户头像

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

关注

评论

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

HashMap 中的一个“坑”!

王磊

Java hashmap LinkedHashMap

SAP CRM和C4C的内容管理(Content Management)

汪子熙

内容 CRM C4C 11月日更

面试必备!阿里内部Java面试八股文出炉,教科书式完美回答

Sakura

Java 程序员 架构 面试

杂谈——什么是Google Fuchsia ?

思想者杰克

开源项目——swift开发记事本APP

思想者杰克

新消费:如何度过从0到1的破局期?

石云升

学习笔记 11月日更 新消费

央行数字货币即将破茧,一场大变局,震撼全球!

CECBC

【死磕Java并发】-----深入分析synchronized的实现原理

chenssy

死磕 Java 死磕 Java 并发

北鲲云超算平台如何成为就生命科学云计算领域先行者?

北鲲云

赋能优秀传统文化,区块链助力讲好中国故事

CECBC

干货!Spring Cloud微服务架构进阶,你还不了解的都在这里

Java 程序员 架构 微服务 SpringCloud

架构课毕业总结

伏波

架构

软件架构治理 之 架构混沌之谜

码猿外

架构 软件架构治理

算法—算法的时间空间复杂度

思想者杰克

王者荣耀商城异地多活架构设计

guangbao

区块链的抽象与演进

CECBC

布局人工智能,银行有的不只是智能客服

CECBC

阿里大牛教你如何用Dubbox+SpringBoot+Docker架构,实现双11项目

编程 程序员 springboot

如何在实际场景中使用异常检测?阿里云Prometheus智能检测算子来了

阿里巴巴云原生

阿里云 云原生 Prometheus 异常检测

pygame 小游戏前的准备工作要做足

梦想橡皮擦

11月日更

电商秒杀系统

伏波

架构

区块链+农业开启智能化生产时代 解决世界性食品及粮食安全问题

CECBC

20道阿里面试必问JVM面试专题(文末附送答案及JVM学习文档)

编程 程序员 JVM

十年数据库专家,呕心力作MySQL技术精粹,薪资直涨3K其实很轻松

数据库 程序员 MySQL 数据库

大牛呕心力作——Kafka开发实战,助你徜徉大数据时代

redis 程序员 java编程

开源项目——FLutter开发录音APP

思想者杰克

架构训练营毕业总结

小卷儿

模块7作业

4anonymous

Eureka 源码之客户端注册

悟空聊架构

Eureka 源码剖析 注册中心 悟空聊架构

模块七作业

Geek_fc100d

「架构实战营」

云知声 Atlas 超算平台: 基于 Fluid + Alluxio 的计算加速实践

阿里巴巴云原生

阿里云 云原生 实践 Fluid Alluxio

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