前言
中国互联网的发展如火如荼,每年都会诞生无数的财富奇迹,吸引着众多年轻人投身于这个行业。然而从另外一方面看,很多互联网企业,无论大小,在项目开发过程中都遭遇过很多麻烦,长期的高负荷工作,也让很多优秀的开发人员离开原来的岗位。
在国内互联网的早期阶段,项目经理这个岗位的名称,只是代表一个负责某项目的较高级别职员而已。而真正对于软件工程学在项目中的应用,仅仅是那些有兴趣的开发人员的自发行为。对于软件工程知识的无知或忽视,是早期大量项目失败的共同原因。
当今互联网企业的竞争已经进入白热化的时期,创意本身的作用已经变得没有那么重要了,实现创意的开发能力却显得越来越关键。要想在市场中脱颖而出,我们更需要通过提高自身的开发能力和管理水平来取得产品的成功。
然而大部分经典的项目管理著作,都不是在互联网时代的环境下写作的,其所论述的观点虽然都很有智慧,但是其论据却距离手头的工作很远。另外,一些项目管理的书,都是以描述一个完整的工作流程为主要内容的,然而在实践的环境下,我们往往无法依照别人的流程去做。在多次尝试各种不同的项目管理流程后,我终于发现,那些成功的项目,往往并不是依靠某套管理方法取得成功的,而是因为它们拥有非常合理的岗位设置,以及在这些岗位上的人都很称职。这些经验和教训改变了我的思想,我不再试图去寻找那些“一流”的管理流程,而是更实际地去思考开发团队本身。
因人设事是很多组织中的弊病,很多岗位的设立并没有根据实际的开发需求来决定。而另外一个极端是组织松散,几乎完全不对岗位进行区分。在这两种组织当中,无论用任何先进的技术和管理,都几乎不可能做出成功的产品来。“要改变世界,必先改变自己”,一个组织也是一样,要改变工作的结果,必先改变组织自身。任何方法论的实施,都必须有足够支持这种实践的角色才能得以进行。而这正是很多企业所忽视的地方,很多管理者认为只要现在的团队改变做事的流程或者方法,就能应用那些优秀的项目管理方法了,然而最后的结果却是一次次的失败。我并不反对流程、规范、文档、监督这些手段,相反我认为这些都是很好的。只不过我经历了太多架空在实际开发流程之上的“项目管理”,这种管理除了让大家写很多没用的报告和文档之外毫无意义。而那些真正在开发之中,和所做事情的细节相关的文档、流程、规范却往往缺乏得很。我们身边有很多身负管理职责的人,往往习惯性地把“管理”和“开发”割裂开来,试图用一些在开发之外的知识、过程、手段来“管理”开发过程。“学而优则仕”的古老观点还在控制着我们的思想,在这种观点的影响下,我们的管理者越来越脱离开发的实际环境,导致最终瞎指挥和无所作为的管理者充斥着我们的管理层。
如果我们不把项目管理看成一种需要监督的、束缚团队每个成员的流程,而是把项目管理的理论和实践需求拆分到具体的岗位中去,就会发现项目开发有一种神奇的改变:那个板着脸四处巡视的管理者消失了,取而代之的是整个团队的高效协作。互联网软件开发是类似于外科的行业,而不是血汗工厂,所以不需要手持皮鞭的经理,而是需要仁心仁术的“神医”。
纸上得来终觉浅,绝知此事要躬行。感谢那些在项目中折磨过我,以及被我折磨过的人,你们帮助我在实践中学习了知识。
2014年1月