写点什么

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

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

关注

评论

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

架构师训练营——第5周学习总结

jiangnanage

数据库周刊31丨openGauss 正式开源;7月数据库排行榜发布;oracle ADG跨版本搭建;PG解决社保问题;mysqlbinlog解析……

墨天轮

MySQL 数据库 oracle 性能优化 opengauss

架构师训练营 W5 作业

Kun

极客大学架构师训练营

架构师训练营第五周作业

talen

新增的两个区块链职业到底是做什么的?

CECBC

技术人才 系统操作 需求落地 框架搭建

05周作业—技术选型

dao

极客大学架构师训练营 作业 一致性Hash算法

架构师训练营 - 第五周 - 学习总结

stardust20

Spring核心原理解析

Java spring

让Go“恐慌”的十种方法

博文视点Broadview

Go 语言

Redis-进阶篇一

多选参数

数据库 redis redis高可用 redis6.0.0 Redis项目

作业

chenzt

“区块链+” 医疗行业场景应用迎来大发展

CECBC

医疗方案 区块链+ 场景应用落地 多元场景应用

一致性hash算法的实现和平衡性测试

周冬辉

话题讨论|作为一名程序员,你下班之后都会做些什么?

InfoQ写作社区官方

写作平台 话题讨论 话题 热门活动

朱嘉明教授获2020杭州区块链国际周“特别致敬奖”

CECBC

CECBC 朱嘉明 区块链国际周 特别致敬

架构师训练营第五周作业

架构师 极客大学架构师训练营

一口气说出 OAuth2.0 的四种授权方式

程序员小富

Java oauth2.0

你可能还不知道自己无知

小天同学

读书 智能时代 信息噪声 高考

架构师训练营--第五周学习总结

花花大脸猫

极客大学架构师训练营

一致性Hash算法

技术小生

极客大学架构师训练营

Spring Boot读取配置文件的几种方式

Java旅途

Spring Boot properties yaml

国内首本CTF赛事技术解析书籍,五年之约,兑现了!

华章IT

网络安全 Web CTF Reverse PWN

kafka监听mysql实时数据变更

爱java爱自己

MySQL mysql事务

分布式缓存总结

罗亮

分布式缓存一致性hash算法实现

考尔菲德

第五周总结

考尔菲德

啃碎并发(四):Java线程Dump分析

猿灯塔

计算机中短期学习路线

zack

Scrum Master与Project Manager的区别

Mew151

Scrum

架构师训练营 -- 第五周作业

stardust20

第5周结构师训练营——作业

jiangnanage

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