一个关于项目经理的故事

一个关于项目经理的故事

项目经理的养成日记

L在2001年毕业之后加入到了福建实达公司。

在今天这个公司几乎是很少有人听说了,但在当年实达还是在IT这片江湖里有些地位的。当年实达的产品线非常全,有网络、有电脑还有外设。外设里面就包含了终端、打印机和POS机。当然也还做过VCD,不过即使在2001年VCD这一笔也是作为失败案例来提的。

当年L选择了到外部设备公司去做激光打印机驱动程序。那时候实达外设试图开发一款自己的中端激光打印机,因此需要全线配备软硬件人员,正是借助这个机会,L加入了激光打印机这个团队。

现在想来这个决定有点狂妄,不管是自己还是实达。

随着iPad这类平板的兴起,人们的打印需求越来越少,所以激光打印机这类东西越来越不受关注,似乎要被被强塞到旧纸堆里了。但不管它火不火,单纯从技术难度上看,这东西绝对比手机难做,虽然世界上所有做打印机的厂商加起来市值也不一定有苹果高。

激光打印机包括现在的多功能一体机属于是精密机械,机械、光学仪器、硬件、软件、甚至图形字体都搅在一起十分难搞,没有绝大的投资,绝对啃不下来。激光打印机等利润最丰厚的部分是面向企业的各种机型,眼下这块市场始终在富士施乐、佳能、理光等少数几家厂商手中,国内并没有厂商介入这一领域很可能是和介入壁垒过高有关。在2012年,很多日本有名的大公司都巨亏,但做激光打印机的还能支持,我想这也和这一领域壁垒过高,竞争对手不多有一定关系。

当时做这个项目的时候,团队里的人员都很痛苦,L这个做驱动的尤其痛苦。微软为打印机提供了标准的驱动程序叫Unidrv,如果基于这个来做,虽然也麻烦,但基本不用编程,主要工作是调整配置文件。之后这个驱动负责帮你生成打印机能认识的用专门语言描述的页面数据,那时最主流的页面描述语言有HP的PCL和著名的PostScript。

但用Unidrv坏处是这样一来你能定制的东西就非常少,很简单的六合一功能都没有。所以如果真的自己开发产品,那驱动程序最好要自己从头写。但L当时没认识到自己写其实是不太可能的。

L当时的水平大概是这么个状况:C++基本会用,但达不到很高的水准,熟读《Windows核心编程》,但大部分书中讲的内容没有用过,反倒是MFC用的比较熟练,但很可惜的是做驱动的时候MFC用不上。通过了高级程序员考试,所以各种通用算法和数据结构没什么太大问题。

而从头做驱动需要什么呢,你要了解Windows提供的DDI接口,要了解图形图像、字体、页面描述语言、色彩的知识。打印机驱动中最好做的是UI,基本上用Win32就行了,最难的是做页面渲染,也就是把GDI描述的页面转换成相应页面描述语言(PCL)描述的页面。这一过程非常繁杂,根本不是初级程序员能搞定的。其中不说别的难点,一个图像二值化就能憋死很多初级程序员。彩色页面打到黑白打印机上,要把彩色图转为用黑白两色表示的灰度图,这东西那那么好弄的。

简单来讲是,L当时是两眼一抹黑,差距太大。
71

可以举个最简单的例子来形象说明这种差距大到什么程度:L当时基本的调试也不会,只能用OutputDebugString()输出用DbgView抓Log,来看程序那里有问题。有人可能很奇怪说2001年时,VC6的调试器不很好用么。秘密在于,Win98的打印机驱动是16位的,VC6完全不好使。直到后来找到SoftICE才解决了这个问题。

一边做驱动的开发,L一边把Unidrv搞定了,这样基本上不耽误其他硬件开发工作。同时L疯狂补各种知识,单只为了把C++搞通就啃了数本书,其中最难啃的反倒是《C++程序设计语言》,这书即厚又不好懂,那时候那明白什么叫不充分的抽象。但回头想来,读这些书其实对工作帮助不大,打根基的东西总是见效慢。这就和高烧40度要赶紧挂水一样,吃中药慢慢熬,就是没有立竿见影的效果。当你需要搞定矢量图形如何转换时,设计原则、面向对象这些东西对你能不能做出来一点帮助也没有,只有当你能做出来了,这些东西可以帮你把事情做好倒是真的。

做了一年多后,大家都发现这活实在不是一个人能干的,团队中就又加了2个人,所以L勉强算是个小头目了。但即使如此,整体进展仍然不太好,这和公司的策略有关,这家公司的核心产品,其实是针式打印机,并不是针式打印机,实达有着自主研发的整套针式打印机技术。而激光打印机实际上处在摸石头过河的状况,但偏偏这是个资本密集,技术密集的领域,这样一来,进展不顺也就在情理之中了。现在想来最好的解决方法其实是买套代码,在上面定制。等到Win2000成为操作系统的主流,借助DDK的例子,这个问题一定程度上得到了解决。

说到这里要抛开技术,说下大环境,要不然无法说明L的幸运。当时实达集团有三家子公司:实达网络专攻网络设备,如Modem、路由器等,实达设备专攻外设,如终端、打印机和Pos,实达电脑则主攻PC。

当时这三家公司是冰火三重天的状况:实达网络日子很好过,发展也很快;实达外设则稳步发展;实达电脑则活的很不容易。整体来看实达实际上是处在下滑期,顶着ST的帽子让公司很难受,新的利润增长点又没找到,尤其是电脑部分,利润是必然是越来越薄。

