项目经理修炼之道

来源:互联网 发布:网络医院注册 编辑:程序博客网 时间:2024/04/30 04:27
 

转载于:http://blog.csdn.net/leezy_2000/article/details/6975358

 

 

#成为项目经理是需要积累的,如果你想快,但不想付出,那求神拜佛比较好。

#这系列文章是写给想成为项目经理,但又愿意努力的人的。


当我们开发软件的时候,很多人知道要为目标软件建模,好开发需求。

而成为项目经理自身也是一种需求,为进一步开发其关键点,事实上也需要建模---为软件开发自身建模。


项目经理更类似帅才,单项未必是最优的,但在开发软件时必须统筹全局。

而统筹全局的前提则是对软件开发自身形成了自己的想法,自己的道,这里的“道”,即是属于你自己的软件开发模型。


让我们从最简单的开始。


软件项目的基本输入是:人,需求和工具。

其中人是团队成员,需求是原始需求,工具则是Visual Studio这样的东西。

这三者不是不可改变,但在限定时空背景下,选择有限,因此认为他们是一种输入。


与软件构建相关联的主要手段有:管理,流程,估算,开发模型(瀑布,迭代),需求开发,设计编码,测试


软件项目的输出是:软件产品,软件产品可以用功能和非功能两个质量维度进行度量。


而从输入转向输出的过程中则受三个维度的因数影响:

商业因素,项目政治因素,技术因素。

商业因素是指和赚钱相关的事。比如:一个需求可能做的很好,但最终被取消了,因为准备在下一个版本中放出来。

项目政治是指和人情有关的东西。比如:A和B就可能有点个人恩怨,没法合作,但偏偏项目有同时需要这两个人。

技术因素则是指各个环节的内在合理性。比如:设计就应该符合高内聚,低耦合的原则。


单纯的任何一个维度都不足以保证项目的成功,都只是一种筹码。

你手里的筹码越多,天平越向胜利这一端倾斜。倾斜到一定程度后,结局出现,或赢或输。


上面的各个因素还可以进一步细分,比如管理又可以分为:管人,管事,管物。

其中管人最重要,所以所谓管理项目,首先是管人,人管不好,别的是扯淡。

假如队伍中没一个人有基本的责任感,那么即使把PMBOK,CMMI倒背如流,项目该失败,还是失败。

这是后话,这次不提。


如果想成为项目经理,首先要形成一个属于自己的,覆盖软件开发各个领域的模型。

并给出一个属于自己的,对模型中每个角色的定位。

相信项目经理每天只要喝喝咖啡,不需要懂什么就可以了,就和相信赵括同学能打好仗一样,是危险的。


上面的模型远不完善,但故事已经很长,因此说修炼这事需要点耐心和积累。


眼下似乎没有把软件开发关联要素作为一个整体进行考察,帮助每个人形成自己的“道”的书。

更多的书,强调的是某个单独的维度:面向对象,编程语言,设计模式,敏捷,种种开发平台等等。

事实上在项目面前,所有这些都只是筹码,在不违反法律和社会道义的前提下,做项目本就应该“不择手段”。

但只有形成了自己的道,才能很好的驾驭这些手段,一旦反过来被这些东西所驾驭,那就容易偏狭。

 

 

 

软件这个行当里历来有个谣言:项目经理不懂技术没关系。

有人说这事儿是外国的先进经验,但我怀疑这是杜撰的。

这一观点的潜台词是:项目经理是管理者,指挥下属就行了,干嘛要懂技术!

这就像说班长不用拿枪上战场一样可笑。

持这个观点的可还记得:”将军起于行伍,宰相拔于州郡“这一说。


我的观点是,项目经理一定要懂技术,并且还要有比较扎实的功底,虽然在专门领域上不一定是专家。

在这篇文章里,我们将列几本用来打根基的书,这些书要精读而不能翻翻就算了。

这些书的用途,不在眼前,但却最终决定你的成长高度。

没这些根基,如果站得太高,可能就像上海的楼房,指不定那天就倒了。


1.语言+平台的书

语言和平台的书依据语言和平台不同,经典书籍也不同。我的感觉是选最有名的,各读一本就可以了。

举个小例子:

本人当年学C++的时候,花了差不多1年的时间,反复读了Bjarne Stroustrup 的《C++程序设计语言》,实在是受益匪浅,后来再学其他语言时,基本没什么障碍。学Windows编程时,把Jeffry Richter的《Windows核心编程》读了几遍后,各种Windows下的问题大多能较快理清脉络。

即使是现在,凡是这类项目中的问题,也还是能很快的把握症结所在。

这类书,有名的很多,但重复读多本似乎收益不大。把一本读透,其他的实践中慢慢体会即可。

如果你方向是系统编程,那上面两本书仍然适合你。如果是其他平台,自己选一本有名的吧!


2.有技术根基后,要读一本培养技术上全局视角的书。

这时,我感觉最佳选项是《代码大全》。这书几乎涵盖了设计编码的各个环节。

读了之后,也许很难记得具体某个环节的细节,但是至少可以知道软件开发中要考虑那些方面的问题。


3.技术上视角足够宽之后,要读一本俯视软件全体的书(包含需求开发,管理,估算,流程等)。

事实上这里需要一本经典的软工书籍,但很可惜这个领域中好书不少,但经典到一定程度,且实用的就几乎没有。

《人月神话》太老,《人件》则几乎完全不适合国情,《软件随想录》则太零散。

(你让国内软件公司给每个程序员配个办公室,那老板能疯掉。)

非要推荐一下的话,CMMI的2,3级过程域分解的还不错,可以读SEI的标准。


4.研究一下估算,读一本估算相关的书。

如果估算能准,软件开发中的问题,很可能可以减少一半。

估的有问题,会导致团队老加班,接下来导致内部关系紧张,工作热情消退,这很自然。

所以要有自己的估算方法。这时候可以读《软件估算--黑匣子解密》。


5.改变下自己的视野和格局,读一本和编程毫无关系的书。

比如:汤因比的《历史研究》.


在前一篇《项目经理修炼之道(1) -- 给软件开发建模》中我们提到,不管怎么样,你要有一个属于自己的,针对软件开发整体的模型。

这个模型可以丑陋,可以简单,但关键是一定要是你自己的。

这就好比一颗珍珠,它中间可以是小石头,可以是鸟屎,但一定要有,

有的话,后续的分泌就可以保证产生珍珠;没有的话,那珍珠也就不知从何谈起。

没有自己的对软件开发的理解,读书多了,知识没法吸收,会把脑子读乱掉,

原创粉丝点击