路宁,百度高级架构师,国内知名的敏捷和精益咨询师,北航硕士学位,拥有超过 9 年的从业经验,曾任工程师、架构师、项目经理、技术总监、敏捷咨询师等职位。
目前在百度项目管理部任高级架构师,致力于指导公司级的敏捷改进工作,主要方向是需求管理、迭代管理和持续集成实践等。他曾在敏捷的领导厂商 ThoughtWorks 任资深咨询师多年,为多家国际知名的投行、物流和保险公司等构建企业应用、实施敏捷和组织转型方面的咨询。
在 QCon 北京中他做了主题为“精益开发之最佳实践”的分享,主要内容是:精益软件开发方法因其对市场和交付的重视和在各种场景下体现出的适应能力正在获得广泛的关注。特别是在精益创业(Lean Startup)渐渐兴起和技术日新月异的今天,其"极端"的思想也变得越来越必要和可行。讲师将结合自己在众多项目上的经验和行业的最新发展,介绍精益开发方法在市场,团队及管理、应用设计、以及开发测试和运维方面的最佳实践,帮助大家清楚地认识精益开发并学习到可直接应用于自己团队的实践。 InfoQ 就此主题对他做了深入的采访。
InfoQ:对于一个软件开发人员而言, 应该怎么样理解软件开发中的精益思想?
路宁:精益把软件开发看作是交付一个个功能的过程,并针对每个功能分析交付过程中的各个环节,识别和消灭其中的等待和浪费,实现高质量和快速的增量交付。可从以下三方面理解:
首先应用精益意味着价值观念的转变。不直接增值的活动即为浪费,管理、计划、集成及测试等工作都不直接增值,但因为对风险的担心和各种约束而无法彻底消灭,精益的观点和做法在优化这些活动上具有启发意义。一个功能在交付过程中的排队活动(如记录 bug)和等待时间(如等着其它功能一并被分析完成)是浪费,这个“极端”的交付视角也冲击着传统观念,精益的实践者更加关注如何降低周期时间(Cycle Time)和进行中的工作(Work In Progress),进而建立基于拉动(Pull)的交付和管理方法。
其次应用精益意味着借鉴或应用源于制造业的有效实践。比如价值流分析、看板、现场管理、U 型工作单元、全功能团队、多技能个体、内建质量、停止生产线等等。
最后是将精益看作一个持续改进的过程并强调人在其中的重要性。看板、PDCA 环、A3 报告、5Why 等都是值得关注的改进手段。
InfoQ:学习精益软件开发有什么好的途径和方法?
路宁:首先是要学习和实践敏捷软件开发,读精益软件开发相关的书籍,尝试利用相关方法分析问题并应用精益实践,还可借助 Yahoo 和 Google 上精益开发或看板的邮件组了解社区进展。
另外,很多精益的原始资料和软件开发没直接关系,包括精益思想,丰田生产方式(TPS)、价值流分析等等,但对它们的学习能加深理解,提高在软件行业应用精益时的变通能力和效果。
InfoQ:精益和敏捷是如何结合的?
路宁:精益生产在半个多世纪前产生于日本丰田,以大野耐一推动的丰田生产方式为代表,80 年代中后期被欧美汽车制造企业了解到并得到推广,后来也在其它行业陆续得到广泛应用。一些早期的敏捷实践者便从同一时期的精益运动中获得灵感,借鉴了其中的想法和工具,补充到敏捷实践中,Poppendieck 夫妇便是其中的代表。
可将精益理解为敏捷的补充,它在提出自己价值观的同时,刚好也从另外一个角度系统地解释了各个敏捷实践及其关系,同时引入了很多新的提法和工具,在团队和组织级持续改进方面补充了敏捷的一些不足。
以 Scrum 和 XP 为代表的敏捷实践在解决问题的同时也会带来新的问题,这对大部分团队都不值一提,但对于创新业务环境下非常成熟的敏捷团队来说,这些问题可能会显得很突出,比如迭代周期变成不必要的约束、规律性的各类会议显得耗时、角色划分带来沟通瓶颈、自动化测试工作负担大于收益等等,精益思想指导社区在对付这些“小众”的问题上有更多成功的尝试。
InfoQ:实施精益最大的挑战是什么? 有什么建议吗?
路宁:实施精益和实施敏捷是一致的,在不同组织中面临的挑战也不一样,这往往取决于组织最大的深层问题是什么。
精益强调整体思考,这意味着各角色需要采用新的合作模式甚至要调整组织结构,这方面的阻力让很多公司只能在有限范围内应用精益。遗留系统中的技术债务和架构问题很可能成为改进过程中的拦路虎,阻碍周期时间的缩短,使得其它方面的努力都显得意义不大。作为官僚机构的下游供应商,手里拿着固定价格的合同,也可能给实施精益带来莫大挑战。
正视问题,调整预期,借助看板方法和 PDCA 环等技术,采用渐进式的持续改进策略是现实的选择。
InfoQ:精益的思想在中国应该传播了 5、6 年了, 但是好像一一直是不温不火, 不像 Scrum 那样, 您认为背后的原因是什么?
路宁:我认为主要原因是 Scrum 解决主流问题且适用面广泛、体系简单完整且容易理解,而精益在起步时并不迫切需要,内容相对零散且分支多,在深入实践时显得更有价值。
另一方面,起补充作用的精益思想和实践已经和敏捷很好融合了,比如看板墙、累计流图、周期时间(Cycle Time)、前置时间 / 上市时间(Lead Time),进行中工作(Work In Progress)等提法已经广泛应用在敏捷实践中,甚至没有必要进一步区分。这也影响了精益作为一个整体所发出的声音。
InfoQ:现在还有一一个概念叫做精益创业, 能介绍一一下吗? 我们能从中吸取些什么?
路宁:精益创业是有别于传统的一种创业模式,往往包含如下要素:
- 尽早公开自己的想法,与同行或潜在投资人探讨,点子不值钱,拼的是执行力。
- 产品没有做出来前就通过互联网广告和低成本的原型测试市场的反应。
- 尽早上市并通过对客户反馈和数据分析快速演进产品的设计,强调用户体验。
- 一人多能,角色模糊。
- 使用如 Ruby,Clojure 等释放生产力的语言和技术。
- 应用持续集成和持续发布技术降低每次集成和发布的消耗,常常每天向生产线部署多次。
从中我们看到了一种极为敏捷的运转方式,也看到了敏捷和精益应用到淋漓尽致的一种状态。它也将敏捷和精益的关注点从交付视角(提高交付的效率,即确保正确地做事)扩展到了业务视角(快速有效地验证想法,即确保做正确的事情)。
给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论