月映万川,车载软件人不应忘记的标准:ISO9001
IATF16949、ISO26262、ASPICE…..,说到车载领域的体系规范,那老多了。
但实际上,除了公司里负责过审的几个人,其实没有几个人知道它们到底是干什么的。这些东西内嵌到公司流程时,要不隐了身,要不打了折扣。
日常工作的争论中,偶尔有理论家蹦出来说:“你这不符合ASPICE规范”“PMBOK不是这么要求的”时,大家都会觉得他是个呆瓜。
这很正常,这些行业体系和规范都太枯燥了,写得也不通俗易懂,没有必要每个人都去学习原文,领悟精华就行了。
但说到精华就不能不说ISO9001了,它是体系标准的鼻祖,几乎所有的体系规范都从她而来,她适用于所有行业。因为她不讲具体产品怎么做,主要讲原则、讲管理的逻辑。
大卫·弗莱明说:“大问题并不需要大规模的解决方案,一个行动上的基本框架,外加无数微小的对策就足够了。”
如果说稳定产品质量、提升客户满意度是我们面临的问题,那ISO9001就是应对行动的基本框架,而IATF16949等就是建立在这个框架上的微小对策,他们侧重解决特定行业、特定维度的问题。
当我们工作几年,多少了解些行业规范和套路的时候,回看ISO9001会给我带来一种“原来如此”的通透感。然后再去实践,再去认识,就会融会贯通。
所以,今天我想结合车载软件行业,谈谈ISO9001的灵魂——质量管理七大原则。车载软件人不应该忘记她,或者说,我们应该和她认识一下。
(1)以客户为关注焦点
彼得·德鲁克说:“企业的目的必然存在于企业自身之外,因为企业是社会的器官。决定企业本质的是客户,因为只有客户愿意为商品或服务付费。”
服务好客户是企业的第一要务,客户关注什么,我们就多关注什么。客户不关注什么,我们就少关注什么。客户是衣食父母,客户是我们工作重心的标尺。
比如,针对车载娱乐系统,一些日本客户并不关心产品设计、产品体验,他们更多关注质量稳定。对他们来说,做出亮眼的设计,没有少出几个Bug有吸引力。但有些项目经理囿于自己的工作习惯或者组织理念,事无巨细,什么都要过问,结果付出很多辛苦,却没有让客户满意。面对这样的客户,项目经理应该分清主次,少放些精力在产品上,尽量放权给产品经理,然后把主要精力放在体系建设上,管好流程,把好质量关。
(2)领导作用
老板就是企业文化,什么样的老板就有什么样的企业文化。领导重视质量,员工才会重视质量。但一般老板不爱谈质量,老板喜欢谈梦想、谈方向、谈战略。这么看好像这条原则很无力,因为我们没办法逼着老板起带头作用。
我认为这里的领导不一定必须是最大的那个,他可以是一个圈子内的领头人。日常工作中,同一个公司的不同部门、不同小组,甚至项目之间的文化氛围都是不一样的。很多时候影响我们的是小圈子的文化,而不是企业整体的文化。
一般的项目经理没有行政职权,但在一个项目中项目经理绝对是、也应该是团队文化的核心。项目经理的所作所为、一言一行可以影响团队。项目经理要相信相信的力量,要相信自己关注什么,强调什么,项目成员就会注意什么。意识到自己要起到领导作用,你就能起到领导作用。
(3)全员参与
从员工个人角度讲,全员参与的前提是有质量意识。质量意识就是我知道我有责任保证我产出的成果物的质量。有意识才能有行动。我们可以通过制度、培训、教育等积极方式培养质量意识。
但我想说的是消极方式,汽车工业管理体系健全,出了质量问题,难免要调查、分析、写资料、做汇报,这一整套流程天然的要求全员参与,但实际上经常发生这样的事情:开发的Bug报告逻辑混乱,于是TPM代笔;测试不会做5W分析,项目经理就瞎编。
为了效率,把部分人员隔离在能增强质量意识的工作之外。短期效率高了,但并不是全员参与。做事的人免于了冥思苦想之苦,又让专精之人尽展所长,看似皆大欢喜。实际最后,管理岗质量意识强,张口就是开发没有质量意识云云,实际做事的人却蒙在谷里,不知道发生了什么。
绞尽脑汁地思考为啥犯错是痛苦的,被客户劈头盖脸的指摘是丢脸的,但恰恰是这个过程会强化质量意识。把每个质量危机当成一次强化质量意识的机会,让负责的人感觉切身之“疼”,才能把全员参与落到实处。
(4)过程方法
很多程序员大学专业叫软件工程,写了半辈子代码,却没有工程意识,不讲究过程方法,怎么方便怎么来。
其实,这也容易理解,因为过程方法不是必须的东西,没有过程方法一样可以开发出好产品。回望工业发展史,过程方法都是产业成熟之后才发展起来的,它们是前人的经验总结,不是金科玉律。
但正是这样才愈显得珍贵,这是前人做好的答卷,放在那里让我们抄。谁抄的好,学的好,谁就占据优势,谁不抄,谁就吃亏,谁就是有便宜不占的傻瓜。
过程方法不能决定工程水平的上线,但他可以保证底线,没有过程未必就不好事情,但有了过程肯定差不到那里去。
ASPICE最能体现这个原则。比如把软件开发过程拆分成需求分析、架构设计、详细设计和单元构建、单元测试、集成测试、合格性测试六个过程,清晰地定义各过程的关系、边界、角色、活动等,环环相扣,逻辑清晰。
没有几个公司能完全按着这个标准开发软件,也没有那个公司能靠着ASPICE登顶企业之巅,但工程师学习了这套过程方法,绝对能大幅度提升自己的工程素养和系统化思维,保证自己做出来的东西不出离谱的问题。
毛主席说:“我们说马克思主义是对的,绝不是因为马克思这个人是什么先哲,而是因为他的理论,在我们的实践中,在我们的斗争中,证明了是对的。”
很多过程方法已经被证明是对的,省去了我们验证的过程,我们有什么理由不好好参考。
(5)改进
热力学第二定律: 在所有的能量交换中,如果没有能量进入或离开系统,状态的势能将小于初始状态的势能,即在封闭的系统中熵总是增加的。
引申到我们的工作中,如果没有外部能量输入,整个工作系统就会越来越混乱,越来越差。改善就是外部的能量输入,改善是为了维持整个系统的稳定,抵消掉渐渐增加的熵。
经常有人抱怨,说不知道客户和公司为啥总折腾,今天改体系,明天加流程,后天变规则,维持现状不是很好吗,也没出现什么大问题。程颐说不日新者必日退,未有不进而不退者。这世界上没有只求原地踏步、不求上进,就真能保持原地不落后的人。大概是这个道理。
ASPICE中每次评估输出弱项,制定SMART改进目标;IATF16949中的8D/5Why/鱼骨图都是持续改进原则的实践。
(6)基于事实的决策(循证决策)
做决策要基于证据。对普通员工来说,决策这个词有点大,日常工作中很少用到,但另一个肯定是高频词汇:确认。
我们对客户说“我确认一下”就是把大概已知的事情,再核对一遍,确定没错后报告出来。报告是决策,再核对一遍就是循证。
我们说“等我看下规格书”,“等我看下代码”,“等我看下日程”,就是基于证据做决策的过程。这种回答的准确率很高,因为我们是基于证据说话,规格书、代码和日程就是我们的证据。
但实际上,日常工作中更多的是没有询证的决策。比如,不做设计和深入分析,代码想到那里就写到那里。客户问个问题,凭脑袋中的印象就回答。这些都容易出错。
ASPCIE强调文档,强调一致性和可追溯性,就是要求做事情要有根有据,不能拍脑袋。曾经有个开发对我抱怨,说客户在评审产品设计的时候太钻牛角尖了,甚至会问一段函数的重试机制为什么要设计成3s。
其实客户在意的不是参数本身,客户想知道的是在写这个参数的时候你有没有思考过,有没有试图找过一个证据,哪怕这个根据不很牢靠。在客户看来,思考这个动作增加了品质的可信赖性。从工程角度来说,思考过程比思考结果重要。
(7)关系管理
曾经一位品质总监对我说:做品质的人必须要会喝酒。
其实做品质管理很简单,绝大部分东西都是可量化的,行就是行,不行就是不行,按着标准执行就可以了。但实际做起来却很难,因为要拿着死规定和活人打交道。品质部门就在死规则和活人的中间地带。
后来我发现,不止品质部门,所有部门都在这个中间地带。ISO9001把关系管理放在最后,当有其深意,它给其他原则创造了闪转腾挪的空间。她提醒我们:原则是死的,但人是活的。
行文至此,落笔将歇。内容不咋滴,自己写得倒是挺酣畅。若还能给同行朋友些许启发,那就再好不过了。
伏案沉思间,不禁让我想起第一次接触ISO9001的情景。刚毕业那会儿,我在南方一个小五金加工厂当生产管理。审核时,负责找各种资料,手忙脚乱,都不知道是干什么用的。转眼已过而立之年,想起过去的日子,多少有点感慨。
那时,我每天和冲压机、钢卷、栈板打交道,总是满手油污,从来没想过,有一天还会干上软件。
夜雨聆风