写点什么

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

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

关注

评论

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

如何使用Putty登录安装在VirtualBox里的ubuntu

汪子熙

ubuntu windows 虚拟机

ABAP和Java里关于DEFAULT(默认)机制的一些语言特性

汪子熙

SAP abap Netweaver SAPGUI

架构实战营 - 模块四作业

Sun

Dubbo 令牌验证和优雅停机

青年IT男

dubbo

SAP UI5, CRM, S/4HANA 和 C4C里的Association, Composition and Aggregation

汪子熙

JavaScript CRM SAP SAP UI5

架构师训练营 作业四

开拓纪

如何使用腾讯云提供的云主机

汪子熙

腾讯云 云主机 Cloud

会说话的ABAP report

汪子熙

SAP abap SAPGUI

那些年我用过的SAP IDE

汪子熙

ide SAP abap SAPGUI

S4HANA和CRM Fiori应用的搜索分页实现

汪子熙

CRM SAP Fiori SAP UI5 S/4HANA

S4CRM和C4C的技术比较

汪子熙

CRM SAP ERP abap Cloud for Customer

ABAP git客户端的简单介绍

汪子熙

GitHub SAP abap

如何给VirtualBox虚拟机的ubuntu LVM分区扩容

汪子熙

虚拟机 Cloud virtualbox CloudFoundry

ABAP的语法高亮是如何在浏览器里显示的

汪子熙

SAP abap SAPGUI 语法高亮

如何使用SAP Cloud for Customer里的ABSL代码调用Web service

汪子熙

SAP C4C Cloud for Customer

优化docker镜像的几种方法

运维研习社

Docker 镜像 优化技巧 5月日更

你真的会用ABAP, Java和JavaScript里的constructor么?

汪子熙

JavaScript CRM SAP abap

ABAP宏的调试

汪子熙

调试 SAP abap macro

人生算法:做事要闭环

石云升

读书笔记 职场经验 5月日更 人生算法

SAP UI5和CRM WebUI的View和Controller是如何绑定的

汪子熙

CRM SAP abap WebClient UI SAP UI5

ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较

汪子熙

JavaScript nodejs CRM SAP C4C

如何计算并测量ABAP及Java代码的环复杂度Cyclomatic complexity

汪子熙

Java SAP abap

在浏览器里使用SAPGUI里的SE80

汪子熙

JavaScript SAP abap Fiori SAP UI5

S/4HANA for Customer Management里的搜索分页处理

汪子熙

CRM SAP abap S/4HANA

SAP Fiori里的List是如何做到懒加载Lazy load的

汪子熙

JavaScript SAP Fiori SAP UI5

如何在ubuntu上安装virtualbox的driver module vboxdrv

汪子熙

ubuntu 虚拟机 vboxdrv 驱动

如何将iso文件安装到Virtual里的ubuntu去

汪子熙

Linux ubuntu windows 虚拟机 Windows 10

SAPGUI里实现自定义的语法检查

汪子熙

SAP abap SAPGUI 语法检查

CRM, C4C和Hybris的工作流简介

汪子熙

CRM SAP C4C Hybris Commerce Cloud

sap.ui.require in SAP UI5 and require in nodejs

汪子熙

nodejs SAP SAP UI5

如何在Chrome development tool里查看C4C前台发送的未经 GZIP 压缩之前的请求细节

汪子熙

chrome SAP C4C Chrome开发者工具

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