在实达的三年里L的工资竟然没有一点调整,不过L当时没太注意这些,还是在研究驱动。借Win2000 DDK的启发,发现在打印处理器那个环节可以做很多事情,这样针对页面的各种操作就都可以自己来做了。

正当L把这个工作作出点进展的时候,家里出了点事情,于是跳槽,到了苏州一家也是做打印机驱动的公司。这纯粹是种幸运而不是种安排,如果不是家里有事,L未必会换工作,而在开始衰落的公司里做非主营项目真未必是什么好事情。

在此前整整三年里,L理清了打印机驱动的体系结构,打下了语言、平台的各种基础,确定了基本开发方法,找到了适合的二值化算法,但真没做出什么太大的贡献。

换到苏州这家公司后,借助过去的经验,职位有所提升,是以Leader的Title入职的,实际上是项目经理。不过一进公司,L很吃惊,当年从头开发驱动不过也就三个人,这里维护现有驱动搞了快20号人,主要做的事情就是修改现有的驱动程序,每次代码变更量不大。绝对的八旗子弟。

不过麻烦事也出现了,以前那有那么多报告,现在需求的确认,日程的确认,合同的确认,记录的跟踪,问题的总结全都要做。一天到晚大事没有小事不断,会议数目直线上升。再加上外语这一层障碍,还经常出现说半天对方还没明白的状况。

L信奉适者生存,开始积极转型,把PPT写好,把Excel写好,文档里不能有小错误,读项目管理书籍,读估算书籍,把口语练好。过往的技术经验和基础还是很有帮助的,这让L可以比较快的把握各种需求的规模、难度等。

直到有一天,原来的老大离职了,L被提升成了部门经理,开始带自己的队伍。

公司由于处在成长期,团队的规模也就在不断扩大,而L的责任范围也就随之逐渐扩张。这时候L的工作又发生了变化,以前是关注一个项目,现在要关注多个项目,也要关心兄弟们的士气。

L这时候技术基础还行,也试图坚持写代码,可发现挺难的只能负责那种时限不是很严的,独立性比较强的模块,因为你不知道接下来会发生什么,出差、来客人、兄弟们吵架、流程出问题、临时分配的其它工作等等。

在经历了最初的几次失败之后,L的队伍逐渐成熟,项目成功的几率逐步提高。现在L比较自信,认为自己是一个比较合格的经理了。虽然不能讲任何一个项目到手里之后,都能保证它绝对成功,但至少可以尽可能保证它成功的几率较高。

可惜的是,L发现自己累积的技术基础一点点荒废,基本程序虽然看的懂,但写起程序来变的很慢,每一行代码调用每一个方法都要去仔细查找帮助文档。

74

感悟程序人生

我们还是回到之前一直提到的几个维度:

价值 x 实现程度(表达力,稀缺性,公司平台)= 职场成就

从L的经历可以看出来,技术是根本,即使你想做管理,即使你学了可能用不上那么那怕是当敲门砖用,你也要在恰当的领域里有一定的技术基础,这是价值的根本。要不然你可能没有做管理的机会。

任何一个企业招一个人都希望这个人能尽快为公司创造价值,这点和大学绝对不一样,企业不负责再培养你四年。因此,一个人很难对企业说:我什么都不会,我就会做项目管理,你招我吧。一般人很难遇到这么疯狂的企业。

第二点是你加入处在那个阶段的公司非常关键,如果L一直坚守在第一家公司,L是不可能有所提升的。原因很多,但其中最关键的一点是在整个产品线中,驱动程序是在一个配套的地位上,而在第二家公司驱动程序则是公司最核心的业务,这点影响非常大。

第三点是做可流动区域小的工作时,要特别当心。短期来看L运气还好,大致解决了自己的生存发展问题,但其实如果以20年为尺度来看,问题仍然存在,对打印机驱动从业人员的需求永远不可能像对网站开发人员那么强烈,其划定的区域也就非常有限。实际上这点在L的同事身上有了一定体现:你做的事情相对比较生僻,而你在这一领域上又沉淀了很久,一旦走出这个领域,又只有年纪大的劣势,而没有优势,这会导致一个人非常艰难。但以L而言,确实又因此而受益,正因为此领域有经验的人员稀少,L才有机会获得较快的提升。

第四点是一定要避免加入处于衰落期的公司。假设说,领域想对比较生僻,但公司能够为此支付一定的溢价,那也是有得有失。只要没有欺骗,当事人因为合适的薪资而选择了一个流动性不好的工作,这合情合理,风险理应由自己承担。但关键是L的第一家公司处在衰落期,三年不调整工资基本等价于降薪。如果L不是碰巧离开了,那么纯经济的角度看损失还是要大,一旦正好赶到房价暴涨后买房,那对人生的影响就不是一点半点。

第五点则是关于管理技能的可流动性。虽然说管理技能的大部分是共通的,但由于L的技术背景是驱动开发,L将很难成为电商类项目的经理人。

L的经历里还潜藏着一个冷幽默,当L不会做驱动的时候,他被分配去做驱动;当L不会做项目经理的时候,他被分配去做项目经理;当L不会做部门经理时,他被分配去做部门经理。大致上是在做自己能力不足以匹配的事情,L的人生仍然再继续,不知道此后的人生是否仍然会符合这条规律。

未经允许不得转载:Python在线学习 » 一个关于项目经理的故事

赞 (0)

来吐槽吧 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址