何谓「敏捷」

之前...

记得以前读一本书,名叫「黑客与画家」。作者是硅谷创业之父Paul Graham。Paul Graham在95年曾和Robber Morris(一位天才黑客)创建了ViaWeb,实现了用软件定制网上商店。ViaWeb是有史以来第一个基于互联网的应用程序。98年的时候ViaWeb成为了最流行的电子商务软件,再后来ViaWeb被雅虎收购,后改称为雅虎商店。在「黑客与画家」这本书基本上就是Paul Graham对于这次创业过程的体会。
  除开书中作者对于Lisp的强烈推荐(虽然并没用过Lisp(⊙﹏⊙)b)。我印象最深的就是Paul Graham的办公环境。书中有一张图片,是Paul Graham和Robber Morris两人共用一台电脑,当时Robber Morris正在编程,而Paul Graham就在旁指指点点。这让我感到非常不可思议,心想:两人共用一台电脑结对编程,这样的工作效率能比两人分开的效率更高吗?还有就是Paul Graham还提到:「客服人员的办公地点就在我们开发人员不远处……并且客服人员以发现程序中的漏洞为自豪……」这完全颠覆了我对于软件开发环境的认知,一般人可能会认为软件开发可能就是单独一个隔间,每个人在里面独自办公,然后定期的举行会议,报告开发进程以及下步开发计划。至于客服人员,那只是为了应付客户牢骚的,对于开发过程并没有太多的实际作用。然而……就这么一套简单而有效的方法,Paul Graham的ViaWeb开发成功了,远远把其他有着雄厚实力的竞争者甩在了后面。Paul Graham很高兴的谈到:「我们的程序版本的迭代速度很快,当其他大公司提到他们实现了一个新功能的时候,我们总是能在短时间内实现它,并且还加入了很多其他的功能,这使得我们在竞争上远远领先」
  那么这种开发模式是什么呢?为何这种模式能让那些小规模的创业公司挤掉大公司从而赢得竞争?这些都是很值得深思的。而对于第一个答案,我们知道了它的正式名称:敏捷开发

何谓「敏捷」_第1张图片
Paul Graham & Robert Morris

敏捷开发

敏捷在汉字词语中的意思是反应迅速快捷。这个词十分形象地形容了在软件开发中对于变化敏感及其更新的迅速。在90年代,敏捷软件开发以一种新型软件开发方式开始受到关注。这时候一些软件的开发过程中就运用了这一方法,ViaWeb就是一个成功的例子。但整个90年代只是有这种新型的方法,并没有业界的统一概念与原则。直到2001年,在美国犹他州雪鸟滑雪圣地的一次敏捷方法发起者和实践者的聚会上正式提出了「敏捷软件开发」这一概念。雪鸟会议上起草了敏捷软件开发宣言,其中一部分是与会者一致同意的软件开发价值观的表述,包含了以下方针:

  • 个体和互动:高于 流程和工具
  • 工作的软件:高于 详尽的文档
  • 客户合作:高于 合同谈判
  • 响应变化:高于 遵循计划

宣言中还包含了以下原则:

  • 对我们而言,最重要的是通过尽早和不断交付有价值的软件满足客户需要。
  • 我们欢迎需求的变化,即使在开发后期。敏捷过程能够驾驭变化,保持客户的竞争优势。
  • 经常交付可以工作的软件,从几星期到几个月,时间尺度越短越好。
  • 业务人员和开发者应该在整个项目过程中始终朝夕在一起工作。
  • 围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务。
  • 在开发小组中最有效率也最有效果的信息传达方式是面对面的交谈。
  • 可以工作的软件是进度的主要度量标准。
  • 敏捷过程提倡可持续开发。出资人、开发人员和用户应该总是维持不变的节奏。
  • 对卓越技术与良好设计的不断追求将有助于提高敏捷性。
  • 简单——尽可能减少工作量的艺术至关重要。
  • 最好的架构、需求和设计都源自自我组织的团队。
  • 每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。

一共十二个原则,从上至下读来发现敏捷开发的一个核心就是「简单、快速、高效」为此,敏捷开发抛弃了「瀑布式模型」中严格遵循计划的设计理念,提倡不断的快速迭代更新。相较于「迭代式开发」,敏捷开发的周期更短,并且更加强调队伍中的高度协作。
  如今随着互联网的发展,人们的需求在随时发生变化。而软件开发的从业人员需要紧紧跟住这个变化,不断推出新的版本,才能在竞争的市场中赢得一席之地。记得电影「功夫」中火云邪神有一句台词:「天下武功,唯快不破」。也许敏捷开发在某种程度上可以称之为那种快到极致的武功吧。

你可能感兴趣的:(何谓「敏捷」)