方法论:从社会契约到公司流程制度
一、背景
工作中避免一个坑重复踩,需要流程制度保证可靠性和降低风险,比如代码review、方案设计、软件发布等都需要严格的流程制度。那面对一个新问题,我们该设计一个流程制度呢?其实每个公司就是一个小型的社会,我们可以参考社会中的法律法规的建立来设计公司的流程。
二、社会制度
我们在历史课本中也有学过,社会中的法律法规遵循三权分立,立法-执法-监督等要权利要分开,避免既当选手又当裁判。社会法规中通常有如下原则:立法要明、执法要严、积极监督。
- 立法要明
立法确定一条法律法规要透明,要尽可能通知到每个公民,进行公示,打好预防针的作用,就范时做到有法可依。
- 执法要严
执法要严格,有法必依,违法必究,严格按照规章制度办事。
- 积极监督
执法的过程需要监督,否则执法严格将无从确认,监督是最重要的,所以每个公民都有监督的权力。
三、公司流程制度
公司中的流程制度制定如何参考社会制度的建立呢?有以下几点对应。
社会法规 | 公司流程制度 |
---|---|
立法要明 | 制定流程时要进行邮件或者会议进行公示,通知到所有参与者。 |
执法要严 | 流程中的各参与者要严格执行,角色分工清晰,做好问责机制。不过公司流程也不必教条,需要设置特批流程,解决一些特殊情况。 |
积极监督 | 需要监督流程的执行情况,这里可以通过OA系统建立标准流程。如果有一些流程琐碎无法纳入OA,则需要负责人进行管控。需要外部审计,比如助理或者IT人员进行检查监督。对于违反流程进行惩罚,做到杀鸡儆猴作用。 |
四、如何建立流程制度?
执法和监督其实相对来说明确注意事项就好,重点是一个制度如何建立。有如下关键点:
- 明确流程要解决的问题
- 明确各参与人的角色和分工
- 设计完善的流程图
以代码审查流程为例:
- 要解决的问题
代码审查制度,防止方案未经评审就入库的情况,导致后续出现严重的市场反馈问题。
- 各参与人角色
各参与人的角色分工遵循RACI原则,各参与人角色如下:
角色 | 参与人 | 职责 |
---|---|---|
R(执行者) | 软件工程师 | 负责代码编写和测试 |
A(负责人) | 模块负责人 | 负责代码评审发起和实际评审 |
C (咨询者) | 部门专家 | 流程制定咨询者 |
I(知情者) | 项目组工程师 | 项目组工程师知情修改方案 |
- 流程
流程的制定,选择模块负责人和咨询者进行讨论制定即可,比如代码评审的流程设计。
序号 | 流程 | 详细内容 | 参与人 |
---|---|---|---|
1 | 方案设计 | 负责方案设计,负责人指导,工程师设计。 | 工程师、负责人 |
2 | 方案评审 | 发起会议进行方案评审会 | 工程师、负责人、领域专家 |
3 | 开发工作 | 负责代码编写调试、测试 | 工程师 |
4 | 测试方案评审 | 测试方案checklist评审 | 工程师、负责人、领域专家 |
5 | 代码自动化检查 | 部署AI自动化检查工具,进行自动化检查,由工程师触发。 | 工程师 |
6 | 代码review会议 | 发起代码评审会议。 | 工程师、负责人、领域专家 |
7 | 代码入库 | 代码入库工作 | 负责人 |