delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

30 Mar 2007

立项培训

今天在公司做了一个下午的项目管理方面的培训,其实从上学的时候我就不是很能适应立项、结项等等一系列流程的做法,所以我认为参加这样的培训对我来说很重要。

说说我对项目经理这个角色的理解。其实项目经理是一个要求相当高的角色,或者,应该说项目经理是决定一个team——而不仅仅是一个或几个“英勇”的开发人员——成败的关键所在。

商业公司与开源项目的项目经理角色又有些不一样。我的理解中,类似 FreeBSD 这样的开源项目,基本上应算做“敏捷”一类,用北京话来说,这种开发十分强调“靠谱”的开发和测试人员,我个人认为在这样的过程中,项目经理扮演的更多的是架构设计师的角色——指出需求、设计大的框架、撰写文档,并组织一些人来实现设计。FreeBSD的SMPng项目中,最早的项目经理是Jason Evans (jasone@),后来是John Baldwin (jhb@)和Robert Watson (rwatson@),他们的主要角色大体如此。

而另一方面,商业公司的开发往往不仅强调品质,而且强调及时性。项目经理不仅要知道做什么,而且需要决定不做什么,什么东西应该延后,等等。FreeBSD中同样有类似的角色,这个角色主要由一个叫做Release Engineer的team来承担。

今天的培训内容很有意思,简单地说,项目经理需要面对两个客户,这两个客户自己有一些想法,但是训练本身为他们制造了一些沟通上的障碍。项目经理需要与这两位客户一起分析需求,画出客户心目中的“沙发”,向老板请求资源,并指导和监督完成最终的实现(用乐高积木搭出客户屏幕上显示的东西,并且尽可能与用户屏幕上的一样,整个过程中,项目经理不被允许看屏幕,而两个用户也不能看对方屏幕上的形状)。

今天的主要收获:

  • 事先明确收集需求的流程很重要。客户可能无法正确描述自己想要什么,良好的流程则有助于避免这个问题。
  • 作为项目经理的支持者,老板这个角色需要能够想到可能用到的资源,并将资源事先整理好,以避免出现由于资源不足导致项目推进困难的情况。
  • 项目经理需要在项目实施之前想清楚如何分解项目,以及调配什么样的资源。
  • 及时沟通。一个看得见摸的着的模型,有助于在项目实施的早期揭示问题。
  • 明确定义。在项目组内部需要有统一的描述方式,上帝击败巴贝尔塔项目的方法,就是让人们掌握不同的语言。

最后,很重要的一点,尽管掌握用户的真正需求非常重要,但这个世界是不完美的。成本高昂地完整、全面地掌握用户需求,与及时完成用户的主要需求两者之间,有时项目经理必须做出合理的抉择。


Archived: 2 Comments

supper3000 | April 1, 2007 11:43 PM

李公有机会可以考虑听我讲讲类似的内容,自以为还是很经典的。对了,现在网上就有,项目管理,已经到第四讲了。

HD | April 5, 2007 6:17 PM

呵呵,三金同学总结的好呀。正是这样的培训的意义。方法其实是每人都不同的,而意识与原则是基础。当然,如果在培训中也找到了适合于自己的技巧哪么会是一个非常有意思的事了。。。
有空了,可以一起多玩玩这样的培训,了解自己,了解适合于自己的方法。 :)

楼上的。。。。是WMA。。。。无法接受。。。