1 项目规划
规划即流程,以下内容按照阶段划分,每个阶段的界限并不是说完全明了,可以有部分交叉重叠
针对开发参与者来讲,我觉着主要分为以下几个阶段:
1.1 需求阶段
由于角色不同所以分工不同,大概流程分为以下三步:
- 产品提出需求概略
- 开发负责人进行大概模块拆分
- 产品根据模块进行需求细化
1.2 设计阶段
- 开发产出概要设计,包括模块拆分,以及模块细化
- 开发根据概要设计,产出详细设计,主要步骤为:功能点、业务流程图、技术架构、技术栈、数据库设计、接口设计、上线流程
1.3 开发阶段:
- 编码实现
- 联调
- 自测
1.4 测试阶段
- 修bug
- 功能优化(主要针对压测不通过)
1.5 上线
看每个公司的开发者的职能,这个步骤也可能是运维来做
- 上线前准备(数据库DDL, 数据准备)
- 分步上线 & 预发布
- 正式上线
- 线上验证
2 项目管理
站在开发的角度来看,项目管理分为三个方面,项目计划,项目实施,项目监控,当然三方也有重叠内容
2.1 项目计划管理:
2.1.1 项目进度管理:
2.1.1.1产品侧需求
是否能按时交付、保证项目质量等
2.1.1.2技术侧需求
分为项目稳定性计划、性能提示计划、架构提升计划三部分
- 性能提升计划: 对于项目中的性能瓶颈提出性能提示计划或实现建议
- 项目稳定性计划: 项目是否有不稳定因素,不稳定因素的影响范围,必须解决的deadline。
- 架构升级计划: 首先要有升级原因,比如目前架构是不再适合当前(或者可预见)业务场景。提供合适的架构升级建议和规划。
2.1.2 项目风险管理
预估风险、解决风险、预防风险等
2.1.3 项目沟通管理
产品沟通、测试沟通、开发沟通、针对风险问题的沟通等
2.2 项目实施管理
指导和管理项目执行人,在项目实施过程中进行风险控制,解决风险,预估风险。
2.3 项目监控管理
- 针对项目计划和项目实施的监控,包括对变更的控制,对中间可能产生的问题的控制等。
- 项目运行中的监控,主要目的是及时感知/预知问题,解决问题