第7章 · 趣味学习

系统规划:这个项目到底值不值得做?

饿了么么日均订单突破三万后,投资人找上门了:"你们应该做个智能推荐系统,再搞个供应链管理平台,还能做个骑手调度引擎!"老王听得热血沸腾,恨不得明天就全上。小明拦住他:"等一下,这些项目每个都要烧钱烧人,我们得先想清楚——为什么要做?值不值得做?怎么做?"

这就是系统规划要回答的问题:从项目提出、选择到确立的全过程。

💡 7.1.1 项目为什么立项?四种动机

组织搞信息化,动机五花八门。归结起来就四种:

动机 谁干的 目的 类比
基础研究获取技术大学/研究院/企业战略部门技术积累中科院搞AI基础理论
应用研发获得产品企业立项开发卖产品赚钱做Office、杀毒软件卖
提供技术服务服务导向公司咨询/集成/定制/运维IBM做系统集成
信息技术产品的使用者最终客户购买使用获得价值企业买ERP系统
老王
投资人说的那三个项目,我们算哪种?
小明
智能推荐=应用研发获得产品(自己用也卖给别人);供应链平台=技术服务(给商家用);骑手调度=应用研发。但关键不是分类,是要搞清核心价值——不是什么都做,要看哪些和我们的核心业务相关。

🎯 7.1.2 项目选择四原则与Kano模型

选项目的四个原则:

  1. 选有核心价值的产品/项目——Michael Porter的"价值链":产品设计→生产→营销→应用。核心业务=价值链中增值最大的部分。对生产制造业,生产计划/库存控制/面向订单生产是核心;对金融保险,保单管理/风险评估是核心;对教育,教研/教学/考试是核心。
  2. 评估项目风险、收益和代价——用总持有成本(TOC)评估,不只买产品/服务的钱,还包括维护、培训、流程变更等隐性开销。
  3. 评估项目的多种实施方式——不一定自己组团队开发,还可以转包、OEM、购买关键技术集成、外包编码等。
  4. 平衡地选择适合的方案——不存在完美方案,只存在对当前目标相对适合的方案。"适合"而非尽可能"好"——超出目标的"好"通常意味着更多成本。

Kano顾客质量模型(三种质量):

  • 要求质量:客户认为产品应该有的功能。实现越多越满意,不实现就不满意。
  • 🤔 假想质量:客户想当然认为应该有,但说不清楚的需求。需要沟通确认。
  • 🎉 兴奋质量:要求范围外的功能,开发者很乐意加的技术特性。实现了客户更高兴,不实现也不影响购买决策。
💡 秒懂技巧:Kano模型就像卖手机——要求质量=能打电话能上网(没有就不行);假想质量=用户觉得"应该流畅"但说不清要多快(需要调研确认);兴奋质量=AI美颜拍照(用户没想到,有了就惊喜)。架构师常犯的错:用自己技术兴趣的兴奋质量,替换客户最基本的要求质量。企业经营者常犯的错:对客户合理要求视而不见,或把未评估的假想要求不断指派给开发团队。

📝 7.1.3 项目提出和选择的结果:建议书

项目提出和选择的最终产出=产品/项目建议书。比GB 8567-1988的"可行性分析报告"内容更全面。典型场景:① 投标时乙方提交甲方的竞标方案;② 企业内部立项向上级提交的决策报告。

建议书可能包含:用户单位/背景/需求来源、内外环境/组织机构/现有IT设施、业务模型和规划、技术系统在业务中的位置、信息化后的业务模型、产品需求定义(功能/性能/约束)、技术框架、项目要点/难点/障碍、可行性研究结果、实施方式/组织方式/沟通协调机制、资源范围和预算、成本/收益分析等。

🔬 7.2.1 可行性研究:五个维度

可行性研究的意义:用较小的代价在项目定义阶段识别出错误构思的系统,避免后期大量资源投入的损失。不是详细计划,但能设立一个"底线"。

维度 评估什么 饿了么么的例子
经济可行性开发成本 vs 收益推荐系统开发200万,预期提升10%转化率
技术可行性技术能力够不够+资源够不够+目标障碍团队有AI经验吗?算力够吗?
法律可行性侵权/违法/合同/政策限制用户数据用没被认可的加密算法?
执行可行性真实环境中能被应用的程度商家数据采集质量够不够?员工IT技能够不够?
方案的选择比较可选方案,折中选择自研 vs 买现成 vs 外包
💡 秒懂技巧:技术可行性不仅仅是论证技术上能否实现!它还包括当前资源条件下的可行性——投资不足、时间不足、目标难度过大、没有熟练职员可用、没有足够技术积累等都是约束。很多评估者只考虑"技术上能不能做",忽视了资源条件,得出过于乐观的结论,对项目实施是灾难性的。

💰 7.2.2 成本效益分析:算清经济账

成本三部分

  • 🏗️ 基础建设支出:房屋设施、办公设备、平台软件、工具软件
  • 💸 一次性支出:咨询费、调研费、管理费、培训费、差旅费
  • 🔄 运行维护费用:设备租金、维护费、消耗品、通信费、人员工资

收益三类

  • 💵 一次性收益:开支缩减(运行效率改进)、价值增升(资源利用改进)、多余设备出售回收
  • 📈 非一次性收益:系统生命期内按月/年的持续性收益
  • ❓ 不可定量收益:服务改进、操作失误风险减少、信息掌握改善、组织形象提升

