这是微软资深项目经理人Stephen Maguire的项目管理经验。软件开发和网站开发有极其相似的地方,我们可以从中学习领会许多知识。
第一章 有效团队的基础
1、专心改善产品
公司付工资给设计师,要他们在合理的时间开发出品质精良的网站,但是设计师们的时间却经常被其它事情占用了。
典型的情况是设计师要花大量的时间准备会议,参加会议,读写开会记录和进度报告,还有回复email等等,这些事情都不能改善网站的工作,虽然其中一些是设计师自己主动做的,但更大一部分是项目经理下的命令。
虽然项目经理的本意是好的,但是却违背了项目经理的基本守则:项目经理的任务是努力消除设计师工作上的一切障碍,让设计师权利专注在真正重要的工作上---网站开发。
这不是震惊世界的发现,只是简单的道理,但是有多少项目经理确实做到呢?
2、排除干扰
如果你希望团队在期限之内完成网站,就必须尽可能排除一切不必要的工作。在你分派工作给组员前,请问问自己,这件工作真的有必要让大家做吗?身为项目经理,必须时刻问自己一个问题: “我努力的目的究竟是什么?”
常见的就是让组员写报告。一天8小时工作时间,很可能4个小时花在了写报告上。而正常的开发工作却不得不加班做。
请不要误解我的意思,我并不是说不需要进度报告,只是提醒项目经理们,不要过分注重“项目流程”,而忽略了真正的产品----你的网站。我的一点心得是:用一个新的办法了解进度,容易写,而且不花时间。
1)当有设计师完成一个功能(子项目),就发一个内部email给大家;
2)当项目进度可能落后,就和我私下交流,讨论解决的办法。
3、明确目标
什么样的目标是明确的目标呢?其实并不一定是博大精深的,只要足够详细,能够保证项目向正确的方向进行就可以。通常只要项目组长花几小时,或者几天时间就可以制定一个详细的项目目标。例如本站:
目标1: 建立一个以网站项目管理为主题的网站。评价:目标已经明确主题,但还是不够详细。
目标2:为网站项目管理爱好者提供一个交流的平台。评价:目标定位了服务对象和主要功能。但是并没有体现我们建立网站的深层目的。
目标3:为网站项目管理爱好者提供一个学习交流,并能够共同制定详细规范的平台。评价:明确的目标,指出了服务对象,最主要的功能和网站本身的目的。
在目标确定后,我们就坚持这个大方向,凡是有利于目标实现的最先完成,比如:论坛,规范文章。与目标无关或关系不大的,可以不做或者推迟做,比如人才交流,漂亮的界面等。
4、设计的优先考虑
我们要建立以下基本观念:项目目标引导项目的方向,而设计的考虑顺序影响设计的过程。
每个项目的具体情况不同,考虑的优先顺序也回不同,一般来说,程序设计考虑的优先级表为:
1)尺寸大小(size)
2)速度
3)安全性
4)可测试性
5)容易维护
6)简洁
7)再用性
8)可移植性
除了优先考虑顺序外,你还应该建立各项考虑点的质量规范。如果事先能够决定最合适的优先考虑顺序,并建立质量规范,团队就不会浪费时间,网站的整体风格就会比较一致。
第二章 有效的作业方式
1、什么时候修改错误
微软的经验是:(1).bug越晚清除,时间花得越多; (2).在开发过程中立刻除虫,可以让您早些学到经验,然后不会犯同样的错误;(3).如果能够保证没有任何错误,您就能比较准确的估出项目的完成时间。 所以,设计师应该把找错误当成一件重要的事情,不要为任何理由而耽误。
2、email的时间陷阱
回复email要分批做,早上一上班,中午休息时间,或者是下班前看一下都可以,但不要有事没事都不停的看email。
3、方法让大家分享
身为主管,你应该鼓励组员提出改进工作效率的建议。引导组员思考的方法也很重要。比如,下面两个问题:
a.为什么进度总是一再落后?
b.有什么办法可以避免将来再发生进度落后?
第一个问题可能的答案是:互相依赖的工作太多,工具太难用,老板是个白痴等等;第二个答案可能是:减少互赖性的工作,购买更好的工具,与老板加强沟通。
两个问题的方向不同,第一个是探究原因,导引出抱怨;第二个是未来改进的方法,导引出解决办法。
问题越精确,问题越有力,对项目目标的实现就越有益,让我们再看三个问法:
a.如何保持每次都如期完成项目?
b.如何在不加班的前提下,如期完成项目?
c.如何在不加班,也不增加人手的前提下,如期完成任务?
第三个问法,就迫使大家来点真正有创意的思考和认真检讨工作本身值得改进的地方了。一次比一次更精确的问题,可以刺激思考过程,激发更有创意的答案。
4、无意义的惩罚
惩罚是一种心理上的负强化作用,惩罚是对员工的责骂,训斥与威胁,就象鞭打马匹使它服从主人的命令。这种管理手段是该受谴责的,如果主管们的用意是希望组员因此而工作更努力的话,就大错特错了。这种责骂只会激起组员心中的愤怒,羞恼和沮丧。实际上,往往这些项目的问题都出在管理方面,目标不明确或者野心太大,设计师只是倒霉的遇上了差劲的主管,其实他们的能力不比其他项目的设计师差。因此放弃责骂吧,责骂只会让项目更糟,绝对没有任何改善的效果。
第三章 保持进度
即使最顺利的项目,也无法完全按照计划执行,但是,如果你放任计划随意进行,有一天你猛然发现项目脱轨太远,来不及完成。项目就象一枚瞄准月球的火箭,只要有一点点不够精确,到时候就无法命中目标,差之毫厘,失之千里,实在不可不慎重。聪明的主管懂得这个道理,他们会经常注意项目的精度,随时修正方向,保持项目不偏离计划进行。本章将介绍一些很有效的策略,帮助项目保持进度。
1、向前看
我一直相信,项目之所以脱轨,主要原因在于人们没有认真思考如何使项目保持进度,顺利进行。如果没有未雨绸缪,只是坐等问题发生,到那时候就太迟了。一个月前没有花30分钟思考这个问题,现在就可能要浪费几小时或几天的时间去修正。这就是所谓的“被动工作”。
解决这种被动工作的方法,就是化被动为主动,事先发掘潜在的问题,并设法避免。有很多方法和技巧可以训练自己“向前看”,但总结起来不过是一句简单的要决:定期暂停手边的工作,然后往前思考,随时做必要的修正,以避免未来的大障碍。
我已经有十年以上的习惯,每天花10到15分钟思考下列问题,并且列出答案: 有什么事情是我今天能做,而且可以帮助项目在未来几个月内顺利进行的?
2、明确定义需求的范围
人们在开口要求的东西未必是他真正想要的,处理他的要求之前,请务必确定他究竟想要做什么。
在网站项目开发中,经常会遇到客户或者领导层提出一些希奇古怪的需求。一次,首席设计师惊慌失措的跑来找我,告诉我麻烦来了,客户对新设计的界面不满意,要求按照某个著名网站一摸一样的设计。如果真的那样做,需要重新花一个星期才能做出来,可是目前离期限的时间已经很短了。听了他的陈述后,我必须承认如果真得那样做,我们的进度就完蛋了,同时我也很好奇,为什么客户会有这样的要求,所以在我答复他们做还是不做之前,请客户经理去了解一下这个需求的原因。不一会儿,客户经理笑嘻嘻地回来了。
“他们只是看中了那个网站的动态下拉菜单,觉得那样比较吸引人”
呵呵,我知道他在笑什么了,这样的动态菜单我们其实早就有现成的模板了,只要将它替换现有的设计就可以了。而我们的设计师不清楚客户的喜好而已。
大部分客户在提出需求时都不解释原因,这种情况太普遍了,甚至你的管理层也会发生这种情况。如果你从他们的请求中无法看出他们的目的,你可以反问他们,在还没有弄清楚究竟想要做什么之前,不要贸然答应,宁可拒绝他们的要求也不要浪费这种时间。