以下是个人的一些观点,可能与大多数人的不同,所以自认反方,命名为《反方观点》。不一定对,但希望能发出自己的声音。
项目管理,风险和收益
国内大大小小的软件公司都在做cmm, 相信在炒作的同时,不少公司也确实期望通过完善的项目管理来提高竞争力。但我觉得刚刚起步的小公司,炒作一下也就罢了,还是不要真正实行为好。这里的问题是:为什要进行项目管理。个人认为是为了降低项目的风险,或者说是为了把项目风险控制在某个能承受的范围内。但经济学的常识告诉我们,风险与收益是成正比的,大公司追求平稳发展,实施完善的项目管理体制理所应当。小公司就不一样了,因为还有生存的问题,不发展是死,发展的慢了同样是死。所以小公司需要追求跨越式的发展才行,cmm降低了项目的风险,但同时也降低了项目的收益,想借助cmm来获得高速发展,无异于缘木求鱼。
觉得oshj说的有道理,所以把他的补充进来。 小公司也需要部分发展,这是个平衡问题。如果发展初期一点也不注入,那么后期再来实施会导致大换血以至元气大伤,和重新起步没什么差别,而且容易使管理层形成思维定势,想正规都正规不起来,只能眼看着公司一步步衰败。这种教训很多,一些好不容易发展壮大的公司却很快就消沉下去了或拆分成更小的公司,就是前期不注重管理以及三、五条枪形成的思维定势而埋下的祸根。
总结一下就是:一个公司在不同发展阶段,需要不同风格的项目管理。能不能把公司做大做强,就在于管理层能否适时、平稳的完成不同风格的转换了。
项目不是个人英雄主义
个人认为这一点只有在所有(或大多数)项目成员是英雄的时候才是正确的。我是唯天赋主义者,并且我也知道,爱迪生的“天才就是1%的灵感加上99%的汗水”的下半句是“但那1%的灵感是最重要的,甚至比那99%的汗水都要重要”。所以,我觉得,对大多数公司来说,一个项目中有一个“英雄”已经很不容易了,期望靠项目管理和团队合作来解决难题,可能真的没有依靠这个“英雄”更现实。
系统设计师不用编码
这个观点可能最早是由某个(些)国外项目而产生的,记得几年前看到过一篇文章说某某系统的总架构师根本不会编码。到了国内之后,就都开始认为系统设计师根本不用编码,不过大家都忘了的一点:人家是xx(数学?)家,是天才,我们是什么呢?一个真的脱离了编码的设计师,他的职业生命还能有多久呢?
OO无敌
说实话,每次听到一些人(尤其是初学者)说“面向对象”这个词我就觉得有点别扭(其实我想说:恶心)。干嘛动不动就面向对象呢?这个世界真的全是由“对象”组成的吗?举个例子,最面向对象的两门语言,Java和c#,都有个System,里面一大堆静态成员函数,写程序时候要一会System.A, 一会System.B,粗看好像很OO,但(站在OO的立场上)仔细想想,这个设计是很难看的,根本不OO。所以,所谓的“面向对象”基本上是忽悠人骗钱的东西。其实说白了,一句话:我们写程序是为了解决问题,不是为了面向对象(或面向其他的东西),千万不可本末倒置。
另外,关于OO的弊端,建议看看《unix编程艺术》,这本书的观点虽然有些偏激,但我觉得还是很有道理的。其认为OO的主要缺点在于:程序中的“黏合层”太多,会把本来已经很复杂的问题弄得更复杂。还有就是我并不反对OO,我反对的是滥用OO(和下面评论中**的观点比较接近)。
posted on 2007-05-16 15:57 局部变量 阅读(3032)