软件开发方法与开发工具(这个有争议的软件开发方法)
01、生于滑雪度假村,它的名字叫敏捷
敏捷,是一种重视质量、追求快速反馈的软件开发方法。
2001 年 2 月,美国犹他州雪鸟滑雪度假村,“敏捷软件开发联盟”成立,并签署“敏捷宣言”。仅仅几个月后,林星、石一楹等国内的先行者开始翻译引进与敏捷相关的资料,敏捷引入中国。
敏捷对行业的影响远不止几个编程实践,说它影响了 Java 技术栈的变迁,说它引领了 DevOps 和持续交付的潮流,甚至,说它在软件发展史上是浓墨重彩的一笔,都不为过。
敏捷中国之于中国 IT 行业的发展,是同样甚至更大的影响。
然而,敏捷在技术人士中具有很大的争议,有人将敏捷奉为圭臬,有人对敏捷嗤之以鼻。大家对敏捷的态度为何有天壤之别?
02、成年礼——首个传记,《敏捷中国史》
2019 年 2 月,敏捷正式诞生 18 个年头。对于热爱它的人士,对于贬低它的人士,《敏捷中国史》的出现无疑是大家重新认识敏捷的一个重要契机。
作为中国敏捷十余年发展历程的亲历者与推动者,资深老程序员熊节从整个中国 IT 发展进程审视敏捷,参阅无数资料(光是写作过程中的引用文献就有 400 多篇),打造了《敏捷中国史》。
如今很多人所认识的敏捷跟 Martin Fowler、Kent Beck 等先驱主张的敏捷有何不同?
接下来让我们看几个典型的场景,先睹为快。
03、感受无数资深程序员当年如何突破技术瓶颈
《敏捷中国史》是一部一线技术人士“低视角”亲历的 IT 发展史,这才是中国 IT 业真实的发展样貌 —— 并非像新闻稿和鸿篇巨著所写那样高屋建瓴,反而是由无数普通人自觉或不自觉、主动或被迫、有心为之或机缘巧合的行动一点点塑造起来。
《敏捷中国史》中记录的一线普通 IT 从业者,当年初出茅庐,受困于各种技术问题,如今,它们中的很大一部分仍然奋斗在行业一线,并且已经成为很多人心中的“大佬”。大佬当年遭遇了哪些技术难题,他们是如何突破瓶颈的?
场景一
这几天,庄表伟一直在反思开发“中国上海”网站的过程。年初启动项目时,老板让他估工作量,他估了一个数字以后,老板直接乘以 2 报给了甲方。
起初他还有些不以为然,谁知项目一做起来,进度一拖再拖,最后竟然比老板报给甲方的工作量还超出了些,到最后逼着团队连更连夜加班才赶上时间节点。
第一次带团队的庄表伟这才意识到,带着一支团队做一个上规模的项目,跟自己一个人做些单机软件,是有很大区别的。这种差异体现在哪里,他一时还说不清。
场景二
孟岩彼时在网络上声名鹊起,重要的原因之一是他在 2001 年 2 月发布的一篇文章:《VC 不是梦想,C 需要自由的心》。
在中文世界里用“梦想”、“自由”这样的词汇来描述一种编程语言,就算他不是第一个也差不太远。
把当年如日中天的微软批评为“封闭”、并振臂疾呼“在我们程序员的心中,没有凯撒,我们可以把你当朋友,但是你别想做我们的主子”、“不自由,毋宁死”,这在当年看来是极具开创性和震撼力的观点。
场景三
“那台监视器用了一段时间,陈总看上面也没什么特别的东西,每天都是一块绿色,可能觉得也没什么用吧,新员工入职的时候就分配给别人用了,”何晓东答道,“后来我们去工商局驻场的时候都忘了这事。可能还是应该有这么一个监视器好些,不然也不至于测试都失败了我还不知道。”
“唉,你们呀,叫你们做的事情,几天不来看全都走样了,也难怪你们项目赶得辛苦。”石一楹长叹一口气,“好在你们项目总算也上线了,有点小 Bug 修修补补,大问题不会有了。下一个项目争取把这些动作做得再标准一点吧。”
04、首次集中揭秘 IT 巨头阿里、腾讯、华为的敏捷故事
1. 华为敏捷“三步走”策略
2008 年,徐直军出任华为产品与解决方案总裁,主抓产品研发。甫一上任,“小徐总”就提出了“三年把华为建设成为中国从事研发人员向往的地方”的战略目标。这一目标拆解到产品与解决方案体系下属的系统工程部,就落实到了全面推行敏捷上面。
经过 2008 年在核心网、无线等产品线的试点,华为研发体系内部达成共识:敏捷/迭代开发已经成为业界主流软件开发方法。
系统工程部并定义出了公司敏捷推行的“三步走”策略,将敏捷实施分为项目级、版本级和产品级,要求 2009 年重点全面推进项目级敏捷,版本级敏捷进行试点,计划 2010~2011 年在版本级敏捷试点基础上进行逐步推广。
2. 敏捷导入之于腾讯是进化
即便确定了敏捷的大方向,腾讯从未像通信企业、尤其是华为那样搞过自上而下的敏捷转型运动。当时在研发管理部任高级项目经理的肖德慧认为,这是由腾讯的文化决定的。
在高速发展的互联网环境下,腾讯团队本身已经具备了拥抱变化、重视反馈、快速发布、快速改进的“敏捷基因”,因此敏捷的导入对于腾讯而言不是转型、而是进化,不需要、也不适合以自上而下的转型运动形式开展。
在这样的企业大背景下,腾讯研发管理部没有设计全公司敏捷转型的整体路线,而是以平台和服务的形式给各个产品团队提供帮助,由团队主动选择。
研发管理部继承了腾讯一贯的产品思维,把敏捷也当做产品来运营,并定义出腾讯敏捷的 5 大特性。
3. 压力驱动下的阿里自发敏捷
2005 年 8 月,雅虎以 10 亿美元投资和雅虎中国全部资产为代价,换取阿里巴巴 40% 的股份。这笔交易不仅解决了阿里的燃眉之急,而且让阿里获得了雅虎中国一批优秀的工程师。其中雅虎中国广告团队整体切换成阿里广告团队,并于 2007 年成立阿里妈妈。
阿里的敏捷之旅,就发端于这支团队。据当时在阿里妈妈负责过程改进的李宇回忆,这支团队最初是在 2006 年 3 月开始试用 Scrum,并结合了极限编程的一些实践,经过近两年的试点、推广和改进,到 2008 年已经在全部门采用。
阿里妈妈开始使用敏捷方法的出发点非常简单:业务希望每个月能定期上线,技术团队就对应地制定了每月一个项目的排期。
05、了解中国软件工程近 20 年发展脉络
张松老师在《敏捷中国史》推荐序「敏捷画卷:中国软件史的精彩侧影」中说,如果把软件开发当成一个谜题,数代的软件人在过去的 50 年里前赴后继地尝试解决这个谜题,不过到今天为止,全世界不管是码农还是码神,我们仍在这个谜题当中痛苦挣扎。
中国用 20 年的时间迈过了西方 50 年的软件工程发展史。《敏捷中国史》中一个个鲜活的故事和严谨的数据考证一起,描绘了敏捷方法在中国软件产业的土壤中一步步发芽、传播的画卷,构成了中国软件史一个精彩的侧影。
《敏捷中国史》不仅帮读者在宏观层面理清了中国软件工程领域在过去 20 年里发展的关键脉络;一系列从业者的经历巧妙串联,更让读者从个体视角体验历史,了解众多普通的软件人是如何参与着历史和创造着历史。
接下来,让我们更好地了解历史,并致力于创造属于 IT 人的更好历史。
来源:GitChat
(本文为网络摘录或转载,版权归原作者或刊登媒体所有。如涉及作品版权问题,请联系我们处理。)
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com