效率提升系列:组织的意识
2016-08-21
1. 从小场景说起
小的场景:
- 场景 A:
- 10 个人,组成一个班
- 要找班里「王大锤」战士
- 问题:如何找?
- 场景 B:
- 1 w 人,组成的一个师
- 要找「王大锤」战士
- 问题:如何找?
就是这个场景:
解决办法:
核心思路:
- 分类:怎么分类?
- 从自带属性角度
- 从职能角色角度
- 编号
- 前缀式
- …
2. 组织的意义
组织结构,就是逻辑的体现,良好的组织结构才能承载较高的Buss-。
围绕项目开发过程,这一部分讨论的组织结构,涵盖:
- 人员的组织结构
- 后端开发,文档组织结构
- 后端开发,代码组织结构
细节可以填充、优化,但组织结构却是第一位的。(备注:比组织结构更重要的是定位)
3. 几类组织
3.1. 人员组织结构
形成梯队,不同梯队有各自的核心角色和责任,项目开发过程中,以研发团队为例:
- 要有统一的接口人,负责为研发团队屏蔽外部事物细节,排除外部干扰,协调外部事务
- 对外协调整个过程,协调突发需求的优先级
- 紧盯项目进展,在开发的里程碑上对外进行沟通
- 特别说明:接口人,要对业务足够熟悉,对功能点的开发进展要足够了解
3.2. 文档组织结构
说组织结构之前,简短分析一下:
- 文档的作用是什么?
- 哪些地方需要记录文档?
- 文档应该涵盖哪些内容?
- 文档之间的组织结构?
- 文档内部的组织结构?
推荐的文档组织结构:(以单个业务线为例)
XX业务线(Buss):项目名称和代号
- Buss-系统设计:系统架构、内部子系统间的结构
- Buss-系统设计-系统架构演进:按照不同的版本,记录系统架构,简要说明当时系统架构的考量因素。
- Buss-版本迭代:各个迭代版本,每个版本的项目排期,任务拆解、接口文档、数据结构、具体上线步骤、项目周报
- Buss-版本迭代-1.0:项目排期和人力分配表
- Buss-版本迭代-1.0-上线:上线步骤,数据库、缓存、索引
- Buss-版本迭代-1.0-任务拆解:功能点拆解、估时和人力安排
- Buss-版本迭代-1.0-准备工作:工具类、开发环境、代码仓库等
- Buss-版本迭代-1.0-接口文档:数据结构、接口文档(web、admin分开)、严格按照 RESTFul 风格进行
- Buss-版本迭代-1.0-详细设计:涵盖领域模型设计、状态转移图、关键功能设计(同步/异步)
- Buss-版本迭代-1.0-周报:每周的进展以及问题
- Buss-版本迭代-1.0:项目排期和人力分配表
- Buss-开发运维:系统开发环境、线上线下资源申请、开发调试过程
- Buss-开发运维-开发环境:git 管理的不同分支的介绍,不同子项目的代码仓库以及开发、发布分支和说明。
- Buss-开发运维-开发环境-系统联调:不同环境下的系统联调步骤和注意事项。
- Buss-开发运维-资源申请:线上、线下资源申请的过程和结果,直到今后的资源申请,节省时间。
- Buss-开发运维-部署发布:线下、线上环境的机器、域名、端口、发布项,方便快速的部署项目。
- Buss-开发运维-系统监控:系统接入 HLB、Falcon、Sentry、OCTO 的过程以及查看监控数据的地址。
- Buss-团队管理:涵盖新人培养、招聘、请假统计、人员盘点
- Buss-团队管理-新人培养
- Buss-团队管理-招聘
- Buss-团队管理-请假统计
- Buss-项目管理:涵盖项目周会、项目排期模板
- Buss-团队管理-周会
- Buss-技术文档:代码规范、API 文档规范
Note:好的组织结构,都是不断迭代演进出来的,不强求一上来就是最终结构,以适应当时情况为宜。
3.3. 代码的组织结构
几种备选方案:
- maven 父子工程?
- 标准 web 工程代码结构?
收益和代价是什么?
- 开发成本?
- 维护成本?
- 系统扩展成本?
原文地址:https://ningg.top/thought-of-work-series-organization/