关于项目管理的一点体会

关于项目管理的一点体会

enno | 时间: 2011-11-03 | 18,423 Views 
设计管理

1人100个月完成的项目,不是100个人1个月就可以完成。

项目管理是让项目活动中相互竞争的各类制约因素:质量、进度、资源、风险等取得平衡的艺术,同时也是平衡项目干系人的各种需要、关注和期望,带领不同的人朝着相同目标迈进的领导艺术。

成功的项目管理可以简单理解为:按时、在预算内+满足产品需求+满足质量需求 地完成项目。

以下是我对项目管理的一点体会记录。
——————————————————————————————————————————-

需求等级

视觉 A:图片没有分享功能吗?

技术 K:图片有链接转发分享、微博或邮件形式分享等多种分享,全部开发的话需要推延时间表。

策划 D:图片只做预览、下载已经足够了,暂时不做分享。

交互 E:如果我们的用户是基于邮箱用户,图片的邮件分享还是建议做。

… …

如果在前期产品需求文档中没有明确定义每个需求的优先等级,或者说项目成员对需求的优先等级没有明确的意识,可能类似的争论会时常发生在项目成员之间,每个人会基于自己对产品目标的理解来考虑这个需求是否要做,什么时候做,做到什么程度而产生分歧,因而增加项目推进的阻力。

所以在前期产品需求文档中,必须明确定义出每个需求的优先等级,需求的粒度可细化到每个大功能下的子功能需求,如:图片分享功能的转发链接分享、邮件形式分享这样的子功能需求。等级的划分依赖于前期的用户需求调研、产品的预定目标、开发成本、运营计划等;

一般的需求等级划分:

P0 -Must have: 如果缺失,产品不能发布

P1 -Should have: 如果缺失,产品能发布,但不能达到预定目标(功能/性能)

P2 -Nice to have: 做了则更好

P3 -Neutral: 对产品没有明显的好处,用户不在意

… …

每个需求的优先等级确定之后,产品经理根据产品预定目标、开发成本、运营计划等来定义一个等级分界线,高于或等于这个等级分界线的需求在本期开发,部分根据成本、运营计划等因素调整到下期开发,而低于这个等级分界线的需求则只会在下期开发,这样让全体项目成员对本期要做的需求达成共识。

需求等级的实际应用:

  • WBS各工作包Triage的参考基准之一;Triage即确定需求任务是否要做,是否要现在做的一个共同决策过程;在Triage的过程中,任务owner对自己的任务以及其他人的任务有更全局的认识。
  • Bug的Triage的参考标准参考基准之一(也是zero bug *注1 和code freeze *注2 时间节点计算的参考基准之一);Triage即确定测试中的Bug是否要修,是否要现在修;如:在功能开发期间,P0、P1、P2及以上的Bug都要修;当进入接口冻结期后,只有P0、P1normal及以上的Bug才允许修,以保证优先的Bug问题更快地被解决。

*注1  Zero Bug:当前不存在active bug,或不存在高优先级或特别严重的bug

*注2  Code Freeze:除高优先级或特别严重的bug外,代码冻结不再接受提交

——————————————————————————————————————————–

WBS

技术 K:相片上传的界面还没有搭建好吗?这部分我们需要先做起来。

前端 J:视觉设计师没有完成呢!

视觉 A:我在做相片的展示页面,还没有做到相片上传。

… …

项目各成员对自己需要负责的任务粒度细分不到位,每个任务的交付时间点不够明确,对任务之间的依赖关系也不够清晰,造成项目推进中的协作成本提高,项目时间预估准确率不高,项目控制的风险增加;

因此在产品需求文档确认之后,必须做工作分解 WBS(Work Breakdown Structure),即把需求分解成较小的、易于管理的工作包。一般的工作包是最小的“可交付成果”。工作包必须详细到可以对该工作包进行估算(成本和工时)、安排进度、分配负责人员或组织。

项目经理、项目成员和所有参与项目的职能主管都应该参与WBS工作,根据项目规模情况,可以由项目经理或各模块主策划来组织。组织方负责召集有关人员,集体讨论所有项目工作,确定项目工作分解的方式后,各职能方提交各自的WBS,汇总后画出WBS的层次结构图。结构图中应包括每个工作包名称(内容定义)、指派人员名称、所需工时、可能的依赖关系等;

WBS的工作包,最终以任务形式录入到QA中进行跟踪管理。

WBS的好处:

  • 为资源、成本、进度、质量等控制奠定共同基础,确定项目进度和控制的基准;
  • 为各独立工作包分派人员,规定这些人员的相应职责,便于项目职责的落实和明确划分;
  • 针对各独立工作包,进行时间、资源需要量的估算,提高时间、资源估算的准确度,并确定工作顺序,提高协作效率,利于更准确的制定项目进度计划表;

——————————————————————————————————————————–

QA可视化项目管理

