赞
踩
a.控制好了需求;b.及早的发现问题,报告出来并解决;c.不出现资源空闲的状态;d.利用好每个资源去做擅长的事,快速有效的推进各种任务;e.不浪费资源去做一些对项目目标总体没有帮助的工作,或者一些后期会推翻的需求。
a.确定不变的需求应该先完成,如果项目组去完成了一些功能,结果后面发现需求要改,那前期的一些工作量已经浪费了。b.被其他需求依赖的需求应该先完成,只有这样,才能不挡住依赖它的需求的开发。比如登录功能,很多登录后的页面都需要当前登录的用户信息。c.主流程,或者核心需求应该先完成,改善性的需求应该后完成。比如信息列表页面,很多功能需要用户在信息列表里面选择要操作的记录。因此信息列表是核心需求。而在信息列表页里面一个列显示格式的美化,这属于改善性需求。
#风险管控风 险管控是项目经理一个非常重要的技能。一个好的项目经理应该尽量在早期把所有的风险都列出来,一个一个解决。一个流畅的项目,从前期到后期风险点应该是倒 三角形的,就是前期风险很多,后期风险越来越少。而项目管理不畅的,则是一个正三角形,上面风险少,到后期风险就多了。项目经理应该尽可能的找出所有的风险点。假设有一个点,你不确定他是不是有风险的,那即使我们把早期把它当做一个风险点重视起来,带来的代价也远远小于在后期等它爆发出来的时候再处理。我们现实中就有一个很适合的例子。我们有一个功能是SSO,让合作方去调用我们的接口实现免登录直接从他们的站点跳转到我们的站点继续使用。因为关系到第三方,所以我们前期就有些担心到时候这一块会不会出现什么东西不可控。不过大家也就是想想而已,没有太在意。在 项目后期的时候,需要跟第三方站点联调,通过他们的站点来测试我们的SSO接口和接下去的流程是不是可用的。结果这时候发现,因为第三方安全管控很严格, 外部人员无法访问他们的站点。于是我们的测试工作就停滞在那边。后面弄得鸡飞狗跳,两个公司的IT以及架构组的人讨论来讨论去看这个问题怎么解决。发布时间最终还是因为这一点拖延了。
#外部依赖最不可控风 险管控还有个要点要记住,项目组能处理的问题,算是小问题。需要项目组外的人员处理的,才是大问题。因为项目组外的人员不受你调配,他应承你的时间不一定 是你满意的时间;即使是你满意的时间,也不一定真的就能确保在那个时间完成;就算真的完成了,也不一定就达到你想要的效果。
#必要的时候,任务要步步紧跟项目经理并不是把任务简单分出去就可以不管的。如果你的开发人员不是很有经验,或者技术实力很强,思维很缜密,那你应该紧紧的跟进你分发出去的任务。1.你应该经常去看一下他们的任务开发到了什么程度,可以的话,让他运行给你看一下。2.问一下有没有什么问题,有什么可以帮助他的。因为很有可能他就有个问题在纠结,而其实你因为经验或者了解更多的背景,很简单就为他指出简单的解决方案。3.你在检查的过程当中,也会有可能发现一些他可能还没发现的问题,或者跟这个任务相关联的问题。任务的完成进度和完成质量,是影响项目进展的一个重要因素。项目经理的一个主要职能,就是帮助每个任务的快速推进。
#做当前,看后续当我们把当前的做的迭代的需求,流程,依赖以及其他的疑问理清楚,让项目组可以顺利推进的时候,项目经理不应该再专注在当前的迭代,而是要开始想整理下一个迭代的事情,让大家在完成当前迭代的时候,不需要暂停在那边,去等待梳理下一个迭代的问题。举一个例子,当前的迭代我们在做用户登录的功能,做完这个迭代,接下去我们就要做登录完的首页展示。开发组在做登录的时候,项目经理也跟着在那边捣腾登录的细节。等下一个迭代开始的时候,项目组才发现首页展示只有原型图,UI 跟HTML都还没做出来,而其他功能更没有准备。于是项目组就只好花两三天的在那边等UI和HTML。
#固定的项目组成员这是一个很简单的要求,但是并不是所有的人都会重视。正如随便加一个开发人员进来并不能够立刻让整个项目进展加快,换一个人的话,整个进展肯定也会受影响。
#组员潜力每 一个程序员,测试人员,美工,产品经理,都比你想像的要聪明。如果你没有对你组员的能力有个清晰的认识,那你可以尝试给他的任务增加一些难度,超过你原来 的预期一点点。他能完成,你以后可以再增加一些难度。直到他直接跟你说他搞不定。如果你觉得你已经有个清晰的认识了,那你也应该记得,只是你觉得。我们有一个项目,里面有个很棒的程序员Joy,平常是个很低调的人。项目经理分任务的时候,就给他几个特定的模块让他完成。他也坚守岗位,做好他份内的事。项目因为种种原因,不断的拖延。但是Joy还是很诚实的做好他的本分。后来有人跟Joy讲,你以后要把自己当dev lead看,所有开发的事情你统筹。Joy还是一个很低调的人,他继续做他本分的事情,只不过这次的本分就是统筹负责所有的开发问题。接下去就是项目的问题一个接一个的被快速解决掉,其他程序员也得到强有力的帮助,快速处理到自己手头中的bug。项目进展很快赶上了原来的计划。你真的很好的发挥了你组员的潜力了吗?
#人人看到全盘项目经理能够很好的分配好任务,让各个组员可以较独立的工作,这是不错,但也不见得就是好事。因为软件开发是一个团体的工作,各个人做的事情之间都有交叉。我做的功能,接下去就要调用你的接口。你做的页面,接下去就要跳转到我的。Bruce做一个功能,是要显示公司人员信息的列表。里面有个操作,选择一个人员计算出勤率。这个操作不是Bruce完成了,他只要直接调用Lisa的页面,Lisa的页面会直接计算出勤率并显示出来。Bruce认识,他只要简单传一个人员的ID过去就可以了。Lisa做这个出勤率的页面,因为这个人员是属于业务人员,经常要在分公司跑,所以只能计算他在某一个分公司的出勤情况。她以为大家都知道。等大家都完成了,QA在测试的时候,发现在人员信息列表里面点进去,显示不了出勤页面。整个流程都走不通了。后来才发现有2个问题没解决好,一个人员信息跳转到出勤页面前要传递当前的分公司信息,一个是出勤页面还要增加选择分公司的功能。这2个问题一个是QA测出Bug,一个是需求还有不足。而这本来是应该在开发周期内就可以发现并解决的问题。根源就在于,Bruce跟Lisa在做手头任务的时候,都没有去考虑跟其他人的关联。而他们2个人都没有去考虑的话,其他人更不会去考虑了。如果Bruce或者Lida在做任务的时候,去想想他们彼此怎么串联起来,这问题本身就很简单了。项目组的每个人,可以重点在自己手头的任务,但是思路必须是在全盘,大家脑子里面都要经常去想想,整个系统是什么样子的,我的功能前后的依赖是什么样的。项目经理平常要引导大家这样想。
#一定要分成每一个小迭代步 伐迈得太大了,你就不知道你迈得对不对,迈得够不够快。项目是不可能一步到位的。把一个大目标分解成每一个小目标,整个项目工期分成若干个短迭代,一个一 个的完成。每一个完成的小目标都能帮助你理清整个项目的进度,方向,帮助你审核一下目前的思路是对的还是错的,出错了,也能够及时的调整。
#不做一半的功能如果我们做了2个功能,但是我们每个功能都做了一半没全部完成,那目前为止我们总计完成了多少个功能?1个?不是的,完成了0个。一个功能除非真正完成并且通过产品经理的检查,不然你永远不能确定这个功能是不是还有一些遗漏的地方。100个完成度为90%的功能合起来,完成的功能还是0个。你很兴奋你的程序里面有很多功能,但是你试了一个又一个,结果发现每个功能都是半成品,没有一个功能可以正确解决你的问题。对于半成品的功能:1.你其实并不知道你还剩多少工作量,因为已经“完成“的工作不能验证说是真正完成的。2.你没法给业务部门或者客户做演示,因为这些功能没做完。3.如果业务部门让你暂停一下,就先按照目前已有的功能去让客户测试一下,你会哑巴吃黄莲,有苦说不出。所以我们做功能的时候,要确保我们在做的功能已经是真正完成了,我们再去接着做下一个功能。
#不让细节影响你的目标项目组的人很容易沉浸在功能的细节当中,为一些友好美观的显示,炫丽的功能或者很酷的设计浪费大把的时间,忘记了这个项目的最终目标是什么。其他人可以投入,但是项目经理一定要能够抽身事外,专注在项目的全局。沉浸在细节当中很容易让人忘记工期,忘记项目的最终目标。我这个提示信息的颜色会不会太淡了?要不要再调深一些?我这个按钮是不是可以往左边移10像素,这样更好看?这个地方要不要来一个自动提示,这样会更友好一点?我这个面板的显示要不要使用渐变的?1秒内渐变完成会不会太快?用户会不会还没看够?你先把功能完成再说好吗?以后有的是大把的时间美化这些。
#正确的里程碑要点我们碰过一个项目,项目经理的报告说,目前的状态是开发完成。结果一看,这样说的依据是分配到所有开发人员的任务,开发人员都认定为完成了。于是大家就认为目前是开发完成,进入QA测试的阶段。结果QA报怨测试不下去,流程都走不通。产品经理进去看了一下,也说很多地方功能缺失。根本不能认定为开发完成。1.一个项目,或者一个短迭代,应该先列出一个所有人都认同的里程碑列表。比如,分为框架设计完成;分解出来的需求已经可用于开发;子任务划分完成;子任务已经分配并预估完成;各子任务完成;开发人员整合测试完成;产品经理检查通过;QA测试通过。2.每个里程碑的完成要有大家都认同的验证方式比如如何判断开发人员整合测试完成,是不是开发人员坐在一起或者开发组长把所有流程都走过一遍,然后发现没有什么大的问题?
#自我管理前面讲了这么多,弄得好像项目经理很重要,缺了这个项目经理整个项目就不转了。如果项目经理的手下是固定的,只不过做的项目不一样,那我建议项目经理在完成项目的基础上,一定要考虑这样一个目标:建立一套流程,一套大家都熟悉并且会遵守的流程。这个流程可以保证整个项目组在项目经理不在的情形下,也可以运转得很好。目 前项目处在什么阶段,这个阶段大家要做什么,下一个阶段是什么;这个阶段有什么任务要做;每个阶段碰到问题要怎么处理;每种任务或者问题由谁来处理。这些 并不是很难学会的东西。项目的成员经历过几次,很容易就可以理解要怎么做。项目经理除了推进项目以外,还要在项目的过程中把流程的思路,解决各种问题的思 路教给大家,同时明确每个人的职责,达到项目组可以自我管理的程度。一个可以自我管理的项目组,才是一个稳定高效的项目组。项目经理才可以抽身出来,同时去做一些其他的对部门,对公司同时也对自己有利的事情。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。