一个系统不仅需要优秀的分析和设计,更需要一个良好的过程将其从蓝图转化为实现。这个过程中最重要的是对团队的管理,也就是人的管理。一个优秀的团队和一个糟糕的团队的效能是天壤之别,她们之间的比例不是1:100或1:1000这样量化的数字能够表示的。就像一个团队建造了一幢摩天大楼屹立于云霄,而另一个团队的建筑物还没有10米高便开始摇摇欲坠!这是质的差别,也是团队灵魂的差别。
而团队的领头人就是项目经理,他的能力/素质直接影响着项目的成败!我们不需要一个团队的所有成员个个都是优秀的,但是为了确保你的项目成功,请雇佣一个优秀的项目经理!
以前,自己通常都是单干,最多时也是两三个人合作,项目进展良好。现在负责一个较大项目开发,需要协调整个团队成员,保证项目的进展。原以为,这是一件很简单的事情,和以前一样嘛。结果随着项目的进展,问题越来越多,而其中的绝大多数问题都不是技术上的,而是对组员管理协调的问题。想使一个团队高效并保持高效,我们需要花不少的气力。以下几点是从我前段时间的实践中总结出来的,只是自己的经验小结,也并没有打算写成一篇完整的关于团队管理的论文,毕竟在这方面自己的功力还浅薄的很。希望和大家多多交流这方面的心得。对团队的管理需要重视以下几个方面:
(1)让合适的人做合适的事。了解每一个组员的知识结构和背景,知道他们各自擅长什么,把任务安排给能最有效最迅速解决它的人。
(2)把项目的主要功能/任务以列表的形式形成文档、把每个组员的阶段任务以列表的形式形成文档。这是重要的,否则,你自己和你的组员将会常常忘记目标是什么、自己要做什么。
(3)不要给组员我们的项目不着急的感觉。让每个组员都有紧迫感。一个安逸/懒散的团体不可能按时按质提交项目,即使这个项目本质上并不紧迫。
(4)在组员的上一阶段任务提交之前,就应当安排好该组员的下一阶段任务。不要让任何一个组员闲散着。因为无论在什么时候,系统的任何一个模块都有改进/重构/整理的需要,我们的设计/实现永远都不够优秀。
(5)对某一特定的环节,清晰明确地告诉你的组员你想要的是什么,否则,你就准备把同样的事情告诉他第二遍第三遍。让另外一个人完整地了解你的意图不是一件简单的事情。
(6)充分地交流。就这个项目而言,你和你的组员之间的交流可能还远远不够!
(7)锻炼/指导你的组员、相信你的组员。如果作为项目经理的你是个优秀的程序员,那么千万不要相信自己能完成所有的主要/核心功能。你也许可以完成某一模块,但是更多的模块是由你的组员完成的。
(8)千万不要惟我独尊。也许你很坚信自己的方案是优秀的,但是如果你的组员提出了新的方案,那么请你重视这个新方案,并一视同仁的从这两个方案中抉择更适用于当前项目的那个。我就从组员那里吸收了很多精彩的想法,并将它们运用到项目中。
(9)坚决的执行力!前提是你必须有足够的判断力和决断力。当有些议题没有结论的时候,你需要来拍板。
(10)公平公正的对待每个组员。千万不要偏袒任何一个!
(11)请记住,项目经理不是“官”。