老翟书摘:从《大野耐一的现场管理》看软件工程管理

前年,接触到了《丰田生产方式》,就对大野耐一这个人十分感兴趣,就专门找他的书来看。 同时,我一直都有一种“感觉”:我们软件工程的管理方式都是从传统工业借鉴的。比如被吹上天的“精益”概念及“看板”概念。然而,这些概念里,少有人说明这样地借鉴的理由及借鉴了哪些,放弃了哪些。想回答这个问题就必须分别弄清楚传统工业和软件工程的本质。 我尝试在这本书了解一些关于传统工业的管理概念。以下是书摘: ####“精益”的概念的产生 1990年,美国麻省理工学院的詹姆斯 沃麦克等多位教授,在《改变世界的机器》一书中,首次以“精益生产”(learn production)为核心介绍丰田生产方式,自此,欧美的一些企业才开始把丰田生产方式作为全球化以及提高生产率的标准和尺度。 领导说服力:坦诚即代表强劲的说服力 要想说服别人或是得到理解,若没有什么根据或道理是行不通的。 不要总是认为自己的言行没有错误,意识到错之后就应该爽快地说出来。如果有了这种胸怀,指挥现场以及下属不就变得轻而易举了吗? 犯了错误之后,应该不吝于向他人甚至的下属道歉,怀着这样坦诚的态度,怎么会没有说服力呢? 为了形成强劲的说服力,重要条件之一就是管理者自身应该怀着谦虚的胸襟。 现实生活中,人们似乎随着知识越来越丰富,产生错觉的可能性反而越大。 传统工业也会遇到我们软件工程一样的问题:面对同样一份工作,存在不同的意见。传统工业时里的体现可能是组装配件有两种方式,哪个效率更高;软件工程里的体现是实现某个功能,怎么实现更快(不要忘了,我们还要考虑可维护性,可读性)。当存在不同的意见时,双方容易在无用的争论上浪费时间,大野耐一是这么处理的: 在产生两种意见的情况下,各给双方一个工作日的时间,让他们按照自己的意见试着做一做,最后比较结果,直到让大家彻底理解、赞同为止。 其实,这样处理的最大好处是将**“实践出真理”**的文化慢慢带入企业。 ####要提高生产效率,“意识革命”是首要问题 从上层管理者到中层管理者甚至工作在生产一线的作业员们,由于大家都是普通人,所以都有可能被禁锢在错觉之中,认为现行的做法是最科学的;或者说即使不认为是最好的,也觉得别无选择,这就是被常识化了。 我们软件行业更是如此,特别是一毕业就只在一家公司待很久的人。很容易被“常识化”,认为软件开发就只有一种方式:手工将jar包下载回来,导入到IDE中,然后写代码;部署软件也就是ssh上服务器,然后stop,start。 大野耐一说: 若是不改变从管理顶层到一线作业员以及工会的意识、观念和想法,那么怎么可能探索出做好工作的新方法呢?组织上的改革或许相对容易,但是“意识革命”应该会更加困难一些吧。 再比如很多人认为写单元测试会导致进度被拖慢。其实,关于单元测试是否加快进度,需要更多的数据支撑。所以,需要软件项目管理工具为我们提供更全面的统计工具,来收集这些数据。这也说明了软件行业和传统工业的一个很大的不同。传统工业中很多工作是重复的(产品通常是批量生产),可以快速实验,快速看效果。而软件行业中,根本没有批量生产某一软件的说法。 ####无效率的动作不是工作 身为生产现场的管理者和主管,必须具有分辨“动”和“働”的慧眼,也就是说,必须能够分辨清楚哪些动作是无效率的,哪些动作与工作是无关的。 这里,对于这个“无效率”的定义会有争议。我是这样认为的,如果不能帮助我写出可读、可维护、用户可用的软件的动作都是无效率的。比如手动去管理软件依赖、手动部署、需求沟通需要等上一个星期、新加入团队的成员需要花两天的时间搭建开发环境、重复手工测试、单元测试写在main方法里、写代码过程分心看微博,动弹…… 作为leader,发现这些无效率动作,然后找到改善办法是一项重中重的工作。 ####改善应该按顺序进行 所谓作业改善,就是能够让现有的设备更好地发挥作用。在改善过程中,首先需要考虑的不是购买设备,而是最佳的工作方法。 我认为首先需要进行的是作业改善,之后才依次为设备改善、工序改善,也就是改善应该有先后顺序。 软件行业中,顺序应该是软件开发流程改善,之后依次是实现技术改善、软件开发工具改善。原因是软件开发流程的成本收益率比实现技术改善、软件开发工具改善更高。这只是我的片面之词。希望有数据的同学能帮我证实。 ####产品质量问题 如果某个零件比较容易在前几道工序的时候出现问题,是不是应该考虑将检验工作提前呢?提前发现并剔除不良品,总比让它们一直往下走要好得好多。 品质融于生产过程中,因此,如果能在必要的地方做好检验工作,那么就不必等到工程的最后才发现不良品,或者说到工序的最后阶段只需要重点检验某些部分即可。 产品质量融于软件开发过程中,将风险高的软件模块提前开发。QA在功能开发前就参与需求的讨论,并提出验收条件AC。 ####降低成本 如果有人问我,为什么要拼命减少库存、降低成本,我会告诉他,是为了让资金周转更加轻松。 然而,只要提到降低成本,大家就会觉得这是财务人员的责任,其实不然,财务人员根本无法促使成本降低,这只能通过集体的努力实现。 因此,所谓的降低成本,唯有依靠生产现场来进行,现场的降低成本的意识要做到比鬼还要精才行啊。 减少浪费也可以降低成本。关键是我们如何看待浪费。在《丰田生产方式》中定义的浪费: 1.过量生产的无效劳动:软件行业中指在不合适的时候开发多余的功能 2.窝工的时间浪费 3.搬运的无效劳动:需求沟通不完整,导致重复沟通 4.加工本身的无效劳动和浪费 5.库存的浪费 6.动作上的无效劳动:花费过多的时候搭建开发环境 7.制造次品的无效劳动和浪费:品质没有融于生产过程中 从这里就可以看出光靠架构师是不能彻底杜绝浪费,更不可能靠财务了。 ####小结 这本书给我最大的启发是:高高在上不接地气的技术管理是无法管理好团队的。高高在上意味着他无法或很难及时、准确得知开发现场的情况的。如果你连“施工现场”的情况都不了解,谈何改善? 同时,我也发现软件行业的代码审查、每日站会就很好的体现了大野耐一的现场管理思想。通过这两个实践,我们的leader才有更多机会靠近“现场”。这才是代码审查、每日站会背后更深层的原因。 半年后再次重读这本小书,又知新。 老翟书摘说明 书摘内容完全来自原书,如果原书的作者或出版商觉得我侵权了。请联系我。 老翟书摘旨在通过一种书摘的方式让大家花最少的时间了解一本书,从而决定要不要继续读下去。书摘的每一本书都是本人亲自读过并理解的。

