博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解敏捷开发准则
阅读量:5023 次
发布时间:2019-06-12

本文共 1846 字,大约阅读时间需要 6 分钟。

传说中在2001年2月的某一天,17位搞软件开发的老大哥们在一个叫Snowbird的有雪有鸟的胜地开会,自然,他们只能讨论软件,大概是觉得整天写文档太烦了,他们憧憬未来的轻量级开发方法,工程师都是实干型的,他们立即起草了《》来表达他们的想法,宣布他们对以前开发方法的不满,并组建了,从此一发不可收拾。他们提出的引发了后来对于软件开发的很多争论与思考。

以下是对他们提出的12条敏捷开发准则的最后3条的理解:

 

Principle 10: Simplicity--the art of maximizing the amount of work not done--is essential.

翻译:精简——将不需完成的工作量最大化的技能——是不可或缺的

初看这句话觉得很诡异,具体翻译来说是“精简性——最大化未完成的工作量的艺术——是根本的。”除去中间的插入语,剩下的部分就是很直接的“Simplicity is essential.”。细想之下,发现这个原则在软件开发中却是很有道理。于是乎,我想到了一个关于效率efficiency的基础原则:KISS Principle—Keep it Simple, Stupid.这是一个很关键的概念,但是很多人都总是忽略遗忘它。不要给自己添加额外的工作,要找到针对某个问题的最简单的解决方法。Work smarter, not harder. 就我个人看来,在很多事情上可以去做到维持工作最简化。首先就是使用类型和模板,知道什么样的模板是可用的可以为我们节省很多时间;其次,尽量写简短简单的模块化的东西,用概念,任务和引用来组合不同的内容。把要实现的任务分成小块,就能够很容易地完成添加、删除和重构;尽量避免使用那些很复杂的分支和过程,否则不仅是用户,大概连构建者本人都会觉得很混乱吧;最后就是我觉得最重要的做到“maximize the amount of work not done”的方法就是不要包含任何用户并不需要的信息在你的工程里,要始终把他们的需求和任务记在脑海。否则,即使你实现了这样那样酷炫的功能,对用户而言没有任何吸引力,不是偷鸡不成蚀把米么?

 

Principle 11:The best architectures, requirements, and designs emerge from self-organizing teams.

翻译:最好的架构、需求和设计源于能有效自我组织的团队

团队合作的有效性和活力是一切开发工作的基础。然而,有效合作的团队并不是想当然的,首先团队的组建就需要仔细考虑,宁缺勿滥应该是比较好的准则吧,毕竟这里面如果来了南郭先生就不像乐队一样听不出来了,这种潜在的矛盾源(请允许我这样说吧)必须扼杀在萌芽阶段,恩。另外,团队有效的自我组织能力还来源于成员们的默契,互相尊重,以及互相的了解。所以,项目中大家适量地出去玩,胡侃,腐败等是必须而且需要注意利用的哦。

 

Principle 12:At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

翻译:团队内部定期的思考如何变得更有效,并按此来修正及优化自身的行为。

定期的审查可以使成员对当前的团队状态达成统一认识,这样才能更好地制定下一步计划。可能有人会说不是敏捷开发吗?不是应该刷刷刷开到极致(extreme-programming),赶紧开发完就行了嘛。然而就像你要独自去一个陌生的地方,说一帆风顺永远都是安慰话~开发中不可避免的会遇到困难,进而导致与计划的不一致,团队成员间进度的不一致,理解的不一致等。定期进行集体的交流,探讨做的不好的地方,是什么原因,应该怎么弥补修正,然后吸取经验教训继续前行。也让整个团队的成员达成一致,互相有交流的基础。所谓心有灵犀一点通,在团队的级别上要达到这一点不可避免要通过一些有组织的“争论”、“思考”。每个成员都应该在思考的过程中争取把问题暴露出来,并坦诚接受有益的改变和建议,这样自己才能做得更好,从而团队才能表现得更好。

 

理解难免有不当的地方,请指出,期待与你交流^^

转载于:https://www.cnblogs.com/codingcrazy/archive/2010/12/02/1894010.html

你可能感兴趣的文章
【转】常用的latex宏包
查看>>
[TMS320C674x] 一、GPIO认识
查看>>
酷狗的皮肤文件存放在哪
查看>>
iOS RunLoop简介
查看>>
C++的引用
查看>>
T-SQL查询进阶--深入浅出视图
查看>>
MapKeyboard 键盘按键映射 机械革命S1 Pro-02
查看>>
Android读取url图片保存及文件读取
查看>>
完整ASP.Net Excel导入
查看>>
判断CPU大小端示例代码
查看>>
ARTS打卡第13周
查看>>
循环队列的运用---求K阶斐波那契序列
查看>>
pta 编程题14 Huffman Codes
查看>>
初始化bootstrap treeview树节点
查看>>
python selenium向<sapn>标签中写入内容
查看>>
JS常用坐标
查看>>
使用”结构化的思考方式“来编码和使用”流程化的思考方式“来编码,孰优孰劣?...
查看>>
C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)【转】...
查看>>
关于git的认证方式
查看>>
字符串按照字典序排列
查看>>