收藏一本书:’Configuration Management Best Practices’
Configuration Management Best Practices: Practical Methods that Work in the Real World
Configuration Management Best Practices: Practical Methods that Work in the Real World
1. Snapshot版本代表不稳定、尚处于开发中的版本 2. Release版本则代表稳定的版本 3. 什么情况下该用SNAPSHOT? 协同开发时,如果A依赖构件B,由于B会更新,B应该使用SNAPSHOT来标识自己。这种做法的必要性可以反证如下: a.如果B不用SNAPSHOT,而是每次更新后都使用一个稳定的版本,那版本号就会升得太快,每天一升甚至每个小时一升,这就是对版本号的滥用。 b.如果B不用SNAPSHOT, 但一直使用一个单一的Release版本号,那当B更新后,A可能并不会接受到更新。因为A所使用的repository一般不会频繁更新release版本的缓存(即本地repository),所以B以不换版本号的方式更新后,A在拿B时发现本地已有这个版本,就不会去远程Repository下载最新的B 4. 不用Release版本,在所有地方都用SNAPSHOT版本行不行? 不行。 正式环境中不得使用snapshot版本的库。 比如说,今天你依赖某个snapshot版本的第三方库成功构建了自己的应用,明天再构建时可能就会失败,因为今晚第三方可能已经更新了它的snapshot库。你再次构建时,Maven会去远程repository下载snapshot的最新版本,你构建时用的库就是新的jar文件了,这时正确性就很难保证了。
项目沟通管理 项目经理的大多数时间都用在与团队成员和其他干系人的沟通上,他要起到桥梁的作用。 相关的过程: 1. 识别干系人 a.应在项目早期就识别出干系人 b.可以用四象限(权力+利益)给干系人分类,然后制定应对的策略。比如有的要”令其满意”,有的则要“随时告知” c.干系人管理的相关文档可能会比较敏感,要注意保密 2. 规划沟通: 确定“如何沟通” a.应在项目早期制定出沟通管理计划,并让项目成员确认 b.计划的沟通方式要“有效”:发送方有责任发送清晰完整的信息,接收完有责任确认和理解信息 c.沟通管理计划中可以规定:沟通的渠道、频率、接口人等 3. 发布信息 要发布的信息包括:项目状态,重要记录,干系人的反馈意见和经验教训 4. 管理干系人期望 a.管理好干系人的期望可以增加项目成功的概率 b.项目经理要建立信任、学会倾听 c.项目经理也要克服自己对变化的抗拒心理 5. 报告绩效 a.目的:了解进展与绩效情况,并预测项目结果 b. 可以应用偏差分析技术,通过将实际信息与项目基准进行比较来确定偏差 c.报告内容可以有:完成百分比,绩效、风险分析,本期工作,下期工作 d.绩效报告应该定期发布
项目采购管理 暂略
项目风险管理 风险源于不确定性。 风险管理的基本步骤: 识别风险 => 分析风险 => 规划应对方案 第0步: 制定风险管理计划,即 为整个风险管理制定方法论。包括: a.风险概率的定义:如规定“发生概率超过70%的风险为高可能性风险” b.风险影响的定义:如规定“二级风险指使进度拖延10%-20%的风险” c.风险管理活动将占用的时间和资金 第1步: 识别风险 a.项目成员应该参与识别过程,这样可以提高大家的责任感 b.进行识别时可以对照以前项目总结出来的风险checklist c. 识别出的风险应成文归档,放在“风险登记册”中 d.项目进展过程中可能冒出新的风险,因此“识别风险”是一个持续的过程 第2步: 实施定性风险分析: 分析出风险的发生概率和影响,并排定风险的优先级 第3步: 实施定量风险分析(没看懂,略过) 第4步: 规划风险应对 a.规避风险:如延长进度,缩小范围,使风险消失 b.转移风险:把属于自己的风险转移到别人头上,如让甲方为超支的预算买单。 c.减轻风险:降低风险发生的概率(比如测试做得好一点),或者减少它的影响(比如增加备机) d.接受风险:付出风险发生的代价,或者准备好B计划 第N/A步: 监控风险 跟踪已识别风险,监测残余风险,识别新风险。这是一个持续进行的过程
项目人力资源管理:制定计划 => 组建团队 => 建设,管理团队 1. 制定人力资源计划:确定角色,明确职责,并配备管理计划 a.要确保大家都清楚自己的角色和职责 b.可通过人际交往了解政治与人际因素 2. 组建项目团队 a.项目经理要有效谈判,并影响那些能提供资源的人(比如职能经理) b.主要输出:项目人员花名册 3. 建设管理团队:维护、激励和鼓舞团队,促进团队协作,使项目成功 a.提供挑战与机会 b.提供支持 c.认可与奖励优秀绩效。只有优良行为才能得到奖励 d.开放和有效的沟通, 建立信任 e.以建设性的方式管理冲突 f.鼓励合作 g. 创建富有生气的团队文化 h.项目经理要有 软技能:同情心,影响力,创造力和小组协调能力 i. 团队建设在整个项目周期都很重要,尤其是在前期 j.对可接受的行为作出明确规定 k.可考虑集中办公,增加集体感 4. 管理项目团队:观察团队行为, 管理冲突 a. 总是清楚当前的情况,包括成员的工作和态度,他们之间的人际关系问题等 b. 管理好冲突 i. 可先利用企业文化、良好的项目实践、工作规范等来预防冲突 ii. 开诚布公 iii.对事不对人 …
1. 范围管理:定义和控制哪些工作应包括在项目内,哪些不应包括在项目内。 具体过程有: a. 收集需求。主要输出有“需求文档”和“ 需求管理计划”(规定如何分析、记录和管理需求) b. 定义范围。主要输出有“项目范围说明书” c. 创建WBS(工作分解结构) d. 核实范围(Verify Scope),即验收。 e. 控制范围:监督范围状态、管理范围基线变更。 2. 时间管理,包括一系列与时间有关的规划和控制的过程。 规划: a. 定义活动。把WBS的工作包再细分为“活动”,即任务。主要输出有活动清单,里程碑清单。 b. 排列活动顺序(Sequence Activities). 主要输出为PDM,项目进度网络图。 c. 估算活动资源。主要输出为“活动资源需求”,即每项活动所需的资源类型和数量。 d. 估算活动持续时间:先估算出工具量和计划的资源数量,再推算出所需的工作时段数。 e. 制定进度计划。输出应包括一个基线计划。 Note: 实践时,以上过程往往联系非常紧密,以至于可以视为一个过程 控制: 控制进度。主要手段是记录实际进度,比较它与进度计划基线的差异,然后决定是否需要采取措施。 3. 成本管理。有三个过程, a. 估算成本 b. …
PMI提出了3个过程: 1. 规划质量: 识别质量要求。主要输出有: 质量管理计划(说明项目将如何保障质量) 和 质量测试指标(如 响应时间、可靠性、测试覆盖度等) 2. 实施质量保证: 审计质量要求,审计质量测量结果, 审计质量过程 3. 实施质量控制:记录质量测量的结果,评估绩效 a. 主要手段有测试,抽样检查等 b. 主要输出:质量控制测量结果(如测试报告)
项目管理中的一些基本概念 PMBOK: Project Management Body of Knowledge,作者是PMI(美国项目管理协会)。这本书的宗旨是: 1.识别项目管理知识体系中被普遍公认为良好做法的那一部分 2.提供和推广一套项目管理专业的通用词汇,用于讨论、书写和应用 基本概念: 项目:为…而进行的临时性工作,有 明确的起点和终点 项目管理:将知识、技能、工具和技术应用于项目活动。PMBOK认为项目管理可按时间顺序分为五大过程组,共42个过程 项目通常处于战略计划的大环境之中,因此项目的利益要服从于组织的整体利益(可参见“项目集”和“项目组合”的概念) 项目管理办公室(PMO): 对各项目进行集中协调。可以直接管理项目,也可以只提供管理支持和监督 项目经理须具备的能力: 1.通用的管理方面的能力和项目管理知识及实践能力 2.特定应用领域的知识或技能 3.个人素质,包括:态度,合适的人格特征和领导力 项目生命周期(lifecycle):一系列项目阶段(phase)的组合。基本的生命周期结构:启动项目 => 组织与准备 => 执行项目工作 => 结束项目。 项目阶段之间可以采用严格的顺序关系,也可以互相存在交叠以压缩进度,还可以一次只规划一个阶段,根据这个阶段的结果来规划下一个阶段(迭代式) 项目干系人(stakeholder): 1. 会积极参与项目 2. 或者其利益可能受项目的影响,包括积极影响和消极影响 在“干系人”这方面,项目经理要: 1.及早 识别所有干系人,理解他们对项目的影响力;如果这项工作到后期才做,可能导致代价非常高的产品变更。 …
项目管理过程(process):确保项目顺利进行的一系列相互关联的行动和活动,如收集需求,风险管理等等。 每个过程都有:输入、工具和技术,以及输出 PMI把所有过程分类为五大过程组,并认为任何项目都要经历这五大过程组: 1. 启动过程组(Initiating) a. 过程:定义项目,明确授权,确定项目经理和干系人,并定义初步范围 b. 输出:项目章程和干系人名册 c. 启动过程可以加强干系人的主人翁意识;如果项目有多个阶段,则每个阶段最好都有一个启动过程 2. 规划过程组(Planning) a. 过程:项目管理计划,收集需求,定义范围,项目估算,任务计划,进度计划,质量计划,开始风险管理等 b. 输出:需求文档和各种计划书 3. 执行过程组(Executing) a. 执行,QA,调整计划,组建团队,建设团队,管理团队绩效,管理干系人期望等 b. 输出:可交付成果,更新了的项目计划等等 4. 监控过程组(Monitoring and Controlling) a.过程:跟踪,审查,控制变更,控制进度,控制成本,控制质量,监控风险等 b.输出:变更了的计划,变更了的成本、风险登记册,绩效报告等 5. 收尾过程组(Closing) a.过程:验收,评价,经验教训,文件归档 b.输出:最终产品移交