三个关键指标

  • 📊 收益/投资比=系统生命期收益/投资
  • ⏱️ 投资回收周期=收益累计超过支出累计的时间点
  • 🔍 敏感性分析:关键因素(生命期长度、工作负荷、处理速度、配置等)变化时对开支收益的影响范围

📄 7.2.3 可行性分析报告

GB 8567-1988规定了格式。最重要的内容包括:项目背景(问题/环境/限制)、管理概要和建议、候选方案及选择标准、系统描述、经济可行性(成本/效益)、技术可行性(技术风险)、法律可行性、用户使用可行性、其他问题。

审查流程:项目负责人审查(内容可靠性)→ 上级主管审阅(项目地位评估)→ 得出"行或不行"的决断

🔧 7.3 方案的制订和改进:从"做什么"到"怎么做"

问题定义阶段回答了"系统目标是什么",方案制订阶段回答"系统如何实现"。主要工作三方面:

1. 确定软件架构——分析模型结构(功能分解体系或OO的类/关系图)、关键实现要素(用例、控制类、组织模式、算法模型)、特性解释。

2. 确定关键实现要素和手段——关键用例/控制类/组织模式/算法模型;选定基础计算平台(OS/数据库/Web服务器/中间件)、选定开发工具和环境。

3. 归结目标到最适合的计算体系——比较标准计算体系(.NET/J2EE等)与目标的匹配程度。典型的三层计算模式:

  • 🖥️ 表示层:用户界面(C/S客户端、B/S浏览器中HTML/DHTML/Script/Applet)
  • ⚙️ 事务逻辑层:处理请求、完成商务逻辑计算。COM是心脏,IIS+MTS管理组件
  • 💾 数据服务层:提供数据来源,通过连接共享减少连接数

JSP模式:JSP(表示层)→EJB(业务逻辑层)→JDBC+数据库(数据服务层)。小规模网站JSP直接写逻辑=表示层和逻辑层合并。J2EE中EJB容器屏蔽了数据服务层。

归结到计算体系像"选装修风格"——你拿出需求(要几室几厅、什么风格),然后和标准方案(北欧/日式/中式)匹配。不要生搬硬套某种"流行的"体系,也不要盲目追求"先进的"——要点是"适合程度"

🏚️ 7.4.1 遗留系统评价:老系统怎么办?

遗留系统=不知道怎么处理但对组织至关重要的老系统。特点:① 能完成重要业务但不完全满足 ② 性能落后技术过时 ③ 大型系统融入业务运行维护困难 ④ 没用现代工程方法,基本没文档。

评价方法包括5个活动

  • 启动评价:了解系统是否至关重要、商业目标、演化需求、期望寿命、使用期限、技术状态、企业是否愿意改变、是否有能力承受
  • 商业价值评价:概要级(咨询、问卷、评价)+ 详细级(不符合业务规范的风险分析)
  • 外部环境评价:硬件(供应商/维护费/失效率/年龄/功能/性能,每项1-4分)、支撑软件(OS/数据库/编译器/网络软件/应用软件)、企业基础设施(企业类型/组织技术成熟度/培训/支持人员水平/改变意愿)
  • 应用软件评价:系统级(整体不可分)+ 部件级(各子系统特征:复杂性/数据/文档/依赖性/合法性/维护记录/大小/安全性)
  • 分析评价结果:技术水平公式 OR=(P1·ORH+P2·ORS+P3·OAF+P4·ORA)/4,加权平均后与商业评价比较,分四象限

🗺️ 7.4.2 遗留系统演化策略:四象限决策

按技术水平(高/低)和商业价值(高/低)分四个象限,每种采取不同策略:

象限 技术水平 商业价值 策略 做法
第3象限🗑️ 淘汰全面重开发新系统替代
第4象限📦 继承兼容旧系统功能模型和数据模型,新老并行后逐渐切换
第1象限🔧 改造增强功能+改造数据模型
第2象限🔗 集成互连系统架构,作为从属系统集成
🎮 实战场景:饿了么么有个老版的订单系统——技术老(ASP写的)但业务离不开它→第4象限,继承策略,新系统兼容老系统的功能和数据,新老并行运行一段时间后切换。另一个部门的小工具——技术新但只服务一个小部门商业价值低→第2象限,集成策略,通过接口集成到主系统。原来那个被黑过的旧后台——技术老价值低→第3象限,淘汰,重新开发。刚上线半年的推荐引擎——技术新价值高→第1象限,改造,增强功能。
💡 秒懂技巧:四象限口诀——低低淘汰,低高继承,高高改造,高低集成。记住"高低"的顺序是先技术后商业。"淘汰"不是浪费——通过理解老系统功能可以降低新系统开发风险。即使是今天最先进的系统,明天也会成为遗留系统。
🎬 故事结局:小明带着团队把三个项目过了一遍——智能推荐系统:核心价值高(和转化率直接相关),技术可行(团队有AI基础),经济可行(200万投入预期10%转化率提升),方案:自研。供应链平台:核心价值中等,但执行可行性有风险(商家数据质量参差不齐),决定:先做原型验证。骑手调度引擎:技术难度大(需要实时优化算法),人才储备不足,决定:购买第三方关键技术集成。

老王感慨:"原来不是什么都要自己搞,系统规划的本质是选择和取舍。"但项目一旦确立,怎么分析需求、怎么设计系统?第8章的系统分析与设计方法在等着他。