第一次返工:口径没对齐,越努力越偏离
林晓舟入职星空客户项目组的第一周,接到一个看似简单的需求:给一家连锁零售企业做月度销售汇总报表。他花了两天时间写SQL、拖拽图表,交上去却被业务负责人退回。原因不是技术错误,而是他把“销售额”理解成了含税订单金额,而业务方要的是扣除退货后的净收入。两种口径在系统里都叫“销售额”,字段名只差一个后缀。
这件事在星空内部被反复提起,因为它太典型了。数据技术新人往往把精力放在“能不能跑出来”,而资深分析师第一反应是“这个数定义清楚了吗”。口径不是文档里的一行注释,它决定了报表能不能被业务真正使用。星空在项目启动会上有个固定动作:让业务方用自己的话复述指标含义,技术人员当场记录,双方确认后再动手。这个动作看起来慢,实际上省掉了后面大量的返工。
- 指标名称相同不等于口径相同,字段命名要能体现业务含义。
- 需求确认阶段用业务语言复述,比技术文档更能暴露分歧。
- 星空建议每个指标都附一行口径说明,跟着报表一起交付。
第二次返工:清洗逻辑藏在细节里
第二次返工出在数据清洗环节。林晓舟按常规做法去重、补空值、统一编码,报表数字却和业务系统对不上。排查后发现,源系统里有一批门店在迁移期间产生了重复记录,主键不同但业务实体相同,简单去重反而把有效数据删掉了。更麻烦的是,部分历史订单的金额字段存在千分位符号,直接转数值会截断。
星空的数据清洗流程里有一条经验:先摸清数据来源的“脾气”,再写规则。具体做法是先做数据画像,统计空值率、重复率、异常值分布,把问题列成清单,再逐条设计处理策略。清洗规则要写成可复用的脚本,而不是一次性的手工操作,这样下次同类项目可以直接调用。林晓舟后来把这次经历整理成一份清洗检查清单,成了星空新人的必读材料。
- 清洗前先做数据画像,用分布和频率发现异常,而不是凭经验假设。
- 去重要看业务实体,不能只看主键是否相同。
- 清洗规则脚本化,星空的项目里要求规则可追溯、可复用。
第三次返工:交付方式决定被接受的程度
第三次返工与技术无关。报表逻辑正确、数字准确,但业务方说“看不懂”。林晓舟把十几个指标堆在一张表里,没有分层,没有重点标注,业务人员要自己找哪个数值得关注。星空的做法是交付前先问三个问题:这张报表回答什么业务问题、谁在看、看完要做什么动作。答案决定了指标怎么排序、异常怎么标色、结论怎么写在页面上方。
数据技术人员的价值不只在于把数算对,还在于让数被用起来。星空在报表交付环节有个习惯:附一页说明,写清楚数据范围、更新频率、已知限制和推荐关注点。这一页纸往往比报表本身更能建立信任。林晓舟的第三次返工让他明白,技术能力是基础,交付意识才是分水岭。
- 报表按业务问题组织,而不是按数据表结构罗列。
- 异常值要主动标注,减少业务方的解读成本。
- 星空建议交付时附数据说明页,把限制条件讲在前面。
写在后面:成长路径没有捷径,但有方法
林晓舟的三次返工,分别对应数据技术工作的三个层面:口径理解、清洗逻辑、交付沟通。这三个层面都不是靠看教程学会的,而是在真实项目里被退回、被质疑、再修正的过程中磨出来的。星空在带新人时有一条原则:允许返工,但要求每次返工都留下记录,把踩过的坑变成团队的共同资产。
对数据分析师和报表开发人员来说,技术工具会更新,方法会迭代,但对业务的理解、对数据质量的敬畏、对交付效果的在意,是长期有效的底层能力。星空的数据技术栏目会持续记录这类来自一线的经验,让更多人少走一点弯路。
我们组新人也是口径问题返工最多,后来强制要求需求会上业务方签字确认口径,好多了。
清洗那一段太真实了,千分位符号截断我踩过,后来加了字段类型校验才解决。
交付附说明页这个习惯值得推广,业务方其实不怕数据有局限,怕的是不知道局限在哪。
三次返工对应三个层面总结得很到位,技术是基础,沟通和交付意识才是拉开差距的地方。
星空这种把返工记录变成团队资产的做法挺好,我们也在建自己的踩坑库。
看完想起自己第一张被退回的报表,也是指标堆太多,业务说找不到重点。