做产品不是做研发(一个05年毕业小本 系统工程师的一些体会)
1月16日,系统部开工作总结会议。王工讲了很多,首先肯定了大家的努力工作。但是更强调了一个重要的概念:我们这些工程师的工作水平离市场的要求还差很远。主要体现就在于我们设计的产品的质量,当然这个质量包括:功能性、可靠性、健壮性、时间性等。
我可以说是公司的子弟兵,还没毕业就从学校跑到了公司。在简历上我写到:优秀是一种习惯,我也一直铭记,但是真正做起工作来了,往往不知道如何下手,勉强开始了,更是丢三落四,做过几个产品,功能性倒是满足了,但是离健壮性这个要求还有很远。毕业半年来,我就像一块海绵一样迅速吸收各种知识、技术、技巧,勉强具备了独立开发硬件系统项目的能力。经王工一评点,发现自己的工作质量距离优秀工作质量还有很远。究竟是什么原因造成的呢?当然客观原因是我的工作经验和知识能力不足,但是思考问题总是追究客观原因是没有意义的,而且这些方面都是可以通过勤奋学习弥补的。我感觉有什么东西是很重要而且我没有意识到的。所以这几天一直在考虑核心问题。早上突然灵光一闪,感觉到自己的问题出在自己的工作策略上:以做研发的心态来进行工作,而不是以做产品的心态。
做研发是什么心态呢?我认为更多是以技术为目标,在工程师知识能力的基础上,通过工程师的思维,来完成技术上的进步。比如说工作上需要完成一个单片机的CNMP通信协议,工程师在理论知识(包括C语言、MCU原理)的基础上,迅速学习C51设计知识,通过思维能力,设计出来CNMP通信协议。这种心态下工程师追求的是个人的技术能力进步。
做产品是什么心态呢?我认为更多是以产品为目标,在工程师知识能力和工作能力的基础上,通过思维能力,完成优秀的产品。还以单片机的CNMP通信协议为例子,以做产品的心态就是如何使自己的协议更规范、更高效、更可靠,如何使协议的可读性更强,或者由优秀MCU软件工程师完成,而不是让你从头学起。这种心态下工程师追求的是个人的工作能力进步和企业的进步。
显然企业最需要的是优秀的产品,而不是那些高贵的技术,企业不是学校,没有义务对工程师进行培训,任何培训都是以优秀产品为目标的,即使工程师具备更好的知识能力从而有基础来完成优秀的产品。
一个优秀的产品主要是由工程师的工作能力、知识能力、思维能力和交流能力决定的。对于科班出身的我们,很容易将做研发和做产品混在一起,这里可以将做研发看成知识能力的体现,将做产品看成工作能力的体现。我们就可以发现,是什么使我们的产品质量如此低下?是因为从幼儿园小班开始到大学毕业十八年的学习生涯,一直都在培养我们的知识能力(当然70%的学生只是培养了考试能力),各个方面都很轻视工作能力(即做事的方法、策略、能力)。并成功将这种习惯带到了工作岗位上,我就是很典型的例子,充满学习热情和学习能力,充分发挥了自我的知识能力。但是很遗憾,我的工作能力的发展速度明显慢于知识能力的发展,即自我的工作能力没有得到多少进步,而我却一直不自知。更可怕的是通过知识的能力进步,我就认为自己进步很大了,并一直沿着原有路线前进,从而走上一条歧路,如果不及时认清现状,很有可能就是我的技术越来越高,工作却越做越差。
这里对知识能力罗嗦几句,毕竟知识能力是工作能力的基础,我认为知识能力有三种境界,第一种境界是WHAT,即这种知识是什么?比如什么是AMI编码。第二种境界是HOW,即这种知识是怎么来的?比如从功率谱密度的角度分析得到AMI的特点。第三种境界是WHY,即人家为什么要这么想?我觉得这才是最重要的,即抓住知识创立者的思维,比如AMI的创立者为什么要这么想?他是怎么想出来的?通过抓住别人的思维,不断与自我思维进行对比,从而达到优化自我思维的目的。
对于工作能力,我现在的认识就是工作的策略和严谨,即根据工作环境,选择最优的工作策略,并在整个工作过程中始终保持高度的责任心和严谨度,这样保持整个工作流程都清晰明确,各个阶段都是优秀的,所设计出来的产品更是优秀的。工作能力不是可以从书本上得到的,唯一的学习方法就是工作的各个细节。在明确工作目标以后,在制定工作策略后,根据知识能力基础,保持高度专著和严谨,从而优质完成工作。只有通过优秀的工作才能设计出优秀的产品,才能培养出优秀的工程师。
说道设计我就想展开一下,我感觉硬件设计正在走软件设计的老路,一个重要表现就是将精力放在调试上而不是设计上。软件设计在50年前经历过那次巨大的危机后(调试越来越困难,已经无法调试),成功走出困境,从而发展了软件工程的理论。我认为这是思维的工程理论,对硬件设计来说也是一个宝库。随着SOC的发展和硬件电路IP化,硬件设计正在越来越像软件设计。当然硬件设计与软件设计有很大区别,这需要根据实际情况进行硬件工程思想的优化。但有一点我们需要注意:电路性能和通信性能是设计出来的,不是凑出来的。当然这需要我们坚实的电路理论和通信理论基础。明白了自己的现状,才好确定自己的知识发展。