2016-02-15 · 1 min · 54 words · 翟志军 Jack Zhai

老翟书摘:《丰田生产方式》

这本书的作者是大野耐一,原丰田汽车工业公司副社长。里面写了大多是一些生产过程中的原则和看法。但是,这些原则和看问题的角度是通用的,即使我们是软件行业。同时,在看完这本书之后,你会对市面上的那些”精益”理论,会有不一样的看法,也不至于盲从。 序 我们的初衷是找出一条适合于日本经济环境的独特的方式,但又不想让别家公司,特别是不想让先进国家轻易地了解它,甚至不让他们留下一个完整的概念,而一直推行和强调“看板方式”或“包括人的因素的自働化”。因此,人们难以理解它,也是很自然的。 第一章:丰田生产方式的诞生 我认为只要杜绝浪费,生产效率就有可能提高10倍。这种想法,正是现在丰田生产方式的出发点。 “彻底杜绝浪费”是丰田生产方式的基本思想,而贯穿其中的两大支柱就是: (1)准时化 (2)自働化 所谓“准时化”,就是在通过流水作业装配一辆汽车的过程中,所需要的零件在需要的时刻,以需要的数量,不多不少地送到生产线的旁边。 究竟怎样才能做到“准时化”? 我们进行了各种试验,最后总结出以下做法:以生产工序的最后一道总装配线为起点,开始给装配线提出生产计划;而装配线上用的零部件的运送方法,也从过去由前一道工序向后一道工序运送的方式,改为由后一道工序在需要的时刻到前一道工序去领取,而前一道工序只按后一道工序的数量生产。 “看板”方式则是顺利推行丰田方式的手段。 丰田生产方式的另一个支柱是“自働化”,但不是单纯的机械“自动化”,而是包括人的因素的“自働化”。 丰田公司的“包括人的因素的自动机器”就是指“带自动停止装置的机器”。 因为当机器正常运转的时候用不到人,人只是在机器发生异常情况、停止运转的时候去处理就可以了。 “自働化”的作用主是,杜绝生产现场中过量制造的无效劳动,防止生产不合格品。 第二章:丰田生产方式的精髓 “为什么会出现生产过量的浪费呢?”针对这个问题,会得出因为“没有控制过量生产机能”的答案,据此展开便生产“目视化管理”的设想,进而导出“看板”的构思。 彻底杜绝浪费,最重要的是充分掌握下述两点: 第一,提高效率只有同降低成本结合起来才有意义。为此,必须朝着以最少量的人员、只生产所需要数量的产品这一方向努力。 第二,关于效率,必须从每一个操作人员以及他们组织起来的生产线,进而以生产线为中心从整个工厂着眼,每个环节都要提高,才能收到效果。 以运用丰田生产方式为前提,需要彻底找出无效劳动和浪费现象: 1. 过量生产的无效劳动 2. 窝工的时间浪费 3. 搬运的无效劳动 4. 加工本身的无效劳动和浪费 5. 库存的浪费 6. 动作上的无效劳动 7. 制造次品的无效劳动和浪费 我是彻底的现场主义者。这是因为我从年轻时起就是在生产现场的不断磨炼中长大的。当了负责经营的管理者以后,就更不开企业的主要数据来源的生产现场了。 我们曾反复提及“准时化”和“自働化”是丰田生产方式的两大支柱,把这一体系的运作工具称为“看板”。现在,让我谈谈它的由来。 实际上,“看板方式”是从美国的自选超市得来的启示。 前面我们已经谈到,这是从自选超市中得到启发的。自选超市使用“看板”后会出现什么情况呢? 在计价器将顾客购买的许多商品计价以后,要把记载着销售出去的商品的各类和数量的卡片(相当于“看板”)送到采购部。这样采购部便可以迅速地补充商品。这种卡片,拿丰田生产方式来说,就相当于“取货看板”。自选超市陈列的商品,就相当于生产现场的工序贮备。 丰田生产方式通过“看板”便可以完全杜绝“过量生产”的现象,不需要超出需求量的库存。不需要仓库,也不需要仓库管理人员,而且,也不需要散发许多单据、传票之类的东西了。 “看板”是“准时化”的一种手段。也就是它是以实现“准时化”为目的的。“看板”是生产线的反射神经,生产现场的作业人员可以根据“看板”开始作业,并判断所需加班时间的长短。 “看板”也能使用管理者、监督者的职责明确化。 “看板”的使用规则第一条是“后一道工序要到前一道工序去领取产品”。 “看板”的第二条使用规则是“前一道工序只生产后一道工序所需要数量的零部件”。 实际上,如果不遵守这些规则而只引进“看板”,既发挥不了“看板”本来的作用,也不能降低成本。这种孤立使用“看板”的做法是有百害而无一利的。 企业越大越需要要具备很好的反射神经。对于计划的微小改动,要做到无需大脑发令也能采取相应的行动。就是说,如果生产管理部不发指令或者不发计划变更通知便不能改变作业,不能采取行动的话,企业就不能避免受创伤、遇大害,并且还会贻误大好时机。只有企业具备无意识适应变化的微调机能,才可以说真正装上了反射神经。我确信:通过“目视化管理”和“准时化”、“自働化”丰田生产方式这两大支柱,将会更好地锻炼这种反射神经。 第四章:丰田生产方式与福特生产方式 丰田生产方式同福特生产方式一样,基本形式是流水作业。索伦森在放置零部件的仓库上颇费一番苦心,而丰田生产方式却不需要仓库。 把同一品种和同一型号的零部件凑在一起,即把批量加大,不换冲模,尽量多次连续冲压进行大批量生产的作法,现在仍是生产现场的常识。福特生产方式大批量体系的关键就在这一点上。美国汽车企业一直证明,有计划地进行大批量生产对降低成本最有成效。 丰田生产方式与此相反,而是“尽量缩小批量,迅速变换模具”。 福特生产方式要加大批量来提高产量,所以,在各处都要有工序间的库存贮备。丰田生产方式则不同,其考虑方法是把这些库存可能导致的生产过剩的无效劳动和浪费,以及管理这些库存的人员、土地建筑的负担完全清除。 福特生产方式和丰田生产方式任何一方都有自身的优点,而且两者都在日日求新与改革,无法下结论说哪一个更优秀,但是我个人深信在低增长的时代,以丰田生产方式较为适合。 老翟评书 市面上有一本有名的书叫《看板方法》的书。说实话,这本书,我没看完。是我看不下去(你可以想象背后的原因),所以我不好评论。为什么要提《看板方法》这本书呢?因为我见过不少把《看板方法》里面的“看板”与丰田生产方式中的“看板”看作是一样东西,包括我自己。所以,我建议大家先看这本大野耐一的《丰田生产方式》,再看《看板方法》。大野耐一说了,他的看板是从美国自选超市得到的启示,是为了实现丰田生产方式的支柱之一:准时化。所以,我也希望大家能从《看板方法》里找出它说的“看板”的根源。 不知道有没有注意到作者在序中说的:但又不想让别家公司,特别是不想让先进国家轻易地了解它,甚至不让他们留下一个完整的概念。这点时刻提醒着我自己,有时我们看不懂别人的理论,并不是我们读者的问题。而是有可能作者有意,或者他自己根本不懂,所以无法表达清楚。 老翟书摘说明 书摘内容完全来自原书,如果原书的作者或出版商觉得我侵权了。请通过开源中国 @翟志军 联系我。 老翟书摘旨在通过一种书摘的方式让大家花最少的时间了解一本书,从而决定要不要继续读下去。书摘的每一本书都是本人亲自读过并理解的。

2015-12-29 · 1 min · 62 words · 翟志军 Jack Zhai