常见的项目经理有两种,一种有点像以前中国大学里常见的那种“项目 / 课题负责人”,还有一种像大学科技处的“项目 / 课题协调人”。项目负责人往往“拥有”一个或多个项目。这种“拥有”包括资源(人力、财力等)、客户(时限、交付)、以及责任(对老板以及市场部的承诺等)。项目协调人主要是根据客户要求以及内部的资源状况,把项目交给工程或设计部门,并与客户协调项目进展。作为一个公司“个体贡献者”,项目协调人往往是客户服务的一部分,一般协调五个以上的项目,让工程和设计从客服中解脱出来,这样才能体现出价值。项目协调人还有一个任务是详细地记录项目进展中的问题和情况,以改善下一个项目的实施。以前好像前一种多见,现在大多是后一种。项目经理的工作有时很难准确界定,我把与我工作过的和接触过的一些项目经理记录在这个博文里,从一个侧面刻画他们的工作。
自从离开“智能平台”(我的第一次工作变动 – 卖掉智能平台产品分部)以后,我就来到“高科技先锋”下的一个软件设计中心,其实是一个只有十来个人的“软件屋”( Software house ),从事收费系统软件开发。这个软件屋是一个组建了一半的软件中心。总部来的运营经理( Operations )保尔 · 汉考克原来打算招一、二百人,筹建一个专攻智能平台软件中心,为武器、汽车、航空、导航等行业服务。智能平台分部的撤销,中心也就没有存在的意义了。保尔把这个“中心”交给他的工程经理彼得,自己去了波兰的科拉库夫( Krakow ),筹建那儿的软件中心。保尔因为需要一位算法设计专家,所以在智能平台被卖掉以前,把我给调了过来。
在彼得的带领下,我们这个软件屋赢得了两个开发合同,一个是给慕尼黑的城市交通系统( S-Bahn (轻轨), Metro (地铁), Bus (公共汽车))做一个收费系统,另一是给欧洲的一个零售网做一个充值卡系统。这两个项目由尼尔来作项目经理。
尼尔是从皇家空军来的质量保证( QA )工程师,软件测试专家。保尔把他招来本想让他当中心的 QA 经理,让他把这个软件中心搞到 SEI CMM 5 。保尔是一个有远见的人,他在筹建软件中心时,把各种软件工程中的角色先招齐,然后再招高质量的软件工程师。所以,当彼得接手时,人手没问题。既然只有两个项目,与客户打交道以及交付时限等,彼得自己处理了。项目管理则由尼尔负责。
尼尔的项目管理可以总结为开发过程(Process)监控加质量管理。他对软件工程的开发过程以及每一步要采取的质量保证很熟,脑子里有很强的 SEI CMM 意识。所以在开发的每一步都按照软件开发的规范来做。从做软件项目管理计划( SPMP )开始,到软件配置管理计划( SCMP )、软件要求说明( SRS )、高层设计( HLDD )、细节设计( DDD )、编码、测试计划( TP )、测试报告( TR )、发布计划( RP )等每个细节都备案,以供将来的 SEI CMM 评审用。这些东西我只在大学的“软件工程”课程中学过,从来没在实践中用过。我出国时带了一本郑少仁、郭肇德翻译 Roger Pressman 的“软件工程”第一版,在工作中翻一翻,参考、参考,与尼尔交流一下,完善一下知识。尼尔从这个角度进行项目管理,也就给了我一个知识更新的机会。
这两个项目保质保量地按时完成了。慕尼黑项目当时还创造了一个“世界第一”。但我多年后回到慕尼黑时,这套系统已经不用了。取而代之的是更简单、更便宜的系统 – 无人收费系统:自己买票、自己检票、自己上车。
这个小小的软件屋在两年后被总公司并入一个 30 英里以外的一个有二百多人的大型软件中心。大部分人都不愿去,我留在了当地做网络系统,开发一些演示用的“参考系统”。彼得和尼尔去了一家新创公司,有两个人去了微软, 其他人各奔东西,那时也没有找工作的问题。最近几年,大家在 LinkedIn 上碰面,得知彼得自己搞了一个找工作网站,尼尔后来换了几家公司,现在在 IBM 作“高级测试顾问”,另外一个叫阿特的在AMD给Flash产品写驱动程序。
项目经理(Project Manager)的一些故事 (2)