华为|如何写出一篇好的技术方案?

华为|如何写出一篇好的技术方案?

文章图片

华为|如何写出一篇好的技术方案?



近期在写某个项目的技术方案时 , 来来回回修改了许多版 , 很是苦恼 。 于是 , 将自己之前写的和别人写的技术方案都翻出来看了几遍 , 产生了一些思考 , 分享给大家 。
我们为什么需要写技术方案?总结下来无非是几点 , 从不同人的视角来看:
产品:验证技术方案是否能够 match 上产品方案 测试:验证技术方案对测试方案是否有足够准确的输入 同事leader:参与技术方案评审 , 验证技术方案的合理性 新人(不单单指新同学也指新接触这一块的同学):拿到技术方案可以很快对某一块的事情熟悉起来 什么样的技术方案是一个好的技术方案 我们都知道技术方案是指导具体开发工作的 , 可以分别从开发的事前、事中、事后来讨论这个问题 。
事前
明确的目标:整个技术方案要达成什么目的 低沟通成本:产品测试能从技术方案上获取足够的输入 , 不需要反复找你确认 技术选型思考:为什么要这么做?和业内方案相比有什么好处和坏处 , 如何权衡的 事中
少调整:尽可能少的技术方案需要调整 ,否则无法完成开发任务 事后
少补丁:尽可能少的 bug 或者遗漏 可扩展可复用:相对简单的改动就能支持新增需求 , 类似场景可复用不需要重复开发 一篇好的技术方案可以贯穿整个研发的生命周期 , 并且能起到很好的指导意义 , 就如同写小说之前作者必须出一个大纲的逻辑是一致的 。
如何写好一篇好的技术方案 那么 , 如何写出一篇好的技术方案呢?下面列举出笔者认为应该做到的一些点 。
清晰的目标
一份技术文档需要有一个清晰的目标(业务需求建议自己总结而不是 Copy from PRD , 技术自发的那肯定得自己总结) , 那目标怎么来的呢?是从需求里转化过来的 。 那么 , 如何将对应的需求转化为一个清晰的目标?我认为最重要的是要尽量定义一个可衡量的标准 。 需求的种类一般来说就两种 , 分别是:
1.产品类需求——业务方 or 产品方发起提给技术 , 包括但不限于以下几种:
页面交互:能提升多少的运营操作效率 , 多少 PV、UV 这种可量化的数字? 业务 SOP 调整:带来的业务价值是什么?是能降多少本还是提升多少时效? 数据订正:订正能解决什么问题?防止多少钱未结算?又或者是防止多少客诉? 2.技术类需求——技术自发提出 , 包括但不限于以下几种:
性能优化:优化多少?20%、30% 还是 50%? 数据隔离:隔离的范围是什么 , 涉及多少张表 , 多少数据?可以减少当前的什么问题?减少多少? 各种小工具:没有小工具之前是什么样?有之后是什么样?可以带来什么好处? 研发效能提升:提升多少?有没有可以量化的指标?而不是为了做而做 。在众多的需求当中还有一些是我们要去辨别的伪需求——不是用户真正想要的需求 , 如用户想要将一个飞机改造成火箭 , 但是产品可能提过来的仅仅是把飞机的两个翅膀砍掉 , 那么砍掉翅膀就能变成火箭了吗?明显不能 , 所以这种需求一定要注意鉴别 。
大纲图
有句话叫“不谋全局者不足谋一域” , 在技术方案中我想也是如此 。 在一个技术方案中 , 一个大纲图是不可或缺的, 有的人叫它技术架构图 , 有的人叫它数据流转图 , 这都不重要 , 重要的是我们能从这张图中看到整体的脉络 , 那么这张图需要有哪几个要点呢?

相关经验推荐