客户到底想要什么?

转自

http://blog.youkuaiyun.com/Qim/archive/2009/02/22/3921725.aspx

 

-------------需求分析

引子:
前段时间公司接到一个活,貌似还是比较好上手的。
但是有时候危险都是潜伏在不轻易间,翻来覆去十多个人项目折腾了快四个月了,
到现在还是一头雾水,页面画了改,改了重画,代码更是注释再注释,
没有确切的文档来证明我要做什么,我做了的只有我自己觉得是对的。
项目组成员整天加班加点,双休都搭进去了,叫苦不迭,不过幸好还给点加班费,
身心疲惫间给你一点点小回报……
可结果是项目经理都快不敢见客户了,见一次灰头灰脸的回来一次;
公司领导更是也在抱怨,都超出预计工时几倍了,这帮人是在干活吗?
问题虽然是多方面的,但关键问题是,
为什么客户老是在改来改去?
是客户的需求时刻在变?还是我们的产品根本就没有达到客户的期望?

我们是这样做的吗?
1:了解客户现有的业务开展流程!
客户在找我们谈做一个新系统之前,原有业务是如何开展的?
是纯手工作业,根本没有系统,只是操作员把一些数据记录在excel文档或其他一些临时纪录文件里;还是半自动,一部分业务有一个小型系统辅助完成;还是全自动,公司里面已经有一个比较完善的业务系统在运作,出于某种因素考虑,需要换新系统。当我们弄清楚了这些之后,如果客户以前就有一定的系统使用经验,他们不自然的就会有一些使用倾向,或者使用习惯,这对一后新系统的开发有很大帮助。接着应更进一步了解客户的各个部门之间的业务关系,每项业务的涉及人员是哪些?每项业务的流程是什么?对于一些大众的业务流程,要真实纪录客户自己的想法,别想当然认为是这样这样。

2:了解客户对现有业务流程的改进期望!
记住是现有的业务流程的期望,不是对新系统的期望。因为新系统啥都没有,都是缥缈的,说也是凭空想象。而现有业务,他们整天的工作就是依此为中心。让他们说说,肯定说起来很有自己的想法,往往也能真实的反映出业务要求。这个时候或许会遇到很多问题,领导之间期望不一致,上下级之间想法不同等等。领导的话要听,领导不满意,恐怕验收就会受到影响,进而影响到能不能拿到钱的问题。而实际系统操作者的话也非常重要,他用的顺不顺手,操作省不省心,直接影响他的工作情绪,进而对软件的评价就出来了,这软件真难用,xxx公司做的,费了那么长时间做出这样的东西等等,不小心就会影响到我公司的声誉。这且不谈。
最后从这些错综复杂的陈述,想法,建议中,找出我们真正需要的东西。

3:把客户当前的业务流程用他们易于理解的图形方式成稿,并加入改进期望。
以上3步纯粹从客户的业务角度出发,沟通交流中不涉及新系统的具体实现细节。这三步可能会来来回回重复数次,直到两方达成一致,形成定稿为止。

4:把上面的定稿抽象分析成模块,根据客户的软硬件环境,做成界面效果图,请客户确认。

而我们很多实际开发的时候,尤其是对旧系统进行升级的时候,1,2步往往草草而过,或者没有专人来进行细致的调研,整个项目的后期开发真的不可想象……

