《灵敏开发走过十年-风风雨雨陪你走过》由会员分享,可在线阅读,更多相关《灵敏开发走过十年-风风雨雨陪你走过(5页珍藏版)》请在金锄头文库上搜索。
1、灵敏开发走过十年|风风雨雨陪你走过 假如以“灵敏宣言”的公布作为灵敏开发正式推出的标志的话,那么掐指算来,灵敏开发已经走过10个年头了。2021年,10位软件开发界著名的大师聚集在一起共同公布了“灵敏宣言”,灵敏开发方法才为大众所熟知。数据显示,在欧美发达国家,采取灵敏开发的企业已经靠近半数,其实用性业已得到证实,但在中国其接收程度要差部分,大约20%30%左右。另一 方面,像很多新生事物一样,作为一个有别于瀑布式开发方法的新的软件开发方法,灵敏开发也受到大家的质疑,这也注定灵敏开发成为主流还有很长的路要走。软件开发不一样于工业生产在软件开发历史上,最有影响的事件是软件工程学的提出。在计算机刚
2、走出试验室、开始服务于普罗大众之初的上个世纪50、60年代,软件开发更多地表现为开发者的个人行为,基础上处于一个完全无序的状态,没有步骤,也谈不上控制。伴随计算机的普及,对软件需求的快速膨胀,这种无序开发状态的恶果立即显现出来,开发周期、成本无法控制,软件缺点率居高不下,最终引发了软件危机,这才有软件工程理论的提出。软件工程的最大贡献在于,它借鉴了工业生产,尤其是流水线生产的管理方法,强调步骤的可控性,它提出的经典瀑布式软件开发至今依然是最为主流的开发方法。在那个年代,软件工程的优秀性无容置疑。瀑布式软件开发强调软件开发过程应该严格根据需求分析、设计、编码、测试、维护来进行,从而极大地增加了软
3、件项目标可控性,成本变得能够预计了,这对于大规模的软件开发是很必须的。而它的不足也很显著,它比照流水线生产来管理软件开发,而忽略了软件开发是一件需要程序员想象力和发明力的工作。“工业生产追求的是生产效率,怎样更加快地生产出更多的产品,这一追求跟软件开发的目标是完全不一样的。” ThoughtWorks中国区总经理郭晓介绍说。ThoughtWorks是一家提供定制软件开发的企业,这家拥有1000多名程序员的企业从1999年起就已全方面转向了灵敏开发。郭晓认为,软件开发是一个发明性的、高附加值的、需要发挥人的主观能动性的工作,不是只靠步骤改善就能够提升效率的。软件开发区分于传统制造业的另一个不一样
4、在于,软件的价值并不在于多长时间内生产出多少份软件,而是在于给业务提供了什么价值。“软件工程强调的是步骤,而灵敏开发颠覆了软件工程这一理论,它的关键理念是人比步骤主要。”郭晓说。帮你做正确的事情严格说来,灵敏开发并不是一个软件开发,而是一类软件开发方法的总称。“灵敏宣言”中提出了灵敏开发四标准,即个体和交互胜过过程和工具、能工作的软件胜过面面俱到的文档、用户合作胜过协议谈判、响应改变胜过遵照计划,只要是复合这四项标准的开发方法全部能够算做灵敏开发,其中最为大众熟知的是极限编程。“连续集成、快速迭代、重构、测试驱动,这些全部是灵敏开发方法区分于传统开发方法之处。”郭晓说,“正是因为灵敏开发的这些
5、特点,使得灵敏开发能更加快速、更有效地交付可用的有价值的软件。”依据Forrester所进行的一个调查,采取灵敏方法以后的软件项目总体的拥有成本全部有极大降低,其中缺点率平均降低63%,关键的缺点率降低79%,整体投入降低62%,整个项目开发的时间缩短69%。不过,在郭晓看来,这些并不是灵敏的最大好处,“帮助企业做出正确的事情才是灵敏最大价值所在。至于提升生产率、降低软件缺点率等好处,全部是采取灵敏开发的必定结果。”郭晓解释说,这里所说的做正确的事情是指,灵敏开发经过连续和用户沟通,和经过连续集成、快速迭代,让用户得以立即看到最终止果,从而能够立即发觉早期设计中的错误,比如不切实际的、无须要的
6、功效。其次,在沟通中还能够发觉新的、更有价值的需求。而这些在传统开发方法中是不太现实的。比如在瀑布式开发中,一旦需求分析完成如要修改就需要比较复杂的步骤,而且,进入开发阶段后程序员也极少再听取用户的需求意见。前行遇阻力现在,尽管灵敏开发方法已经提出多年,采取这一方法来实现的软件项目也很多,不过,质疑者仍然不少。最为经典的说法是这种开发方法仅适合用于小型开发团体。对此郭晓表示,灵敏开发最初确实被定位为小型团体的开发方法。不过,这些年来,这种开发方法已经在很多大型组织的大型软件开发项目上得到很好的应用,实践也证实了其在大项目中的可行性。比如,ThoughtWorks企业有些项目参加的程序员就有10
7、0多人,采取灵敏开发方法很好地完成了这些项目。另一个例子是英国电信,其内部有上万人的开发团体,也全部全部采取灵敏开发方法。而在中国也有部分企业采取,比如中国移动研究院就普遍采取这种方法。“那些需要快速响应市场改变的互联网企业是灵敏开发的主动拥护者,因为它们等不起。” 郭晓说。郭晓同时坦言,用户的不了解给灵敏开发方法的应用带来不少阻力。比如,传统软件开发方法很重视文档,在项目真正开始编码之前通常需要有完整的文档,而灵敏开发难以做到,因为它的需求分析、设计、编码工作等是相互交织的。另外,灵敏开发还尤其强调连续和用户交流,很多需求正是在这种交互过程中产生的,同时有些需求也会在这种交互过程中修改,其结
8、果就是项目标预算不像传统开发方法那样一开始就能明确下来。“在我们的用户中,只要尝试过用灵敏开发方法来完成的项目,极少有不满意的。现在的问题是,有些用户不愿意尝试。”她说。另外,对于一个组织而言,要想采取灵敏开发,也可能面临不少困难,这也是阻碍灵敏开发普及的主要原因之一。“最大的问题是企业文化需要变革,管理制度也需要调整。比如,对程序员的传统考评措施是考评其代码量,而灵敏开发方法提倡结对编程和重构,提倡尽可能重用代码,过去的那套考评制度就不适用了。”ThoughtWorks中国区技术总监徐昊说,其另外一个身份是灵敏开发的咨询师,指导过很多灵敏开发的项目徐昊提议,组织首次尝试灵敏开发的方法能够以“连续集成”作为切入点。因为“连续集成”会尽早暴露出大量的问题,比如说架构或耦合度等方面的问题。“连续集成不是处理问题的灵丹妙药,不过能立即展现灵敏开发方法的价值。”不论是徐昊还是郭晓全部认为,灵敏开发现在在中国还需要教育和培训。可能正是基于这个原因,ThoughtWorks一直坚持在中国举行灵敏开发大会,今年10月14日15日举行的灵敏大会已经是第5届。“5年来,很多中国的程序员经过我们的灵敏大会认识了灵敏开发,而我们对灵敏开发的认识也在不停加深。” 郭晓告诉记者。