精益与敏捷开发的对比

上一篇 / 下一篇  2014-09-15 00:17:11 / 个人分类:项目管理

    好多年都没写博客了,一直忙着?忙的忘记了学习,忘记了思考……人不思考便会退步,这也是为什么这两年一直忙忙碌碌却一事无成的原因把!

0p @$O{(d"s2XF0
    今天,翻译一篇最近看的一本书的一章,算是重启这扇尘封已久的通往智慧殿堂的大门吧。我最近打算做一项研究在软件开发流程中应用精益思想。读MBA两年,临近毕业觉得所学无用,听到很多大学毕业生都在谈知识或者大学知识无用论,我这工作了N年后,又重返校园原本以为以多年的社会实践之后对知识更加敬畏一些,能够学为所用,然而我错了,仍然像原来在大学时代的我一样,这些知识的唯一输出就是体现在期末考试里,在生活工作中别无它用,再一次将他们束之高阁!思考模式是习惯养成的,你是习惯用经验思考或者直觉思考,还是用知识在思考。如果是前者,即使你学习了再多的知识对你的思考毫无用处。MBA课程对于我一个多年搞技术的我眼里,那至多是开拓视野,如果有机会可能指导创业的些本事,对我目前的工作毫无参考价值。直到现在临近毕业,开始做毕业论文的时候,才开始回味、审视过去两年的知识体系,真的对目前工作没有借鉴意义么?其实不然,《市场营销》可以指导你如何识别组织中的机会,并且教给你如何展示、兜售你的才华和技术成果;《财务会计》教会你审视你提交的方案会带来的会计成本,这将直接影响分管预算的负责人是否赞成你这个方案;《战略管理》让你更快理解公司的发展方向和重点,你好在别人还没有看清形势的时候你已经走在他们前面,进入公司的重点投资部门,有更多的成长机会,有更好的待遇,等等。我对精益软件开发的灵感来源于《运营管理》,因为我在这个行业打拼了这么多年,还没在软件行业有人提到精益思想,然而制造业大概无人不知无人不晓了吧。在软件行业日益成熟的年代,大多数软件开发日益不是什么高科技,就像目前大家都不在认同联想这种电脑制造商属于什么高科技企业一样。因此软件开发逐渐地像在生产软件了,是个耗时耗力的体力活儿了,我们也经常自嘲为“码农”——产代码的农民。因此,我突然想到丰田精益生产是否可以应用于软件开发领域,提高效率,降低成本,提高质量,缩短生命周期。正对自己的天才跨界想法啧啧称赞时,在Google里一搜还真有人在研究这个Lean Software Development!靠!!!而且从2003年
Proppendieck夫妇就出版了《敏捷软件开发工具——精益开发方法》,真应了那句老话,盲目自大是无知的表现!国人确实研究不多,在知网上可以搜索关键词“精益+软件开发“,寥寥几篇,而且没有什么价值,而国外已经有不少的著作出版。不管怎么说,精益软件开发已经燃起了我的猎奇心理,我决定将其研究一番!
51Testing软件测试网xX ~%L%HDk
    言归正传,目前国外的著作中谈起精益软件开发便离不开敏捷开发,为什么?二者到底是否是一回事?这对于我研究精益软件开发,是不可回避的主题:区分精益和敏捷的关系,也就是下面下面这篇文章的主要内容给了我解释。虽然本文提到研究精益软件开发需要利用敏捷方法,然而我认为精益思想有更加广阔的天空。目前敏捷开发的应用还是有一定的局限性,例如它目前不适合耦合度很高的复杂系统的开发,然而我相信精益思想适合改造任何生产流程,甚至于改造我们的生活的方方面,在一个精益咨询师眼里这个世界充满了浪费(muda),没有不可以用精益的地方!只要运用得当,甚至可以成就一个精益的人生!
---------------------------------------------------------------
Lean Versus Agile
精益与敏捷对比 
摘自《精益软件开发的艺术》
作者 Curt Hibbs, Steven Jewett & Mike Sullivan
51Testing软件测试网IT6j_hC)l.E
So, what is so different about Lean and Agile software development? On the surface, not too much.
究竟精益和敏捷开发到底有什么不同?表面上看,似乎却别不大。
51Testing软件测试网 V(Y;iI;b)P2fb8Y
Both Lean and Agile software development aim to improve the quality of the software (as perceived by the customer) as well as the productivity of the software development process. They both value (and even welcome) the changes in requirements that will almost certainly occur over the course of the project. They both place the highest value on delivering software that meets the customer’s real needs (not the initial perceived customer needs).
精益和敏捷开发都旨在提高软件用户可以感知的质量以及软件开发的效率;都重视甚至于欢迎项目中必然的需求变化;都将向用户交付真正符合他们需求的软件作为至高无上的追求。
51Testing软件测试网+T(r3RG"m\Bx G
The difference is in the underlying perspective and philosophy…the mindset.
他们的不同都是深层次的,比如他们思想,包括观点以及哲学等。
51Testing软件测试网u&`%L:|6v%V/`k9p
Agile mostly concerns itself with the specific practice of developing software and the project management that surrounds that software development. Agile methods do not generally concern themselves with the surrounding business context in which the software development is taking place.
敏捷更加关注特定的软件开发以及软件项目管理的实践,而不太关注软件开发的业务环境。
51Testing软件测试网:m$w5kAT3tS
Lean principles, on the other hand, can be applied to any scope, from the specific practice of developing software to the entire enterprise where software development is just one small part. It is even common in Lean manufacturing to go outside the company and include suppliers in the scope of Lean process improvement. The larger the scope, the larger the potential benefits.
而精益原理一方面可以应用于任何范围和领域,从软件开发特定实践到到整个企业(即使软件开发仅仅是其中一小部分业务),甚至可以涵盖供应链上的流程的精益改造。而且越大范围地应用精益思想,潜在收益会随之越大。

T/Dbh8b0
Most Lean efforts start out small and expand their scope over time, realizing more and more benefits in the process. In any case, it can be safely said that Lean views all Agile methodologies as valid supporting practices.
精益实践的大部分精力将放在从小范围推广然后慢慢地随着时间推移扩大影响范围,而且在流程中人们对精益的认识越多,从中的受益也随之相应增加。毫不夸张地说,在任何情况下,精益都将敏捷方法视作有意义的实践。

Aa)KDB,x:c/no0
The primary focus of Agile software development is on close customer collaboration and the rapid delivery of working software as early as possible. Lean sees that as worthwhile, but its primarily focus is on the elimination of waste in the context of what the customer values.
但是敏捷开发的专注于与客户密切合作并尽快交付可以工作的软件。在精益角度看来,这也是非常有意义的,但是它的更专注于如何消除与客户价值无关的浪费。

^C6r+w]T]]m Q0
A key Lean tool for detecting and eliminating waste is the value stream map (VSM). The VSM is a map-like diagram of all activities that take place from beginning to end—for example, from when the customer requests a new feature to when that new feature is delivered to the customer. Each step is then identified as value-added (from the customer’s perspective), nonvalue-added, or non-value-added but necessary. 
检查和杜绝浪费的核心精益工具之一是价值流图,它是描述从开始到最终交付所有活动的一张图表,例如,从客户请求一个新功能到这个功能交付到用户手中的所有活动,每一步都必须对客户来说是有价值的,否者便是浪费的。

+@al NF5WaPk1sS0
Finally, Agile has a fair number of formal methodologies, whereas Lean has no formal methodologies. Lean, instead, has a toolkit of recommended practices from which to choose. In fact, when implementing Lean software development, it is quite common to pick a lightweight Agile methodology as a starting point and begin applying other Lean tools (such as VSM) from there.
总而言之,敏捷有很多的规范的方法,然而精益却没有,相反它有一整套推荐的最佳实践工具集可供选择。事实上,在实施精益软件开发时,普遍的做法是挑一种轻量级的敏捷方法作为开始,然后再应用这些精益方法。

jZ!G:b7j%U7c3i0
For those of you who want to take this approach, we recommend using Scrum. Scrum provides all the essentials and has a very low learning curve. Most people find it easy to learn Scrum in just a few days.
对于想应用精益软件开发的用户,我们推荐您用Scrum。它不仅提供了所有必须的方法,而且它简单易学。

TAG: 敏捷 软件开发 精益

路漫漫其修远兮, 吾将上下而求索! 引用 删除 zeus   /   2014-09-15 11:44:38
翻译的不好,请大家多多包含,以及批评指导
 

评分:0

我来说两句

Open Toolbar