译者序

译者序

当第一次拿到这本书的beta版阅读时,就像一扇窗户在我面前豁然打开了。它不仅仅把敏捷、精益和持续交付等理念的诠释与整合上升到了一个新的高度,更打动我的是,它还系统阐述了一个组织应该采取怎样的策略才能真正有效地发生转变,将这些理念变成组织普遍接受的日常行为,从转变中获得最大的收益,本书在这方面的旁征博引和独到见解解决了我十几年IT从业经历中的很多困惑。

当谈到敏捷转型或实施,人们普遍想到的就是用户故事、Scrum、看板或极限编程等实践方法。当团队大到一定程度就会建立某种机制来协调跨职能团队间的目标和进展。然而,我们看到的失败案例远超过成功案例。即便我们尝试了业界流行的一些“大规模敏捷”框架,也没有本质的改变:

  • 转型带来的改善往往局限于某一个产品或部门,当要将其成果向横向纵向进行扩展时就遇到重重阻碍,似乎有个难以打破的天花板;

  • 企业管理者将敏捷或精益视为团队需要做出的改变,而意识不到自己经常就是这一转变中最大的障碍,缺少信任和授权,强调控制和惩罚,要求员工开放与担责,而自己却掩盖事实,推卸责任;

  • 当一个产品处在复杂的企业IT环境中,高耦合的架构与大量外部依赖使得没有人真正理解整个系统,导致特性无法按计划实现,难以独立交付,等待与集成严重拉长了交付周期;

  • IT作为一个服务提供者被动接受来自业务的需求,不加分辨,也无力回绝,团队加班加点被折腾得士气全无,更谈不上学习和改进,而最后交付的产品还是难以让客户满意;

  • 团队成员对产品的好坏没有责任感,即便有好的想法也不会提出来,因为“这是领导决定的”,多一事不如少一事,不想担责,层层如此,心思都花在了粉饰成绩和政治游戏上;

  • 即便一些组织声称已经“敏捷”,人们仍然热衷于在交付的不同环节之间进行工作交接和确认,而各个环节的KPI却不一样,难以产生真正的信任与合作;

  • 最后,即使企业在敏捷和精益的转型上投入巨大,仍然创造不出用户真正喜爱的高质量产品,看不到显著的业务成效,以至于很多人对敏捷等理念产生怀疑。

而过去多年来,企业在软件开发上大规模采用外包以及外包低端化的趋势使得上面的问题进一步恶化。企业以控制成本为目的,而供应商将员工的“人天”视为创收来源,对员工的持续成长没有足够投入也从不真正关心。外包员工对工作的实际成效更是不关心不负责。供应商一边持续招人,一边稍有经验的人又不断离开,员工无成就感也无归属感,每个人都只是一颗螺丝钉,“码农”这个词确实是对这群人的真实写照。

在这个行业做开发、管理和咨询这么多年,有一种深深的失望。软件本可以是优美的,做软件的过程本可以是充满创造性、充满乐趣的,然而目之所及,大多数管理者深受建筑行业、制造行业生产过程的传统管理模式(即本书中谈到的泰勒主义管理模式)影响,生生将软件开发变成了一个艰苦而无趣的工作。殊不知(或知道,但视而不见)现代软件开发与传统的建筑、制造行业生产过程有着本质区别。

  • 不确定性

    一栋大厦可以在建造之前想清楚每一个细节的设计,一旦开建基本不改变。而软件,尤其在进入互联网时代后,用户往往根本说不清楚想要什么,只有当看到真实可工作的软件时,才能判断这是不是他想要的,且大多数时候的结果都是“不”。而即便今天用户用上了你的产品,也许几天后就会弃如敝履。这种不确定性使得软件开发参与者掌握更多上下文信息,及时获得反馈,并能根据反馈迅速做出响应变得极其重要。

  • 隐性质量

    我们可以拿尺子测量水泥板的厚度、墙面的长度,可以用仪器分析水泥的成分,从而准确知道房子的质量。然而,同样一个软件特性,开发人员预计10天完成的,你如果只给他5天,可能也能完工,区别就在质量上。有些质量问题直接需要返工,造成浪费,而有些质量问题从外部很难测量,它不会影响今天的功能,但会逐步让系统腐蚀掉,让团队如陷泥潭越走越慢。

  • 智力活动

    软件的“不确定性”和“隐性质量”两个特征,从根本上决定了软件开发永远都是一项需要很多思考的活动。(或许直到有一天,机器人变得和人类具有同等的智力。)因此,软件开发从业者是典型的知识工作者,从事的是智力活动。思考就需要大量信息。然而不幸的是,这么多年来,还有很多“工业思维”的人在努力“愚化”开发者,认为开发者需要理解的东西越少越好,以至于开发者独见一叶,无法思考,也看不清自己工作的成效,自然也不对其负责。

    彼得·德鲁克的《卓有成效的管理者》一书被很多人奉为经典。他在这本书中提到:“我们无法对知识工作者进行严密和细致的督导,只能协助他们。知识工作者本人必须自己管理自己,自觉地完成任务,自觉地做出贡献,自觉地追求工作成效……谁也不知道一位知识工作者在想些什么。然而,思考正是他的本分,他在思考,也就是在工作……”

