Role It
· · ·
题目进度 0 / 0 ✓ 0
角色地图:IT / Developer(开发工程师)
开发是”盖房子的人”——你画图纸,他们施工。但如果你画的图纸不切实际(数据拿不到、性能做不到、改了 A 影响 B),他们会告诉你”做不了”。听他们说”做不了”的时候,要分清是真的做不了还是你不愿意改需求。
flowchart LR
subgraph 开发工作流
A[需求评审] --> B[技术设计]
B --> C[编码实现]
C --> D[测试]
D --> E[部署上线]
E --> F[运维监控]
F -->|Bug/变更| A
end
一、开发眼里的系统(和你不一样)
PM 看到的是”功能”,开发看到的是”结构”。理解他们的视角才能沟通:
| 你说 | 他们听到的 |
|---|---|
| ”加一个报价记录功能" | "要在数据库加一张表 + 写 CRUD API + 前端加页面 + 加字段校验 + 加权限" |
| "报价快一点" | "要优化查询性能 + 可能加缓存 + 可能改数据结构" |
| "这个字段很简单" | "这个字段关联了 5 张表、3 个 API、2 个批处理" |
| "先上线再优化" | "技术债务 + 晚上加班修生产问题” |
二、典型一天时间线
09:00 ─ 站会 (Standup)
│ 昨天做了什么、今天做什么、有什么阻塞
│ 你需要的:清晰的优先级、没有太多 WIP
09:30 ─ 开发
│ 写代码:新功能 / 修 Bug / 重构
│ 打断最频繁的时候——IM 消息、需求变更、线上问题
│ 你需要的 PM 支持:需求明确不模糊、变更提前沟通
11:00 ─ 技术设计
│ 新功能的技术方案讨论
│ 数据库设计、接口定义、系统间数据流
│ 你需要的 PM 支持:业务场景完整、知道上下游系统
13:00 ─ 测试
│ 写单元测试 / 集成测试
│ 修测试发现的问题
│ 你需要的 PM 支持:验收标准和测试案例清晰
14:00 ─ Code Review
│ 看同事的代码、被同事看代码
│ 讨论:这样写对不对、有没有更好的写法
15:00 ─ 与业务对需求
│ 需求不清的地方找 PM 确认
│ > "这个报价有效期是指报价发出的时间还是客户收到的时间?"
│ 你需要的 PM 支持:知道你在问什么,而不是"你先做吧我回头再想"
16:00 ─ 部署 / 发布
│ 发布新版本到测试/生产环境
│ 监控发布过程、回滚预案
17:00 ─ 总结
│ 写文档、更新 Jira/任务状态
│ 准备明天的开发计划
三、开发最怕遇到的 PM
| 类型 | 表现 | 后果 |
|---|---|---|
| 画饼 PM | ”这个功能很简单”,实际上关联一堆系统 | 开发周期评估不准 |
| 变脸 PM | ”按上次说的做”→做完你说”这不是我想要的” | 返工、士气下降 |
| 传话筒 PM | 业务说什么你就说什么,不加判断 | 做出来业务不用 |
| 救火 PM | 需求没有优先级、天天说”这个最急” | 做什么都是”急的”,没有节奏 |
| 完美 PM | ”数据不能差一分钱、页面一秒必须出来” | 开发成本飙升、交付时间无限推 |
好的 PM 是这样的:
- 需求有上下文:不仅仅是”要什么”,而是”为什么要、谁用、什么时候用”
- 优先级明确:这个不做会怎样、什么东西可以砍
- 保护开发:帮开发挡不合理的需求和时间要求
- 自己先想清楚:找开发之前自己先过一遍逻辑
四、开发的黑话
| 黑话 | 意思 | PM 应该怎么做 |
|---|---|---|
| ”这个要做多大的改动” | 影响面有多大 | 告诉他业务场景,不要逼他给估算 |
| ”技术债” | 之前写得不好,现在要改 | 理解有些重构是必要的,不是”浪费时间" |
| "性能瓶颈” | 系统太慢了 | 一起找合理的性能指标,不拍脑袋说”要快" |
| "耦合” | 两个功能绑死了 | 设计时考虑模块独立 |
| ”修复”: “回归” | 改了 A 导致 B 坏了 | 留测试时间 |
| ”上下游” | 依赖的其他系统 | 做之前先搞清楚数据从哪里来、到哪里去 |
| ”Hotfix” | 线上紧急修复 | 预计划外的工作量 |
| ”API” | 接口 | 确认接口设计是否满足你的使用场景 |
| ”时间估算” | 开发说的时间 | 乘以 1.5~2 才是实际时间 |
五、开发用到的系统
| 系统 | 用途 |
|---|---|
| IDE | 写代码 |
| Git | 代码版本管理 |
| Jira / 任务管理 | 任务跟踪 |
| CI/CD 流水线 | 自动构建、测试、部署 |
| 数据库工具 | 看数据、查问题 |
| 日志系统 | 线上问题排查 |
| 监控告警 | 线上系统运行状态 |
系统支持(IT 侧锚点)
作为开发,你打交道的是这些真实仓库(见 14-Systems-and-Data §5.9 与 TEACH-SESSION.md):
| 仓库 | 角色 | 关键路径 |
|---|---|---|
~/odts1/hedging-as | 核心交易 / 对冲 / 定价编排 | action/quotation/、service/eod/、contract/ |
~/odts1/eds-web-app | 后端业务 API | ContractController.java、ContractAction.java |
~/odts1/eds-price-server | 独立定价引擎(30+ 产品) | PricingEngine.java |
~/odts1/eds-utility | 工具 / 日历服务 | 利率 / 日历 |
~/odyssey/odyssey-cash-manager-service | 资金 / 追保 | MoneyTransferClient.java |
~/odyssey/odyssey-fuxi-auth-web | 认证 SSO / JWT | RBAC |
~/odyssey/odyssey-internal-gateway | 内部网关 | Nacos + Sentinel |
~/odyssey/odyssey-report-processing-service | 报告加工 EDS→OFA | service/ |
~/odyssey/ofareg | 监管报送平台 | 柜台报送 |
下一角色:role-client.md 客户的一天