最近在尝试梳理我们日常工作中做项目的一些小结,下面就讲这些小结做一些简单分享与交流。
首先,在我们做软件项目的过程中,一般项目中技术能力构成主要有下面三点
- 工程能力
- 关键技术能力
- 架构能力
不管技术是否复杂,架构是否混乱,工程能力对于任何一个项目是必不可少的。所以下面我就分享一下这几年在大型公司中实施工程方面的一些总结和经验,同样适用于一些中小型公司。
总体思路
目标 -- 原则 -- 方法 -- 结果
目标
目标,做一件事情的目标,是为了解决什么问题。
做软件项目,同样需要明白做这个项目的目标是什么,它解决了什么问题。
方法
方法,解决一件事情的方式多种多样,这里不拘泥于任何形式。
在互联网的这几年里面,让我看清一个事实。即使互联网爆发力强,但是靠技术改变革命的产品,只有很小一部分,其他的工作都是很苦逼的体力活。
结果
结果,通过方法实现目标后的结果
需要明确的是,这里的结果需要和目标一一对应的看,否则结果没有意义,说明不问题。
比如
- 调取软件项目上线前后同周期数据对比
- 如果为新项目没有对比数据,则调取业界数据进行对比
- 优化项目需提前收集好数据,以便上线后获取上线前后的数据对比
总体思路其实就是上面几个,具体到执行方面的话,就有下面八个主要步骤
一、项目立项
- 目标与价值
- 定位与边界
二、设计评审
- 整体概要设计
- 详细API与表设计
三、开发阶段
- 仓库管理git workflow
- 代码review
- 单元测试与集成测试
- sonar代码分析
四、测试阶段
- 功能性测试
- 性能测试
- 破坏性测试
五、部署阶段
- 服务器无单点部署
- 服务器无状态
- 多机房部署
六、服务监控
- 机器监控
- 中间件监控
- 应用监控
- 业务监控
七、项目管理
Jira关联项目进度
通过Jira关注整体的进度,如果遇到出现任务delay了,需要及时跟进沟通,确保每个环境都没有问题
站立会议
每天早上进行10分钟左右的站会,主要说明昨天做什么,今天要做什么,以及遇到了什么问题
八、结果反馈
- 性能层面数据对比
- 产品层面数据对比