在当下“人力成本”不断攀升的时代,企业对绩效管理的重视程度越来越高。一个行之有效的绩效管理系统,能够帮助企业:
本文将结合部门OKR考核与员工OKR考核两个层面,从架构设计、功能拆解、业务流程、开发技巧,到最终实现效果,逐步拆解OKR考核板块的落地方案,并给出架构图、流程图,配套数据库设计与代码示例,帮助开发者快速上手。
注:本文示例所用方案模板:简道云绩效管理系统,给大家示例的是一些通用的功能和模块,都是支持自定义修改的,你可以根据自己的需求修改里面的功能。
本文你将了解
OKR,即目标与关键结果,是一种自上而下、自下而上的目标管理与执行方法论。
mermaid
graph LR
A[前端(React/Vue)] --> B[API 网关]
B --> C[OKR 服务(Spring Boot/Node.js)]
C --> D[业务逻辑层]
D --> E[数据库(MySQL/PostgreSQL)]
D --> F[缓存(Redis)]
D --> G[消息队列(RabbitMQ/Kafka)]
C --> H[报表服务(Python/D3.js)]
H --> I[BI 仪表盘]

mermaid
flowchart TD
A(部门负责人填写OKR草稿) --> B{提交审核?}
B -- 否 --> A
B -- 是 --> C[HR/高层审核]
C -- 驳回 --> A
C -- 通过 --> D[OKR生效,推送至员工]mermaid
flowchart TD
A(员工认领部门Objective) --> B[制定个人KR]
B --> C{提交自评}
C --> D[上级/同事互评]
D --> E[系统汇总打分]
E --> F[生成复盘报告]sql
-- 部门OKR表
CREATE TABLE dept_okr (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
dept_id BIGINT NOT NULL,
quarter VARCHAR(10) NOT NULL,
objective VARCHAR(255) NOT NULL,
created_by BIGINT,
status ENUM('DRAFT','PENDING','ACTIVE','CLOSED') DEFAULT 'DRAFT',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- KR表
CREATE TABLE key_result (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
okr_id BIGINT NOT NULL,
description VARCHAR(255) NOT NULL,
target_value DECIMAL(10,2) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 员工OKR表
CREATE TABLE user_okr (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT NOT NULL,
dept_okr_id BIGINT NOT NULL,
objective VARCHAR(255) NOT NULL,
status ENUM('DRAFT','PENDING','ACTIVE','CLOSED') DEFAULT 'DRAFT',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 用户KR自评表
CREATE TABLE kr_evaluation (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
key_result_id BIGINT NOT NULL,
user_okr_id BIGINT NOT NULL,
self_score DECIMAL(5,2),
manager_score DECIMAL(5,2),
comment TEXT,
evaluated_at DATETIME
);java
// DeptOkrController.java
@RestController
@RequestMapping("/api/dept-okr")
public class DeptOkrController {
@Autowired DeptOkrService service;
@PostMapping
public ResponseEntity<DeptOkr> create(@RequestBody DeptOkr dto) {
return ResponseEntity.ok(service.create(dto));
}
@PutMapping("/{id}/submit")
public ResponseEntity<Void> submit(@PathVariable Long id) {
service.submitForApproval(id);
return ResponseEntity.ok().build();
}
@GetMapping("/{id}")
public ResponseEntity<DeptOkr> getById(@PathVariable Long id) {
return ResponseEntity.ok(service.getById(id));
}
}jsx
// OKRForm.jsx
import { Form, Input, Button, Select } from 'antd';
export default function OKRForm({ initialValues, onSubmit }) {
const [form] = Form.useForm();
return (
<Form form={form} initialValues={initialValues} onFinish={onSubmit}>
<Form.Item name="objective" label="Objective" rules={[{ required: true }]}>
<Input placeholder="输入部门/个人目标" />
</Form.Item>
<Form.List name="keyResults">
{(fields, { add, remove }) => (
<>
{fields.map(({ key, name, ...restField }) => (
<Form.Item
{...restField}
name={[name, 'description']}
label={`KR ${name + 1}`}
rules={[{ required: true }]}
>
<Input placeholder="关键结果描述" />
<Button onClick={() => remove(name)}>删除</Button>
</Form.Item>
))}
<Form.Item>
<Button type="dashed" onClick={() => add()}>添加 KR</Button>
</Form.Item>
</>
)}
</Form.List>
<Form.Item>
<Button type="primary" htmlType="submit">提交</Button>
</Form.Item>
</Form>
);
}在这里我给大家推荐一个业务人员就能够直接上手的高性价比、零代码平台——简道云绩效管理(OKR)系统,简道云绩效管理(OKR)系统为通用的 OKR绩效考核管理工具,轻松实现目标与关键成果制定与考核!支持自定义考核流程、目标对齐、OKR过程监督、OKR地图等功能。“我要做的事”,适合开拓性、创新性工作,结果不一定满分但过程必须ALL IN。目标制定过程中鼓励员工主动思考和参与,目标高挑战,与上层目标高度对齐。
Q1:如何保证OKR考核的公平性?
为了保证公平性,首先需要在系统设计上明确“自评”和“他评”的流程;系统支持员工自评后,上级与同级至少两人打分,为每条KR提供多维度打分数据;其次,引入“打分盲审”模式,打分者看不到他人分数;最后,统计模块中可设置“剔除最高分、剔除最低分”功能,再取中位数或平均数,减小极端值影响。此外,系统应记录每次打分的打分者、时间戳与备注,方便后续审核与仲裁。
Q2:如果OKR考核指标过程变动怎么办?
在实际业务中,OKR并不是“一锤子买卖”,往往会因为市场、项目进度等原因进行调整。建议系统支持“动态修正”功能:在考核周期内,部门负责人或HR可发起“OKR变更申请”,填写变更原因、旧KR与新KR对比;经过审批后,系统自动调整后续打分基准,并保留变更审批流与历史记录;同时在统计报表中,对“变更后KR”和“变更前KR”分别标注,方便复盘分析。
Q3:如何将OKR考核与薪酬、晋升挂钩?
虽然OKR强调“以目标驱动”,但企业最终需要将考核结果转化为激励手段。系统可提供“打分权重”与“映射规则”配置:HR 在系统后台配置不同角色、级别对应的考核权重,以及“完成度→奖金”或“完成度→晋升积分”的映射区间;考核结束后,系统自动计算个人奖金、积分并推送到薪资模块;同时,系统提供API,方便与第三方薪资系统或人事系统对接,实现一体化闭环。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。