技术 K:我完成到图片分享功能,图片下载的bug已经就提交上来了,但是我现在没有时间改bug。

测试 F:我已经提了一轮的bug了,但是我不知道bug什么修好,然后我可以去复查。

交互 E:图片分享功能开发完成了?可以测试了吗?

产品经理 :现在大概还有多少P0的bug?zero bug时间节点是否需要后延?

… …

如果没有QA,项目的状况不是对每个项目成员透明化,就会出现以上的各种情况;

QA作为协同式任务管理工具,通过对每个任务的记录和跟踪,让项目成员对整个项目的情况有直观的了解,项目经理可随时监控项目推进中的风险是否在可控范围,并提前快速作出调整。

不管是前期开发的工作包还是后期的测试bug,均以任务的形式录入在QA里,然后对这个任务的一些基本属性做设置,如:属于哪个milestone、哪个模块等,然后由各个阶段的Triage的负责人按照需求等级标准来对任务作分类定级,并确定是否做,是否现在做;所有的任务都必须经过Triage并approve通过,才能开始工作。Triage的决策需要多个层面的知识(结合产品、技术、进度等多方因素),特别是在大项目中,Triage往往是一项群体工作,以功能小组(feature team)或产品决策组的方式来进行。在项目的不同阶段,可以由不同的角色来主导Triage流程。

在任务approve后,各职能方leader将任务指派给相应具体执行的人员。执行人员,也就是任务的owner,必须设置任务的Status date,如:Status任务状态是Working(进行中);Status date即完成日期点,Status date应真实反映实际工作计划,并应契合项目时间表。

在执行人员完成任务时,QA会通知各职能方leader去关闭这个任务,关闭的意义在于通知任务的相关跟踪者,可以着手下一部分的工作,如某功能代码任务关闭,即相关测试人员就知道可以开始这个功能点的测试工作;

通过任务在QA系统里的记录和跟踪,以及任务状态的实时更新,最终会汇总生成各种可视化的图表,项目进展直观,且可度量,能够很好的把握整个项目推进的节奏,对项目中各项问题和风险定位更容易,并可在周会上对项目的所有成员公开进度信息,便于协调一致;

其中最重要的图表:glide path任务走势图:

“实际任务走势”与“计划任务走势”的对比,可以衡量出计划与实际的偏差。

——————————————————————————————————————————–

每日构建

技术 K:我们只在每个小milestone才会打build。

交互 E:希望可以每日bulid,我可以每天拿到最新的版本进行测试。

测试 Q:我建议测试前期可以每个milestoen打版本,但是中期开始,每日build。

… …

每日构建(daily build)是指每天对整个项目做一次完整的自动构建,生成可执行文件的过程,对Web类产品,每日构建通常要伴随自动部署的过程,将这些可执行文件部署至测试环境,并按照一定的规则对这个安装包或测试环境做版本编号,是一种Public build的管理方式。

每日构建是编译管理的一种方式,项目初期,可根据根据需要按照一定的频率打,如:每周、每个milestone,随着项目的进行频率逐渐增加build的频率,如:每天build。

每日构建的好处:

  • 每日构建让从产品经理、项目经理、策划、交互、视觉等所有的项目人员从第一个小功能模块完成开始,能够随时测试最新的版本提交bug,并能及时了解技术开发的进度;
  • 每日构建让测试人员从第一个小功能模块完成开始,能够每天测试最新的版本,提交新bug和复查部分bug,而不需要等着某个小milestone或者所有的功能代码都实现了,再开始测试,大大增加了测试和开发的重叠时间,测试更充分,测试和开发的迭代效率更高,产品质量控制得更好;而且bug提交到qa上,也会一并附上build版本号,方便技术还原现场,更快地解决bug;
  • 每日构建使得技术必须对每天自己输出的代码负责,一旦每日build失败,必须检查原因,并纠正不可再犯,以避免再次build失败,这样能非常有效地提高所提交代码的质量,减少bug的产生,加快开发效率;

虽然搭建并维护daily build,需要比较大的工作量,但绝对物有所值。

——————————————————————————————————————————–
参考:杭院项目管理部《项目管理白皮书》

时间: 2024-11-06 09:48:55

关于项目管理的一点体会的相关文章

对项目管理的一点体会

1.干系人管理 客户,开发,业务等上下游干系人都要重视起来,不能唯客户马首是瞻. 2.沟通管理 内部沟通:一个项目是一个整体,分工之后,有些基础的公用的东西,比如导入方案,界面风格等,应该提前内部沟通好,排计划时也要靠前,否则各自为战,到最后还得回过头来讨论,浪费了大量的时间. 外部沟通:关机问题及时沟通,比如命名规范,基础设置,找全相关的干系人,不要遗漏. 3.进度管理 合理的安排优先级,一些基础模块的计划要靠前,打好基础,后续的工作才能做的更顺利,仅仅赶工解决不了进度的问题. 4.开会技巧

