1986年,IBM大型电脑之父Fred Brooks发表了他的著名论文《没有银弹》中断言:“在10年内无法找到解决软件危机的银弹”。如今20年过去了,有可能成为银弹的东西诞生了,那就是agile——敏捷。
何为敏捷?
1968年软件工程提出至今已经30余年了,传统的开发方法所存在的一些不足也逐渐的显露:软件的工期不可控,软件过程中的文档越来越复杂,客户与开发人员间面对面的沟通逐渐减少,开发人员面对文档做开发而不是面向客户,严格的流程控制及文档契约与不断变化的需求间的矛盾越来越强烈,这些问题在需求变化频繁的互联网应用中尤为明显。在这样的背景下,2001年17位软件开发领域的领军人物聚集在美国犹他州的滑雪胜地snow bird雪场,经过两天的讨论,“敏捷”(Agile)这个词为全体聚会者所接受,用以概括一套全新的软件开发价值观。这套价值观,通过一份简明扼要的《敏捷宣言》来诠释,这份敏捷宣言是“敏捷软件开发”价值和目标的浓缩定义,并通过许多共同的原则进行了细化传递给世界,宣告了敏捷开发运动的开始。敏捷宣言如下:
1:个体和交互胜过过程和工具。
2:运作的软件胜过面面俱到的文档。
3:客户合作胜过合同谈判。
4:响应变化胜过遵循计划。
虽然敏捷的概念提出已经有了8年,但是究竟什么是敏捷,什么样的开发才是敏捷开发至今也是众说纷纭。Fred曾经用盲人摸象来表达大家对敏捷的认识,个人认为是非常贴切的,大家看到的都是某几个面,但是就是这些面已经对我们的软件开发产生了巨大的影响。
敏捷在中国
敏捷为中国的开发人员所接受及推崇是这几年的事情。2006年首届敏捷中国大会在北京举行,大会的主题是敏捷软件开发,人们逐渐开始了解敏捷开发这个新生事物,同时用各种的眼光来看待它。从曾经大热的极限编程,RUP到如今被大家广泛认可的Scrum,随着各种敏捷开发方法的提出,敏捷开发也逐步的被大家所认识与接受。时至今日,据一份调查统计透露,在国内有90%以上的开发团队或多或少的运用敏捷开发的方法,国内敏捷开发的培训咨询机构与组织日益增长。现在大家关注的焦点不再是是否使用敏捷,而是如何更好的敏捷,以及如何评判一个团队的敏捷程度。
与敏捷的第一次亲密接触
说起自己什么时候接触敏捷的?那大约是在冬季。今年初,沈总在部门内部引入了敏捷的概念,我们团队非常有幸的成为了实验田,在新近的项目中尝试使用敏捷开发。敏捷半年有余,感受良多,在我看来敏捷开发最大的特点就是以人为本,与CMMI等关于与流程不同,敏捷开发更关注人,也就是交互的个体。这些特点在我们的项目管理中可以很清晰的体现,我们团队的项目管理基于Scrum,在此我需要简单的介绍一下什么是Scrum:Scrum是 软件开发模型是敏捷开发的一种,在最近的一两年内逐渐流行起来,我们团队内部称之为屎壳郎。Scrum采用周期式的开发,客户在每个周期的开始阶段提出最急需的需求,团发团队则在三周的开发周期内完成需求并交付成果。在这样的开发模式下,我们关注与客户面对面的沟通,客户可以随时访问我们的开发成果,与开发人员进行直接的沟通。我们关注开发人员每日的成果与阻碍,项目的可视性大大提高。我们响应变化,我们总是尽早的与客户沟通,让客户直接感受真实的系统,降低项目需求偏离乃至失败的风险。我们的团队成员自我组织,在每日立会(1)上开发人员自己选择要完成的任务,在sprint(2)计划会上开发人员与客户一起估算功能的开发量,充分调动了团队开发成员的积极性,我们团队还借鉴了极限编程中的一些概念,比如持续集成等来保证项目的质量与项目的敏捷性。半年来我们感受到了敏捷开发所带来的新动力,但是在实施过程中还是遇到了许多问题,同时也对自己团队的开发方式的敏捷度存在疑问。带着这样的疑问,我开始了我的朝圣之旅。
朝圣之旅——敏捷中国2009
九月中旬,我前往首都北京,参加敏捷界的盛会——敏捷中国2009。这是我首次参加敏捷中国大会,前几届大家还在谈论:“什么是敏捷?我们是否应该敏捷?”之类的话题,而到了这一届大家的口径已经完全一致,我们更加关注的是“如何更好的实施敏捷?”,于是乎“实效敏捷”这个主题应运而生。此次会议参会人数达到550人左右,涵盖了各行业的开发人员与高级主管。国内几家大型软件公司如百度,腾讯,支付宝,阿里巴巴等更是大规模出席,以百度为例,除了一些高级主管外,百度公司整个流程改进部门的核心人员20余人全员出席,可见业内对于敏捷开发的重视程度。相较于北京,上海这些软件行业发达地区,福州对于敏捷开发的重视程度似乎还存在的一些滞后性。
在会议的最开始,中国软件行业协会系统与过程改进分会(CSPIN)的王钧为大会致辞,充分肯定了敏捷对于系统过程改进所将扮演的重要地位,提出敏捷开发中的一些主要原则(比如对人的关注)将是对CMMI等传统开发模式的有效补充。行业协会中的老科学家们目前也正在积极的了解敏捷开发,日后也会出台相关的政策来推动敏捷开发在中国软件行业中的发展,政府的支持与肯定让与会者都对敏捷的发展充满了信心与期待。
此番带着问题前来,目的明确时间也过得充实,白天听着大师为我们勾勒的宏伟蓝图,休息时间和晚上便于其他参会者交流着实施中遇到的细节问题。此次大会请到了敏捷界的几只大牛:XP极限编程的创始人,敏捷宣言创始人之一KenBack,敏捷宣言创始人之一Dave Thomas, 敏捷界大师级专家Fred George。大师们的演讲多是思想性的,虽然离实施还有一定的距离,但是往往其中的一到两句话,就可以扫清我眼前的某团迷雾。比如Dave的演讲对一个熟练工来说是很有启示作用的,他引导大家关注于软件开发中不变的东西,那些思想与原则就算过了10年也不会过时。Fred的主题演讲更是有一个牛逼的名字“那是鸟,还是飞机?不,那是超人!”,在这个演讲中他特别强调了人在软件开发过程中的作用。他提出“要做好软件,人是最大的可挖掘潜力。”和与会者的交流则是此行我另一大的收获:首先,清楚了自己的定位,在与其他公司的交流过程中,我发现在敏捷成熟度上,我们团队还是走在了行业的前列跟上了大部队。其次,解决了细节问题,在实施过程中的我们团队遇到了许多细节问题,比如如何调动团队成员的主动性,如何更好引导客户融入开发团队,在与大家的交流中我也找到了一些解决问题的思路。三,拓宽了思路,对于敏捷的认识,就如同fred所说盲人摸象,但是大家并不较真与敏捷这个字眼,更关注的还是对于公司内部开发流程的改进。针对同一个场景或者问题,各个公司的处理方式也是五花八门,就以CMMI与敏捷开发的冲突问题来说,Ebay的顾先生就认为,这两个东西不能共存,强行的将敏捷的一些概念映射到传统的开发流程中去,搞所谓的公司特色,最后得到的将是一个古怪的四不象;有的人则认为两个并不冲突,CMMI2与敏捷的很多想法都是统一的,更有甚者提出(此君杭州人士,屡出惊人之语,甚是实在,印象深刻),他们公司一直都是按敏捷那套做,结果过了CMMI3,真可谓众说纷纭。在我看来,其实敏捷就是实践者,根据自己的公司实际实施,能够改善我们的项目管理流程的就是真正的敏捷。
再见北京,再见Agile2009, 再见Dave,在敏捷的道路上,我和我的团队会继续勇敢的走下去,a love all,make it fun.
何为敏捷?
1968年软件工程提出至今已经30余年了,传统的开发方法所存在的一些不足也逐渐的显露:软件的工期不可控,软件过程中的文档越来越复杂,客户与开发人员间面对面的沟通逐渐减少,开发人员面对文档做开发而不是面向客户,严格的流程控制及文档契约与不断变化的需求间的矛盾越来越强烈,这些问题在需求变化频繁的互联网应用中尤为明显。在这样的背景下,2001年17位软件开发领域的领军人物聚集在美国犹他州的滑雪胜地snow bird雪场,经过两天的讨论,“敏捷”(Agile)这个词为全体聚会者所接受,用以概括一套全新的软件开发价值观。这套价值观,通过一份简明扼要的《敏捷宣言》来诠释,这份敏捷宣言是“敏捷软件开发”价值和目标的浓缩定义,并通过许多共同的原则进行了细化传递给世界,宣告了敏捷开发运动的开始。敏捷宣言如下:
1:个体和交互胜过过程和工具。
2:运作的软件胜过面面俱到的文档。
3:客户合作胜过合同谈判。
4:响应变化胜过遵循计划。
虽然敏捷的概念提出已经有了8年,但是究竟什么是敏捷,什么样的开发才是敏捷开发至今也是众说纷纭。Fred曾经用盲人摸象来表达大家对敏捷的认识,个人认为是非常贴切的,大家看到的都是某几个面,但是就是这些面已经对我们的软件开发产生了巨大的影响。
敏捷在中国
敏捷为中国的开发人员所接受及推崇是这几年的事情。2006年首届敏捷中国大会在北京举行,大会的主题是敏捷软件开发,人们逐渐开始了解敏捷开发这个新生事物,同时用各种的眼光来看待它。从曾经大热的极限编程,RUP到如今被大家广泛认可的Scrum,随着各种敏捷开发方法的提出,敏捷开发也逐步的被大家所认识与接受。时至今日,据一份调查统计透露,在国内有90%以上的开发团队或多或少的运用敏捷开发的方法,国内敏捷开发的培训咨询机构与组织日益增长。现在大家关注的焦点不再是是否使用敏捷,而是如何更好的敏捷,以及如何评判一个团队的敏捷程度。
与敏捷的第一次亲密接触
说起自己什么时候接触敏捷的?那大约是在冬季。今年初,沈总在部门内部引入了敏捷的概念,我们团队非常有幸的成为了实验田,在新近的项目中尝试使用敏捷开发。敏捷半年有余,感受良多,在我看来敏捷开发最大的特点就是以人为本,与CMMI等关于与流程不同,敏捷开发更关注人,也就是交互的个体。这些特点在我们的项目管理中可以很清晰的体现,我们团队的项目管理基于Scrum,在此我需要简单的介绍一下什么是Scrum:Scrum是 软件开发模型是敏捷开发的一种,在最近的一两年内逐渐流行起来,我们团队内部称之为屎壳郎。Scrum采用周期式的开发,客户在每个周期的开始阶段提出最急需的需求,团发团队则在三周的开发周期内完成需求并交付成果。在这样的开发模式下,我们关注与客户面对面的沟通,客户可以随时访问我们的开发成果,与开发人员进行直接的沟通。我们关注开发人员每日的成果与阻碍,项目的可视性大大提高。我们响应变化,我们总是尽早的与客户沟通,让客户直接感受真实的系统,降低项目需求偏离乃至失败的风险。我们的团队成员自我组织,在每日立会(1)上开发人员自己选择要完成的任务,在sprint(2)计划会上开发人员与客户一起估算功能的开发量,充分调动了团队开发成员的积极性,我们团队还借鉴了极限编程中的一些概念,比如持续集成等来保证项目的质量与项目的敏捷性。半年来我们感受到了敏捷开发所带来的新动力,但是在实施过程中还是遇到了许多问题,同时也对自己团队的开发方式的敏捷度存在疑问。带着这样的疑问,我开始了我的朝圣之旅。
朝圣之旅——敏捷中国2009
九月中旬,我前往首都北京,参加敏捷界的盛会——敏捷中国2009。这是我首次参加敏捷中国大会,前几届大家还在谈论:“什么是敏捷?我们是否应该敏捷?”之类的话题,而到了这一届大家的口径已经完全一致,我们更加关注的是“如何更好的实施敏捷?”,于是乎“实效敏捷”这个主题应运而生。此次会议参会人数达到550人左右,涵盖了各行业的开发人员与高级主管。国内几家大型软件公司如百度,腾讯,支付宝,阿里巴巴等更是大规模出席,以百度为例,除了一些高级主管外,百度公司整个流程改进部门的核心人员20余人全员出席,可见业内对于敏捷开发的重视程度。相较于北京,上海这些软件行业发达地区,福州对于敏捷开发的重视程度似乎还存在的一些滞后性。
在会议的最开始,中国软件行业协会系统与过程改进分会(CSPIN)的王钧为大会致辞,充分肯定了敏捷对于系统过程改进所将扮演的重要地位,提出敏捷开发中的一些主要原则(比如对人的关注)将是对CMMI等传统开发模式的有效补充。行业协会中的老科学家们目前也正在积极的了解敏捷开发,日后也会出台相关的政策来推动敏捷开发在中国软件行业中的发展,政府的支持与肯定让与会者都对敏捷的发展充满了信心与期待。
此番带着问题前来,目的明确时间也过得充实,白天听着大师为我们勾勒的宏伟蓝图,休息时间和晚上便于其他参会者交流着实施中遇到的细节问题。此次大会请到了敏捷界的几只大牛:XP极限编程的创始人,敏捷宣言创始人之一KenBack,敏捷宣言创始人之一Dave Thomas, 敏捷界大师级专家Fred George。大师们的演讲多是思想性的,虽然离实施还有一定的距离,但是往往其中的一到两句话,就可以扫清我眼前的某团迷雾。比如Dave的演讲对一个熟练工来说是很有启示作用的,他引导大家关注于软件开发中不变的东西,那些思想与原则就算过了10年也不会过时。Fred的主题演讲更是有一个牛逼的名字“那是鸟,还是飞机?不,那是超人!”,在这个演讲中他特别强调了人在软件开发过程中的作用。他提出“要做好软件,人是最大的可挖掘潜力。”和与会者的交流则是此行我另一大的收获:首先,清楚了自己的定位,在与其他公司的交流过程中,我发现在敏捷成熟度上,我们团队还是走在了行业的前列跟上了大部队。其次,解决了细节问题,在实施过程中的我们团队遇到了许多细节问题,比如如何调动团队成员的主动性,如何更好引导客户融入开发团队,在与大家的交流中我也找到了一些解决问题的思路。三,拓宽了思路,对于敏捷的认识,就如同fred所说盲人摸象,但是大家并不较真与敏捷这个字眼,更关注的还是对于公司内部开发流程的改进。针对同一个场景或者问题,各个公司的处理方式也是五花八门,就以CMMI与敏捷开发的冲突问题来说,Ebay的顾先生就认为,这两个东西不能共存,强行的将敏捷的一些概念映射到传统的开发流程中去,搞所谓的公司特色,最后得到的将是一个古怪的四不象;有的人则认为两个并不冲突,CMMI2与敏捷的很多想法都是统一的,更有甚者提出(此君杭州人士,屡出惊人之语,甚是实在,印象深刻),他们公司一直都是按敏捷那套做,结果过了CMMI3,真可谓众说纷纭。在我看来,其实敏捷就是实践者,根据自己的公司实际实施,能够改善我们的项目管理流程的就是真正的敏捷。
再见北京,再见Agile2009, 再见Dave,在敏捷的道路上,我和我的团队会继续勇敢的走下去,a love all,make it fun.