项目启动
一、项目和项目管理
项目是具有下列特征的一系列活动和任务:知识点
- 具有⼀个明确的⽬标
- 有限定的开始和结束⽇期
- 有成本限制
- 消耗⼈⼒和⾮⼈⼒资源
- 多⼯种合作
项目管理的目标:知识点
- 在限定时间内;
- 在⼀定的成本内;
- 在要求的质量⽔平上;
- ⾼效使⽤资源;
- 获得客户认可。
知识点:
过程组:项目启动、项目计划、项目执行、项目跟踪与控制和项⽬收尾
**活动:**计划制定、团队管理、成本控制、质量保障、度量、过程管理、进度跟踪与控制、⻛险管理、配置管理
二、团队组织与管理
团队
为了⼀致的⽬的、绩效标准、⽅法⽽共担责任并且技能互补的少数⼈。
团队的特征:知识点
- 团队成员要具备共同的目标
- 团队成员要共担责任
- 团队成员要技能互补
- 团队内部要有一个明确的结构
团队结构:知识点
主程序员团队
民主团队
开放团队
团队建设:知识点
- 建立团队章程
- 持续成功
- 和谐沟通
- 避免团队杀手
三、软件质量保障
质量属性:系统的某些质量要素进行量化处理,建立质量特征
质量模型
质量模型:从质量属性中选出的能够互相配合、联系的特征集,来描述和评价系统的整体质量
因素:
- 功能性
- 可靠性
- 易用性
- 效率
- 可维护性
- 可移植性
质量保障:知识点
评审:知识点
• 1. 在规划阶段(Planning),制定审查计划,决定审查会议的次数,安排每次审查会议的时间、地点、参与⼈员、审查内容等等。
• 2. 在总体部署阶段(Overview),向所有参与审查会议的⼈员描述待审查材料的内容、审查的⽬标以及⼀些假设,并分发⽂档。
• 3. 在准备阶段(Preparation),审查⼈员各⾃独⽴执⾏检查任务。在检查的过程当中,他们可能会被要求使⽤检查清单、场景等检查⽅法。检查中发现的问题会被记录下来,以准备开会讨论或者提交给收集⼈员。
• 4. 在审查会议阶段(Inspection Meeting),通过会议讨论,识别、确认、分类发现的错误。
• 5. 在返⼯阶段(Rework),修改发现的缺陷。
• 6. 在跟踪阶段(Follow-up),要确认所有发现的问题都得到了解决,所有的错误都得到了修正。
质量度量:知识点
- 测度Measure:为了描述软件产品而提供的定量指标(代码行数)
- 测量Measurement:进行测度的活动
- 度量Metric:软件产品在特定属性上的量化测度程度(基于代码行数的测度建立平均代码行数等)
四、软件配置管理
软件开发过程中的中间制品,例如需求规格说明、需求分析模型、软件体系结构设计模型、详细设计模型等
需要维护一个清单来清除项目的状态、已经完成的和将要进行的工作
配置管理的定义:知识点
⽤技术的和管理的指导和监督⽅法,来标识和说明配置项的功能和物理特征,控制对这些特征的变更,记录和报告变更处理及其实现状态,并验证与规格需求的⼀致性
配置项:知识点
置于软件配置管理之下的软件配置的各种有关项⽬,包括各类管理⽂档、评审记录与⽂档、软件⽂档、源码及其可执⾏码、运⾏所需的系统软件和⽀持软件以及有关数据等
基线:知识点
配置管理活动:知识点
- 标识配置项
- 版本管理
- 变更控制
- 配置审计
- 状态报告
- 软件发布管理
分支管理常见策略:知识点
- 主分支(Master)
- 开发分支(Develop)
- 临时性分支(功能Feature,预发布Release,修补bugFixbug)
变更控制:知识点
大致的过程为:首先需要先提请变更,然后接收者接收变更之后要经历变更的评估,然后是决策变更。如果决策通过,就可以由修改者执行变更,然后验证变更。大致需要提出,决策,执行的过程
五、管理实践
需要实现:
- 经济为本
- 分工协作
- 目标驱动
- 常来常往
- 有张有驰
- 不断总结
经济为本
投入:
- 人员的成本
- 工具的购买
- 培训的费用
- 差旅费
- 维护的费用
- 生产停顿的损失
- 市场和服务的费用
- 机会成本
产出
- 节约商业活动成本(新库存管理)
- 创新商机增加销售
- 提高品牌含金量
1、为技术⽽技术是条死胡同
2、以经济原则指导软件项⽬的决策过程
3、按照产品规律来营销软件产品
4、以收益为依据规划设计产品
分工协作
建议的团队:⾸席程序员、副⼿、⾏政助理、编辑、秘书两名、程序管理员、⼯具专家、测试员、语⾔专家
三架马车:产品经理、项目经理、技术经理
目标驱动
SMART原则:
• specific
• measurable
• achievable
• reasonable
• time
常来常往
- 相互尊重
- 管道流畅
- 开放透明
- 坦诚真实
有张有驰
可以使用的方式:Kick-off Meeting,发布聚会,休假,技术培训,⼈员培训和被培训,换个项⽬
不断总结
关键是“不断”
六、项目实践
1、为实践项目组件你的团队(需要实现技能互补,选择合适的团队结构,建立团队章程,明确沟通手段)
2、配置管理(使用Gitlab,建立Group,使用MD文档)
3、项目结构
项目开发管理工具: