项目管理经验19
1. 为大型任务制定工作计划表
如果你的团队经常承担某种特定的通用任务,那么你就需要为这些任务开发一个活动检查列表和工作计划表。每个检查列表应该包括这个大任务可能需要的所有步骤。这些检查列表和工作表将帮助小组成员确定和评估与他必须处理的大型任务相关的工作量。
2. 将培训时间放到计划中
确定你的团队成员每年在培训上花费多少时间,并把它从组员工作在指定任务上的可用时间中,减去。你可能在平均值中早已经减去了休假时间、生病时间和其他时间,对于培训时间也要同样处理。
3. 把任务分解为“英寸大小的小圆石”
“英寸大小的小圆石”是缩小了的里程碑。把大任务分解成多个小任务,帮助你更加精确的估计他们,暴露出在其他情况下你可能没有想到的工作活动,并且保证更加精确、细密的状态跟踪。
4. 在质量控制活动后应有修改工作
几乎所有的质量控制活动,如测试和技术评审,都有发现缺陷或其他提高的可能。你的项目进度或工细分结构。应该把每次质量控制活动后的修改,作为一个单独的任务包括进去。
5. 为“过程改进”安排时间
如果你想把自己的团队提升到一个更高的软件工程能力水平,就必须在“过程改进”上投入更多的时间。可以从项目进度中留出一些时间,因为软件项目活动应该包括能够使你下一个项目更加成功的过程改进。不要把团队成员的可利用时间100%投入到项目任务中,这样会很大程度上限制他们的能力提升。
6. 管理项目的风险
如果你主动去识别和控制风险,那么他们就会控制你。在做项目计划时,花一些时间集中讨论可能的风险因素,评估他们的潜在危害,并且决定如何减轻或预防它们。
7. 定义项目成功的标准
在项目的开始,要确保各方对于判断项目是否成功有统一的认识。通常,按照进度完成项目时唯一明显的成功要素,但肯定还有其他的因素存在。比如,实现指定的销量、增加市场占有率、获得特定用户的认可、淘汰一个高维护需求的遗留系统等。
8. 把握不同要求之间的平衡
每个项目都需要平衡它的功能、人员、预算、进度和质量目标。我们把以上五个项目方面中的每一个方面,综合成一个约束条件,你必须在这个约束中进行操作:你可以定义成与项目成功对应的驱动力,或者定义成通向成功的自由程度。
9. 公开、公正的跟踪项目动态
项目经理要营造良好的风气,让项目成员对准确的报告项目的状态感到安全,努力让项目在准确的、基于数据的事实基础上运行,而是因为害怕报告坏消息对项目状态刻意美化。
10. 沟通承诺
千万不要向别人承诺明知不可能做到的事情,要坦诚的与客户和管理人员沟通项目实际成果,这样才能更好地获取他们的理解和更有力的支持。
11. 项目100%做完,才算完成
把任务分解为“英寸大小的小圆石”的一个好处是:你可以区分每个小任务到底是不是完成了。这比估计一个大任务在某个时间点完成多少百分比要实在的多。
12. 定义产品发布标准
你可以将发布标准基于:还存在有多少个高优先级的缺陷、性能度量、特定功能完全可操作,或其他方面表明项目已经达到了了它的目的。不管你选择了什么标准,都应该是可实现的、可测量的、文档化的,并且与客户所指的“质量”一致。
13. 记录你的估算
当你准备估算你的工作时,把它们记录下来,并且记录你是如何完成每个任务的,理解创建估算所用的假设和方法,能够使他们在必要的时候更容易防护和调整,而且它将帮助你改善你的估算过程。
14. 考虑意外缓冲
事情往往不会像你计划的一样顺利进行,所以你的预算和进度安排应该在主要阶段后面包括一些意外的缓冲,以适应无法预料的事件。不幸的是,你的领导或客户可能把这些缓冲当作是你的托辞,而不是明智的承认事实确实如此。
15. 遵守学习曲线
如果你在项目中第一次尝试新的过程、工具或技术,就必须承受短期内生产力降低的代价。不要期望第一次尝试新方法就能获得惊人的收益,在进度安排时要考虑不可避免的学习曲线。