免责说明:以下内容均为书中摘录及个人总结,如有违反之处,请多指出修改。
最近读IT项目经理的书,学习一些成功项目管理的案例,将关键的IT管理思想记录如下:
1. 了解项目的干系人和周围环境,再加上良好的规划是成功的开始。
2. 有效地引导和收敛需求、可视化的Demo设计,是项目经理迈向成功的坚实基础。
3. 追求尽善尽美的代码和框架也许是每个技术人员的梦想,但对于项目管理而言,最重要的是项目进度,技术必须服从于进度,在这个前提下你可以用最简单的技术(基于普通jsp甚或html页面)实现业务。当然在技术和进度允许的情况下,绝对支持高质量的代码。
4. 没有100%的完善的代码,只有按时实现与否,才是最关键的。
5. 系统测试不是延误进度的敌人,而是帮自己发现问题的朋友,发现的问题越多,其实最终胜算的机会越大。
6. 系统架构是项目中技术实现的最重要的环节。系统架构的良好与否关系到系统的性能指标、安全指标、稳定性指标、可扩展性、业务实现等等
7. 项目的成功不能仅仅依靠项目经理,而必须依靠整个项目团队。
8. 创建软件项目计划的目的是向项目管理人员提供一个对进度、成本、资源等作出合理估算的框架。
注意点:
1. 偏于开发的项目管理往往容易陷入技术细节很难自拔,而忽略了项目管理本身。
大中小型项目管理的区别
1.小型项目:软件费用在50万元以下,团队成员在3--5人,50人月以下:项目目标单一,不需要与周边系统集成,对系统高可用性要求一般;团队构成比较简单,一般包括项目经理、开发人员、测试人员,项目经理同时也担当架构师角色。
2.中型项目:软件费用在500万元以下,团队成员5---20人,200人月以下:项目群由2个以内项目构成,需求与多个周边系统进行集成,对系统高可用性有需求;团队构成比较复杂,一般包括项目总监、项目经理、系统架构师、需求分析人员、开发人员、测试人员、系统集成工程师等;项目经理需求协调与公司其他部门的资源。
3.大型项目:软件费用在500万元以上,团队成员20人以上,200人月以上:项目群由众多子项目构成,甚至采用项目组合方式,此类不仅需求与多个周边系统进行集成,同时本身的系统集成难度也很大,对系统高可用性有很高要求;团队构成极为复杂,一般包括项目总监、项目经理、质量经理、售前人员、系统架构师、需求分析人员、系统设计人员、系统集成工程师、DBA、开发人员、测试人员、质量人员等。
IT项目管理制度有RUP、敏捷开发、CMM/CMMI、PMBOK等。
项目管理主要包括工作范围管理、时间进度管理、质量管理、成本管理、风险管理、沟通管理、人力资源管理、采购管理、整合管理等等。
理想的团队:项目经理、系统架构师、配置管理员、DBA、高级工程师、开发工程师、测试人员、美工等等。
在软件项目的实际操作中,主要会涉及两方面:软件工程和项目管理 软件工程方面涉及如何建立系统,如何进行需求分析、设计、编码、测试、实施等问题;而项目管理则涉及如何正确规划和控制软件工程的行为,以满足项目在范围、质量、进、成本等方面的目标。就好比战略与战术,战略将贯穿项目的始终,而战术一般停留在任务层面上,在软件工程上,就是用战略和战术这两个方面来实施有效的管理。重点以下三个方面:
1. 沟通和汇报 旨在使项目的信息能够及时、有效地传达给相关人员,保持双方在思想上的一致性,从而防止由于误解导致的问题,良好的沟通也会建立一种相互促进、相互信任的工作氛围。
2. 团队建设和人员组织 软件开发是团队成员相互配合的工作,首先划分团队成员角色和相关的责任,在项目执行过程中根据其个人表现、抱负、积极性等表现作出相应合理的调整。通过提高团队成员的知识和技能以后,会增进团队成员的责任感和提高他们的工作效率,从而使他们能够承担更多的责任,增强整个团队的凝聚力。
3. 问题跟踪与处理。
项目管理是时间、成本、范围和质量的平衡艺术
项目的管理,就是要在有限的时间、空间、预算范围内,将大量的人力、物力组织在一起,有条不紊的实现项目目标。
需求变更管理 在需求的实际管理中,项目团队与客户达成了共同遵守的需求管理的工作约定,规定获取、共同确认并记录需求,以及发生需求变更时客户与项目团队如何达成并保持一致。实施的需求变更管理步骤如下:
1. 记录变更 当客户提出需求变更申请时,将申请记录在文档中。
2. 分析变更 分析变更对项目的影响,并估计完成变更所需的工作量和可能交付的时间。
3. 确认变更 将分析结果提交客户确认,等待客户批准这些变更。
4. 实施变更 应对需求变更,软件系统实现
5. 跟踪变更 确认需求的修改完成,实施上线及其需求的变化。
项目沟通管理
沟通管理主要分为外部沟通和内部沟通。
1. 外部沟通 与甲方和相关方的沟通,包括甲方领导、项目负责人、技术人员、最终用户及相关接口系统的服务商。甲乙双方的地位实际上是不平等的,乙方处于弱势位置。为了避免命令式的强制/被压制、服从/被服从的发生,最好是双方建立良好的朋友关系,这样甲方既可以及时了解项目的进展,也可以了解项目经理和项目所面临的困难,以期未达到计划也可以谅解。
2. 内部沟通 与公司高层领导的工作汇报的汇通、团队成员沟通。团队成员沟通有会议沟通了解项目进展、面临的问题,还有了解团队成员的思想波动并提出建议,让团队成员感觉到项目经理的人文关怀,并传达公司的温暖,还可以组织项目活动,聚餐、爬山、电影都是很好的活动方式。
项目团队管理(凝聚力和执行力)
项目的核心是人,人组织成一个具有执行力和凝聚力的团队。在项目中一个重要的管理目标和团队共识,就是建立一个能够实现初步自我管理的、稳定的团队,让每个成员都能积极主动、自由发挥其最大潜力和才能。
1. 团队组成结构和角色职责的划分 将角色划分为项目经理、需求分析人员、系统设计人员、开发人员、测试人员、实施人员、配置管理人员等角色。角色的划分保证了团队成员能够各司其职,避免在任务交接点上发生扯皮现象而导致进度延迟风险的发生。
2. 组建核心管理团队
3. 组内培训 业务培训和技能培训。
4. 岗位轮换 根据个人的意愿、工作能力、具备的技能有计划地进行岗位轮换。
5. 绩效评估
6. 团队氛围
进一步提高团队成员的工作积极性,进而增强团队的凝聚力和执行力。
项目的风险管理
软件风险是指软件开发过程中及软件产品本身可能造成的伤害或损失。风险关注未来的事情,意味着风险涉及选择及选择本身包含的不确定性。风险可能发生,也可以不会发生。主要包括项目风险、技术风险。项目风险会发生在预算、进度、人员、资源、客户、需求等方面,并对软件项目的完成产生影响;技术风险主要存在于设计、实现、接口和维护的方面,此外还有规定的二义性、新技术带来的不确定性等风险因素。
项目风险管理是指对项目风险从识别到分析乃至采取应对措施等一系统过程,它包括将积极因素所产生的影响最大化和使消极因素产生的影响最小化两方面内容。主要包括:
1. 风险识别 确认哪些风险有可能会影响项目进展,并记录每个风险所具有的特点。
2. 风险量化 评估风险和风险之间的相互作用,以便评审项目可能的产出结果的范围。
3. 风险对策研究 确定对机会进行选择的步骤及对危险作出应对的步骤。
4. 风险对策实施控制 对项目进程中风险所产生的变化作出反应。
项目启动会的重要性
项目启动会如果不正式召开,会出现以下问题:
1. 项目经理未授权,会出现权限不明确的情况,业务、技术和管理界限模糊,项目成员无法确认应该听众谁的指令。
2.无法定位多方关系,会造成项目进展困难,对阶段性成果的确认无法保证是否提交到正确的人手足。
3.项目成员没有安全感,相互之间不了解对方的职责,轻则会造成项目进度延迟,重则会出现项目成员之间相互推诿责任。
4.项目经理无法掌控项目,无法使用自己的权利,重则会造成项目失控。
5.主管部门不了解项目情况,也不了解业务部门是否支持项目,可能在需要沟通或寻求帮助时,对应部门人员无法进行配合。
6.无法明确项目计划及项目概况,各自职责不明确。
项目启动会注意事项:
1.项目启动会必须做好相应的记录,需要将会议上确定的事情打印出来,并让相关负责人签字存档。
2.项目启动会主要是授权和展示,而不是讨论,因此启动会的时间应合理控制。
3.项目启动会必须要保证所有相关人员全部到场。
4.需要明确项目的总体进度和执行计划,需要明确每个人的责任分工。
交付物清单:
XXX系统验收报告.doc
XXX系统验收方案.doc
系统架构
XXX系统架构.xls
系统需求
XXX系统AA子系统需求说明书.doc
XXX系统BB子系统需求说明书.doc
XXX系统CC子系统需求说明书.doc
XXX系统数据库需求说明书.doc
系统设计
XXX系统数据库系统设计说明书.doc
XXX系统AA子系统设计说明书.doc
XXX系统BB子系统设计说明书.doc
XXX系统CC子系统设计说明书.doc
XXX系统数据字典.xls
系统测试
XXX系统AA子系统系统测试报告.doc
XXX系统AA子系统系统测试用例.doc
XXX系统AA子系统系统测试计划.doc
XXX系统BB子系统系统测试报告.doc
XXX系统BB子系统系统测试用例.doc
XXX系统BB子系统系统测试计划.doc
用户手册
XXX系统AA子系统用户手册.doc
XXX系统BB子系统用户手册.doc
XXX系统CC子系统用户手册.doc
XXX系统维护手册.doc
系统安装包
系统源代码