zoukankan      html  css  js  c++  java
  • 沙雕与大婶 | 把5W2H融入你的架构设计吧

    故事背景:
    沙雕在公司一个开放API团队工作,平时的工作内容主要是做一些对外API项目开发,负责跟第三方系统对接。虽然工作也几年了,但是一直都是按照上级做好的设计文档和分配的任务去做,很少自己去做设计和思考。有一天团队老大跑路了,部门老板想提拔他做团队老大的工作,但需要负责一个新项目架构设计工作来试探下他的能力,因此他感到很迷惘,因为之前没有尝试过,既怕自己能力不足也怕失去这个难得的机会,他悄悄去请教部门里的一个大婶。

    记住5W2H

    在确定新的解决方案或对现有项目优化的解决方案要求时,无论你项目规模如何,都值得使用5W2H这思维工具

    • 谁(WHO)
    • 是什么(WHAT)
    • 什么时候(WHEN)
    • 哪里(WHERE)
    • 为什么(WHY)
    • 怎么样(HOW)
    • 多少(HOW MUCH)

    WHO(谁)

    WHO负责确定解决方案中的各个参与者和参与者。

    这些是您要针对预期解决方案的“对象”提出的各种问题的示例:

    • 需要使用这个解决方案或者受影响?
    • 从这个解决方案中受益?
    • 为这个解决方案付费?
    • 将支持该解决方案?
    • 有权执行解决方案中的各种活动?
    • 属于解决方案中的哪些角色?
    • 来维护这些数据?
    • 来管理解决方案?
    • 遗漏了谁?

    WHAT(内容)

    WHAT 负责识别这个预期解决方案中的各种功能,数据,输入,输出,交付,软件工件等。
    这些是您应该针对预期解决方案的“内容”提出的各种问题的示例:

    • 解决方案的目的和目标 是什么(应以业务术语说明)?
    • 用户需要在解决方案中/与解决方案一起 做什么
    • 解决方案需要获取,存储,生成,输出等 哪些数据元素
    • 什么 是主数据元素?
    • 什么 是交易数据元素?
    • 主数据元素的权威 来源是什么
    • 解决方案需要执行 哪些业务规则
    • 解决方案需要支持和/或促进 哪些流程
    • 解决方案需要支持和/或促进 哪些交易
    • 解决方案需要与其他 哪些系统交互
    • 解决方案需要与其他系统交换 哪些数据元素
    • 解决方案的容量 是多少(例如,用户数量,交易数量,数据增长率等)?
    • 解决方案可以解决或缓解 哪些问题
    • 我遗漏了 什么

    WHEN(时间)

    WHEN 解决预期解决方案中的各种基于时间事件和活动等问题。

    这些是您应该针对预期解决方案的“时间”提出的各种问题的示例:

    • 这解决方案 何时 需要准备好实施?
    • 用户 什么时候 需要能够执行特定的活动?
    • 何时 需要进行定期执行(例如,每天,每周,每月,每季度,每年等)?
    • 这解决方案 什么时候 需要可用(正常工作时间,24/7/365等)?
    • 这解决方案 何时 会不可用?
    • 是否有任何活动需要捕获 历史 记录?
    • 什么时候 可以从解决方案中清除数据?

    WHERE(位置)

    WHERE 解决一个解决方案的各种地理或者逻辑方面问题。

    这些是您要针对预期解决方案的“位置”提出的各种问题的示例:

    • 用户 在哪里
    • 用户需要 从哪里 使用该解决方案?
    • 用户需要 从哪些 设备与解决方案进行交互?
    • 解决方案可以 在哪里 托管?
    • 持久数据将存储 在哪里
    • 临时数据将存储 在哪里
    • 备份将存储 在哪里

    WHY(原因)

    WHY 要处理施加在解决方案上的各种驱动因素和/或约束(内部或外部)。

    这些是您应针对预期解决方案的“原因”提出的各种问题的示例:

    • 为什么 需要该解决方案(例如,业务条件的变化,新计划,遗留系统的更换,技术升级等)
    • 为什么 是现在要做?
      • 该解决方案旨在满足哪些法定或组织规则(即,成为驱动解决方案的规则)?
      • 此解决方案需要满足哪些法定或组织规则(即,作为约束解决方案的规则)?

    HOW(方式)

    HOW 解决涉及的过程是如何进行的。哪些步骤,活动和相关变量会影响它。

    这里的一个技巧是使用流程图可以更好去表示它。

    这些是您应该针对预期解决方案的“以什么方式”提出的各种问题的示例:

    • 怎么 去实现这个解决方案
    • 怎么 运用这些开源框架在这个解决方案中

    HOW MUCH(多少)

    HOW MUCH 解决预期解决方案中的数量和成本等问题。

    这些是您应该针对预期解决方案的“多少”提出的各种问题的示例:

    • 这解决方案可以比原有项目提升 多少 性能?
    • 这解决方案需要产生 多少 费用
    • 需要用到 多少 人力

    案例分析

    老板交给你一个新项目,5月中旬需要对外提供一个标准API,开放公司某些内部产品数据能力。

    大致需求:本次开放的产品是信用证,开放信用证状态数据给第三方机构查询,数据是从公司某数据平台获取,通过公司标准API提供给第三方合作机构,与他们系统进行对接,客户会从第三方机构APP或者门户网站登陆去获取数据,预算大约20万美金。

    初步需求分析

    WHAT WHO WHEN WHERE WHY HOW HOW MUCH
    开发信用证状态数据 提供给第三方机构企业用户 5月中旬 从数据中台获取数据 可以提升公司获客能力 标准开放API方式 预算 $200000


    有兴趣的朋友,欢迎加我公众号一起交流,有问题可以留言,平时工作比较忙,我也抽时间尽量回复每位朋友的留言,谢谢!

  • 相关阅读:
    [Codeforces 1214A]Optimal Currency Exchange(贪心)
    [Codeforces 1214D]Treasure Island(dfs)
    [BZOJ 3512]DZY Loves Math IV(杜教筛)
    [BZOJ 3930] [CQOI 2015]选数(莫比乌斯反演+杜教筛)
    [BZOJ 2154]Crash的数字表格(莫比乌斯反演)
    【莫比乌斯反演+分块】BZOJ1101-[POI2007]Zap
    【状态压缩DP】BZOJ1087-[SCOI2005]互不侵犯King
    【概率DP】BZOJ4318-OSU!
    【最大权闭合子图/最小割】BZOJ3438-小M的作物【待填】
    【莫比乌斯反演】HDU1695_GCD
  • 原文地址:https://www.cnblogs.com/evan-liang/p/12541533.html
Copyright © 2011-2022 走看看