企业管理者是时候需要转变思维模式了。我们真正的目的是要为组织和客户持续交付出高价值高质量的产品,并且比竞争对手更快速地适应不断变化的环境,从而将IT变成企业的一种竞争性优势。沿袭传统管理思维不可能实现这个目的。

本书是一次尝试,以复杂适应系统为理论基础,第一次从产品生命周期在不同阶段需要的差异化管理模式,以及与之密切相关的组织文化、人力资源、财务、治理、风险与合规管理、企业架构演进等各个角度,全面阐述一个高绩效的适应性企业应该如何运作。并且本书旨在真正将精益的两条最高原则“以人为本”和“持续改进”应用到一个企业的方方面面,而不只是停留在人们思考边缘的口号和标语上。要达到本书描述的目标,对当前大多数企业来说并不容易,尤其在我们中国这样一个传统上更崇尚集权与控制的社会环境里,也许更具挑战。但是,只要管理者认同这是我们应该拥抱和努力的方向,大胆突破传统,从自身开始转变思维观念,并以身作则成为员工的榜样,这就完全可能实现。本书也对如何变革这一问题做了深入讨论。我们并不反对市面上现存的各种“大规模敏捷”框架,几乎所有这些框架都是在组织结构和软件交付流程层面试图回答“我们应该怎么做”。然而每个组织都是独特的,无法复制。另一方面,随着社会与技术进步,今天适用的流程方法也许在明天就变成了枷锁。因而,我们认为更重要的是要让每一个组织单元、每一位员工都学会如何适应变化,也就是要具备根据所获得的信息来进行实验,从而找到最佳方法来解决问题的能力和权力。

虽然这本书的主要目标读者是领导者和管理者,但我认为它完全适合每一位希望深度了解在高度不确定性环境下进行软件开发的特点和方法的人,适合每一位渴望创造优秀产品的IT从业者,适合所有渴望改变当前现状的人。无论是首席执行官、财务官,还是中层、一线管理者、产品经理、架构师,抑或是实际创造产品的开发者,以及组织中的变革推动者,都可以通过这本书更好地理解自己的工作,找到一些问题的答案,并在自己所能掌控的范围内开始改变。

翻译的过程中,我开始回顾几年前学过的部分MBA课程。除了为了翻译参考一些词汇,更重要的是,它成了我阅读这本书的一面镜子。MBA所教授的内容当然不是仅仅针对软件企业管理,然而当将其放到软件开发这一领域里时,它就成了一本反面教材。在最近几十年创新管理思想的发展下,传统MBA教育显得非常纠结和保守。课程中谈到了精益,却没有讲透其本质,仍然维持着泰勒主义的余温;提出了现代管理要以人为本,却仍然在为最大化股东利益呐喊;传统财务管理方法浓墨重彩,而将作业成本法或滚动预算等方法轻描淡写;在谈到组织行为学时,很少涉及近几年复杂系统理论的成果。也许软件领域的教育,包括大学教育和MBA教育,也是时候该向前一步,做出改变了。

另外,我认为这本书可以看作是一个全面的信息索引。书中大量引用的书名和提供的链接极大地丰富了你能获得的信息,从系统论、组织文化、企业管理的各个方面,到敏捷和精益工程技术实践,你可以从这里扩展开去,找到自己感兴趣的话题并深入学习。

致谢

首先,非常感谢我的妻子张映雪。翻译本书花了大量业余时间,而这些时间本应用来陪伴你。没有你的支持、包容和忍耐,我无法完成这项工作。也非常感谢我的搭档韩锴,在身体条件不太好的情况下,坚持和我一起完成了翻译工作。特别感谢本书的三位原作者Jez、Joanne、Barry和我的同事肖然,在翻译过程中为我提供了很多建议,帮助我更准确地理解原文的含义,帮助我成长。最后,也感谢图灵公司负责本书审校工作的几位编辑,你们逐字逐句地仔细检查、校对和修改,提高了译文的质量。谢谢你们!

姚安峰

2015年

目录