无论是向新人介绍项目,又或者是上到一个新的项目,我们都需要事无巨细地列出一个个的关注点。既然如此,那么为什么创建一个检查清单,用来帮助我们一个个的检查一遍呢。
在过去的日子里,经历了几个不同的项目,每个项目都有自己特有的特色。它们往往也包含了一些不同的背景,在成功的交付项目之后,有的还要解决技术难题,有的要的是解决业务难题,有的复杂的部分在于跨团队的协作。正是因为这些情况,也导致了在不同的时候,我们需要着重考虑这些不同的因素,上一个业务复杂的项目,需要重点关注业务问题;来到一个项目团队结构复杂的项目,则重点解决团队复杂问题。
可是呢,对于每个项目来说,它们都存在一些相似的共同点。而这些共同点,即是我们开始一个新项目要做的,也是我们来到一个新的项目时,所需要了解的。于是,当我看到一篇 Tech Lead 的新项目检查清单时,我也想写一个面向开发人员的新项目检查清单。
在那篇《项目初期的最优技术实践》中,我总结了项目的三步曲:技术准备期、业务回补期、成长优化期。而后在那篇《迈向 Tech Lead 之路》里,我将 Tech Lead 要做的事情,结合到了三步曲中。
为此,我们将一个 Tech Lead 要做事情分为了三个部分,即:Process、People、Programming。 这一点对于新项目的检查清单来说,也有些类似。稍有不同的是,我们需要在其中加入关于业务的维度。此此,我们可以划分为四个维度:
作为检查清单的第一个版本,它的维度设计可能并非那么完善。但是随着时间的改进,我们可以一起把它变得更好。
0. 技术远景
说明:在技术上,我们有什么追求?
1. 文档 - Path to Production - 上线及发布日记 - 项目相关的 wiki 和文档记录
说明:文档即代码——好的文档应该是版本管理的。
2. 架构 - 系统相关的架构图,如 C4Model 方式描述 - 现有的技术栈及其关系
3. 代码库
- 搭建指南。
- 架构决策记录。放置在代码库的 docs/adr
目录中。
- 编辑器配置和代码风格规范。
- 模式和风格指南。
- 分支管理模式。GitFlow 或者 master,或者 Feature Branch。
- 代码提交风格。
4. 测试 - 测试层级。 - 测试策略。
5. 项目演进 - 未来的技术栈 - 系统的演进方案
6. 安全 - 安全标准。安全更重要,还是体验更重要? - 代码中的数据加密。 - 代码安全。
0. Project Process
1. Path to Development
说明:不同的的组织包含自身特别的情况,如 PC 端口、网络权限、代码库权限等的开通都需要一定的流程。
2. Path to Production
说明:代码中的 Path to Production 只是一份说明——针对于开发人员的,而这里的则需要一个更详细的说明。
3. Path to Roll Off
说明:换一个项目时,需要哪些东西?
1. 团队成员
2. 利益相关者
3. 跨团队协作
4. 用户
0. 业务远景
说明:我们在做什么,我们要去哪里?
1. 业务需求
2. 跨功能需求
为了方便我未来在新项目使用它,我创建了一个项目来更新这个清单:https://github.com/phodal/new-project-checklist
与此同时,创建了一个 Web 应用来检测。
如果我们的清单不是那么完善,那么作为一个 Tech Lead 又或者是一个额外的关键角色,我们应该完善相关的部分。
未来,我们是否还会有这样的工具,来帮助我们更好地做相关的工具呢?
围观我的Github Idea墙, 也许,你会遇到心仪的项目