非常好的问题! 你问“**我没懂到底想实现什么**”,这说明我们还没有把业务目标讲清楚。 下面我用 **最直白的语言 + 生活中的比喻 + 实际例子**,彻底解释清楚这个系统到底在做什么、为什么要这么做。 --- ## 🎯 一句话总结: > 这个批处理的核心目的是: > **为每一个门店的每一笔订单,自动决定「从哪里进货、怎么配送」的最佳路径(即「発注納品パターンコード」)** 就像外卖平台要决定:“这份餐是由哪家店做?走专送还是众包?”一样。 --- ## 🧩 拆解:什么是「発注納品パターンコード」? 这是一个 **编码**,代表了: | 内容 | 举例 | |------|------| | 谁供货? | 中央仓库 / 区域仓 / 供应商直送 | | 怎么配送? | 早便 / 午便 / 晚便 / 隔日达 | | 配送频率? | 每天送 / 隔天送 / 周期性补货 | 👉 它决定了: - 商品什么时候到店 - 从哪里来 - 花多少钱运费 - 是否能及时上架 所以必须精准匹配。 --- ## 📌 为什么需要这么复杂的逻辑来找这个代码? 因为现实世界太复杂了: ### 💡 场景举例: 假设有一家便利店连锁集团,过去收购了很多地方小超市,比如: - 原来叫「大阪便利屋」→ 旧取引先コード = `2868620` - 现在改名为「全国优品便利店」→ 商流取引先コード = `828675` 虽然名字变了,但它的: - 供货方式没变(还是从关西仓发货) - 配送时间没变(每天早上6点前送到) 所以我们不能因为“新系统上线”就重新配置所有规则,而是要: > ✅ **继承老系统的配置习惯** 否则会导致: - 断货 - 配送延迟 - 成本上升 --- ## 🔍 核心目标:智能继承 + 自动匹配 系统要做的是: ```text 已知: - 这家店原来是「2868620」号客户 - 现在属于「828675」商流体系 - 发货地区是「761」 请问: → 它现在应该使用哪个「発注納品パターンコード」? ``` 答案不是随便定的,而是按优先级找: ### ✅ 查找优先级(层层兜底): | 步骤 | 查什么 | 目的 | |------|--------|------| | 1️⃣ | 当前地区的标准规则(地区単位) | 大部分店都一样的配送方式 | | 2️⃣ | 当前便区分的特殊规则(便単位) | 早中晚不同配送策略 | | 3️⃣ | 当前発注パターン是否指定了规则(発納単位) | 特定商品或促销专用 | | 4️⃣ | 如果以上都没设置 → 看它“原来的老客户”是怎么配的 → 继承最小発注区分的设置 | 关键!防止历史配置丢失 | | 5️⃣ | 如果连老客户也没记录 → 用“店舗自己设定的默认値”兜底 | 最后防线 | --- ## 🧠 举个生活化比喻:转学后的排课表 想象一个学生从小学到初中转学了: | 项目 | 类比 | |------|------| | 小学班级 | 旧取引先コード (`2868620`) | | 初中班级 | 新商流 (`828675`) | | 课程安排 | 発注納品パターンコード | | 学校规定 | 取引先地区別マスタ | 他刚进初中,学校不知道怎么给他排课。 于是老师查: 1. 同年级其他同学怎么排?→ 地区単位 2. 他是走读还是住宿?→ 便区分 3. 他报了美术班吗?→ 特殊パターン 4. 他在小学时是重点班,课程更难 → **继承小学最优配置** 5. 如果查不到 → 先按普通班排课 📌 这就是整个系统的逻辑! --- ## 🔄 回到你的代码:它在做什么? 你现在写的 PL/pgSQL 批处理,就是在模拟上面这个“查课表”的过程。 每一步都在问: | 问题 | 对应代码步骤 | |------|--------------| | “这家店所在地区有没有统一配送规则?” | (2)~(5) 查 `BX_M_017_TRI_CHIKU` | | “它是午便送货,有没有午便专属规则?” | (4) 便区分判断 | | “它这个订单类型有没有特别规定?” | (5) 発納パターン一致判断 | | “它以前是谁?能不能继承老客户的优秀配置?” | (6) 再検索 + 最小発注区分继承 | | “如果什么都找不到,至少别让它断货吧” | (8) 用店舗自己的默认値兜底 | --- ## ✅ 最终成果:每个订单都有了正确的「物流身份证」 | 订单信息 | 结果 | |---------|------| | 店番:A001<br>商品:牛奶<br>日期:4/5 | → 発注納品パターンコード = `25`<br>含义:从区域仓发货,每日早便配送 | 这样后续系统就知道: - 几点截单? - 几点开始拣货? - 几点必须发车? 一切自动化运转。 --- ## ❗ 为什么“继承最小発注区分”如此重要? 再看这个例子: | 商流 | 発注区分 | 地区 | 旧客户 | パターンコード | |------|----------|------|--------|----------------| | 828675 | 05 | 761 | 2868620 | 25 | | 828675 | 08 | 761 | 2868620 | NULL | - 区分 `05` 是“常规补货” - 区分 `08` 是“临时追加订单” 虽然 `08` 没有设置配送方式,但它应该 **跟着最基础的那个规则走(05)**,否则就会乱套。 👉 所以我们必须找到 `hcchukbn=05` 的那条记录,取出它的 `25` 来用。 这就是 `(6)` 再検索的意义。 --- ## ✅ 总结:你想实现的是什么? > **构建一个智能化的订单路由决策引擎**,做到: | 功能 | 说明 | |------|------| | ✅ 自动识别配送规则 | 不用手动一个个设置 | | ✅ 支持企业并购整合 | 老客户平滑过渡到新系统 | | ✅ 防止配置遗漏导致断货 | 层层兜底机制 | | ✅ 提高物流效率 | 每个订单都知道“从哪来、何时到” | 这才是你这段代码真正的价值。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值