我一直都有这么一个想法,能不能给我们程序员来一场专属的《金字塔原理》培训。多年前,我把这个想法跟公司内部的主管培训的同事说了,遭到了拒绝。因为除了我这个课程的内容没有按照《金字塔原理》的结构之外,还因为原来在公司内的《金字塔原理》就是一门通用课程,怎么能仅服务于程序员这一个群体呢。但是我还是不死心,在这接下来的几年我找到了一个出路。就是每年给QCon的讲师做分享前的培训。就这样,这个文章就逐步形成了。
为什么我要这么不死心呢?
最近越来越发觉,程序员好比科学家,擅长一种非结构化的思考方式,溯因推理。利用这种思考方法,程序员们能完成变态的需求开发,能解决棘手的缺陷。但是大部分程序员与科学家还是不同,他们在企业中工作,需要与人沟通,与上级汇报工作,通道面试,需要提升自己的技术影响力,这时最需要的就是程序员最不擅长的结构化思维:金字塔原理。
作为程序员的一份子,我感恩当年入职公司的时候听的《金字塔原理》,却又明白这对于已经拥有思考方式的程序员来说,像是吃饱的人,结构化思考并不好消化。所以立志弄一门程序员专属的《金字塔原理》。
36岁,献给十年前的自己
在我写这篇文章的时候,我刚好36岁,面对工作和生活上许多新的挑战,当两个男娃的爹、升总监带团队、从终端转战云计算、日夜加班,幸好妻子和双方父母都能体谅,帮我照顾家庭。但偶尔,我总能想起某篇关于35岁英雄迟暮的文章,一个互联网从业者来说,新的技术不断涌现,总会担忧有一天会被公司嫌弃跟不上时代,成为高不成低不就的淘汰品。这时肯定有不少人跟我一样,想要握住一些东西,这些东西不应该像沙子一样流逝,让走向40的道路更自信、从容。
要握住的是什么呢?
我很喜欢我们一个设计总监的一句名言,在一次培训中他说,无论做什么、经历什么,人生就是一场又一场的修炼。每次听到这句略带鸡汤特性的话,我都能联想到《三生三世十里桃花》中已是神界太子的夜华尚还需到人间历劫,更何况是普通人呢。那我们修炼的是什么呢?是解决问题的能力?洞察人心的能力?结构化思维的能力?平常心的能力?但无论那种能力,无论做什么事情,特别是当遇到困境逆境的时候,更加可以修炼。
记得电影《春娇与志明》中,遣散的化妆品公司,留两个员工,留了把早中午饭外卖分类归纳得整整有条的春娇。发现了么?这是结构化思维的能力。结构化思维与很多能力一样,需要练习修炼,在修炼路上的我能深刻感受到,他让我在IT技术不断进步的今天能慢慢抓住技术中一些不变的东西。
结构思维能解决帮助程序员解决什么问题
既然把通用的课程,变成程序员专属的《金字塔原理》,那么内容肯定是讲程序员的。因此,我会从三个程序员遇到的职场场景以及在场景中遇到的问题来展开。分别是,技术汇报、技术分享、技术思考、技术管理。
技术汇报
我作为一个有技术追求的程序员,说实话,还挺鄙视汇报能力比技术能力强的,明明是60分的事情,各种包装弄成120分,然后老板像瞎了眼一样给予各种升职加薪。这时不妨抱怨一句,上司都不懂技术。也许有人会和你说,“别抱怨了,改变不了世界就改变自己”。这种彻头彻尾的毒鸡汤,连探寻自己对错与否的脑经都不动动。
事实上不懂得包装自己的技术真的是对的么?在不坑蒙拐骗的基础上,包装是对的。或者换个正面一点的词,“说清楚”。这几年,每年都在公司做通道评委,有个不得不说的感悟,“说不清就是想不清。” 哪怕有口吃,如果思路是清晰,因果关系是明确的,在技术通道的程序员总不会吃什么闷亏。问题来了,就这么一个看似简单的“逻辑清晰”,就已经难倒了许多都在职场5~6年了的程序员。因此,在后面的技术汇报篇中,我们会针对给上级汇报,通道面试,上司提问等场景,会给一些源自金字塔原理的技巧和方法,让你在关键核心的“想得清”之上能“说得清”。
技术分享
之前阅读一本关于TED演讲的书,说分享为了“给予”。说得也没有错,但是我认为分享的终极目标是为了“启发”。给予是付出,启发是相互的,技术分享应该是既可以启发别人,也可以启发自己,技术的交流像碰撞,应该有火花产生。这也是我喜欢“被迫”分享的原因,如果有人找我分享一个陌生的课题,我心中就会有个潜意识告诉我,启发自己的机会来了。正如我们做很多事情都要有一个驱动力,特别是总结归纳,繁忙的工作会成为我们安慰自己没有抬头看看的借口。一个已经确定日期,确定TOPIC的分享,会成为一个不错的驱动力。
但如何输出一个有“启发”的技术分享呢?这里卖个关子,我们会从金字塔原理中吸取养分,让大家可以做一场不仅仅有“给予”还有“启发”的分享。
技术思考
作为程序员的你,主要职责当时不是汇报和分享,那会是什么呢?解决问题!开发需求是解决问题,解决缺陷是解决问题。技术思考就是想想如何用技术来解决问题。例如解决软件缺陷的时候,开发就像科学家,像爱迪生发明灯泡,猜测原因,实验证明,猜测原因,实验证明,循环往复,直到我们找到其中的规律,最终解决软件缺陷。这种思考力,我们称之为溯因推理。但是作为程序员,除了要面对“科学研究问题”,更多时候是“工程效率问题”。这类问题的原因不需要反复实验,有时甚至显而易见,但是通常原因不只是一个,要解决问题需要有复杂的体系来应对,这时就需要我们的金字塔原理中的归纳推理出场了。本篇会通过丰富的案例来介绍,如何例如“归纳推理”漂亮地解决我们的工程效率问题。
技术管理
作为程序员,你有借助技术突破解决问题的能力,有体系化的思考应对工程效率的问题,懂得分享,有技术影响力,懂得汇报,上司看好你,也许你就要升职面对技术管理。不知道当你还开发的时候,是否记得自己身边的同时会抱怨上司,“他究竟在挑战我什么?”,现在的你也许也抱怨,我这个下属就是笨。但是若要说清楚挑战什么呢?仿佛说不清道不明。
那么,毫无疑问金字塔原理中的思考方式可以帮助你和你的团队提升沟通效率。除此之外,还可以是个coaching的工具,帮助团队在技术上思考、精进,变聪明。本篇会透过我在技术管理的实践为案例,帮助思考在技术管理上遇到的一些痛点的解决方案。