关于指针形参的一点体会

关于指针形参的一点体会: 现在假设指针实参为地址&a(0001)在这个&a(0001)地址空间内所存储的是一个int类型的变量为0: 那么在被调用函数中,会临时开辟一个空间一片临时地址空间&b(0002),在&b的所指向的地址空间内,其所存储的内容为一个地址值,这个地址值,就是&a(0001).所以现在在被调函数中,有两种变化的操作:1. 对&b(0002)所指向的地址内存储的内容,进行改变,比如讲将&b(0002)所指向空间内的值就是(0001)改

Delphi研究,对全局变量函数与OOP编程关系的一点体会 good

感叹:设计VCL的人真是神人啊,感觉比Pascal编译器的设计人还要牛很多,把整个Windows架构理了一遍,封装的如此之好,复用的如此之好(以至于Delphi的控件满天飞,使用还特别容易),简直惊为天人.难怪charles petzold当初觉得不可能用PASCAL语言做Windows编程(李维说的),以前我对这句话的理解是,Pascal语言本身达不到windows编程的要求,可能是因为他这方面的功力达不到(觉得可能是因为petzold对比anders的编译器功力相差太远,不知道编译器的许多细

【原创】C#玩高频数字彩快3的一点体会

购彩风险非常高,本人纯属很久以前对数字高频彩的一点研究.目前已经远离数字彩,重点研究足球篮球比赛资料库和赛果预测. 这是一篇在草稿箱保存了1年多的文章,一直没发现,顺便修改修改分享给大家.以后会有更多关于足球和篮球体育彩票的玩法分析,希望大家关注. 本人不算专业程序员,但经常敲代码玩玩.上学时研究的是伪随机数这个东东,因此对彩票就情有独钟,从10年开始,就开始研究双色球,其中软件版本改了又改,但一直没有实际操作过,原因就是双色球的投注量太大.所以这1年多就没研究了.最近一次偶然的机会,发现了“高

音频软件消除人声的一点体会(cood edit ,goldwav)

音频软件消除人声的一点体会(cood  edit ,goldwav) 使用方法: 1.打开文件 2.命令处理(红色位置可以调整到你认为合适的数据或效果) 3.效果:两个软件均处理后的效果均可以接受.不能完全消除人声,但能减到比较低. 至于网络上有说的一种用千千静听的消音插件,暂时没有试过....期待下次再测评.

大型开放式网络课程MOOC的一点体会

2012年,美国的顶尖大学陆续设立网络学习平台,在网上提供免费课程,Coursera.Udacity.edX三大课程提供商的兴起,给更多学生提供了系统学习的可能.这就是大型开放式网络课程,即MOOC(massive open online courses).更多信息可参考百度百度http://baike.baidu.com/view/10187188.htm?from_id=8301540&type=search&fromtitle=MOOC&fr=aladdin 接触MOOC还是

做android移动开发的一点体会

做手机的一点体会 整个android系统是一个完整的生态系统,谷歌提供开放的android平台,下游有各种生产硬件的厂家提供各种手机的硬件,像富士康这样的工厂提供手机的代加工, 然后是高通这样的公司提供手机的核心芯片和自己的解决方案,然后网上做手机的公司,相当于是做一个大的"集成",做手机的公司需要从各种运营商那里拿到订单,然后根据 运营商的需求来做手机,运营商卖好了手机,和手机公司之间分成,或者是 手机公司通过其他的渠道售卖自己的手机,功能要么是全网通,兼容各个运营商,要么是兼容某一

java_manual的一点体会

最近看了一下Alibaba的java_manual1.4,有了一点体会 学习差不离就是这样,编程不是一味的敲敲敲,查查查,有的东西不是看看别人写的博客案例就能明白的 有时就算可以解决问题,但对原理的了解却并不够 还是要去看看书 写项目也有一点体会,有时候总是不知道一个功能/方法命名什么好,怎样让整个项目的命名规范,至少让自己舒服 看这个手册还是有些用处的 不多说,记一点个人觉得不错的Java编码规范 16.[参考]各层命名规约: A) Service/DAO 层方法命名规约 1) 获取单个对象的

关于软件项目管理的心得体会之一

目的 软件项目管理是一项涉及面较广,但是非常必要的一项技能.相较于软件开发中的其他专业技能, 又更加依赖于实践和阅历.这里想跟各位同仁分享一下自己在过往项目中的心得体会,结合些许耳熟能详的理论,起到抛砖引玉的作用. 局限性 项目管理既然是一门实践科学,所以这里跟大家分享之前,还是要说明局限性.因为我之前是在一家提供软件服务的传统软件公司工作, 所以很多项目的经验都来源于作为乙方的外包项目,同时,大部分项目都是移动相关领域.目前我在一家国内的互联网公司,从事的电商相关的应用项目. 开篇 想跟大家分