首先定义一下这里所谓的 “target miss” 指的是啥:性能优化
我讲几个亲身经历的故事。微信
## 仅凭 “猜测” 而定下目标换来的必定是无效的投入网络
小 A:目前我们的直播延时比较高,想一想有啥办法下降延时到 3s 内 ?
小 B:我猜应该是咱们使用的 RTMP 协议底层是基于 TCP 的,因此延时比较大,咱们启动一个新的项目,设计一套基于 UDP 的协议来替换 TCP 吧
小 C:肯定要启动这个新项目麽?咱们要不要先调研一下当前直播的延时具体主要来自哪里?
小 D:小 C 说得对,其实我前面有调研过的,目前我们的延时主要来自播放器默认在开始播放前有 5s 的缓冲呢,底层的 TCP 协议并非真正的瓶颈呢 !
小 B:…………
## 什么是 “手段”,什么是 “目标”?app
小 A:据说我们自研的 video codec 不错,国际比赛都拿奖了,我本双月的目标就去完成它的对接和上线吧?
小 B:咱们当前产品和用户体验的主要问题有哪些?这个自研的 codec 库肯定是能够针对性改善咱们当前遇到的问题麽?
小 A:额,的确没有想过,我先梳理一下当前亟待改善的 badcase 吧
小 B:好的,记住,开发和对接新功能新 feature 只是手段而已,手段一般是为解决目标服务的,它不该该直接成为目标
## 最佳的目标验收方式是关注最终带来的收益ide
小 A:个人目标是完成埋点的开发和上线
小 B:你能够思考更进一步,这套埋点系统最终的目标 “使用者” 是谁 ?它但愿解决什么问题 ?咱们验收这个任务的目标是否达成,并不该该只是看它是否上线,而是要看它最终是否解决了实际的问题
小 A:嗯嗯,明白了,个人目标应该是以最终产生收益的视角来制定,这样才能更好地验证成效,防止虽然系统上线了,可是实际上问题多多彻底不可信不可用
小 B:对的,这一点也包括平时咱们作的一些功能和优化,开发和上线不是目标,实际线上给业务或者用户带来了多少收益才是关键
## 目标是要可衡量和评价结果的,而不只仅是 “口号”性能
小 A:咱们今年的目标是创建一套覆盖全面的测试系统和流程,提升版本输出的质量
小 B:嗯,这个口号听起来没有问题,不过咱们怎么衡量它的达成状况,评判它作得好很差呢?
小 A:我想一想,是否可使用 “缺陷逃逸率” 来评价呢?咱们以版本为周期,关注 “缺陷逃逸漏斗”,看看从 “设计 -> 单元测试 -> 研发自测 -> 自动化测试 -> QA 版本测试 -> 灰度阶段 -> 全量阶段” 每个环节的缺陷状况,按期复盘和归因,目标是检验缺陷是否可以尽量在更早的环节被消灭,从而指导整个流程的迭代和验收?
小 B:嗯嗯,没问题~~
## 合理的目标能更好地指导落地的方向和过程单元测试
PM:为啥咱们总是吹本身的产品抗弱网能力多么多么好,可是刚才的会议过程当中,依然有部分视频画面出现了大约 5s 左右的卡顿,以及短暂的语音断断续续?
研发:通过排查,肯定是一个突发的网络极度恶化带来的问题。mark:一个好的视频会议产品,并非在全部弱网环境下 100% 不出现任何卡顿或者其余问题,由于突发的各类网络恶化并不都能彻底作到提早感知和预测,一个好的产品,优势在于能快速地响应和恢复,让总体的体验在最短的时间内获得改善,达到一个新的平衡。PS:就如同新冠疫情,不一样国家的应对表现,不也有如此差别么?
PM:赞,理解了,因此咱们合理的目标应该是在常规弱网下不出现影响用户体验的问题,而在极端和突发恶化的条件下,追求更快的响应速度和体验平衡?
研发:嗯嗯,是的。
## 学会使用 “横向对比” 和 “纵向思考” 来明确目标尺度测试
小 A:我想制定一个 CPU 性能优化的目标,可是到底该定义到什么值合适呢 ?
小 B:一般目标的制定能够从两个维度进行,一个是 “横向对比”,即在同等条件下,竞品作到什么程度了,咱们的差距有多少,那么,缩小这个差距值就是咱们的目标尺度;另外一个则是 “纵向思考”,也就是本身跟本身比,深度思考最终咱们指望达成的状态是什么样的?拿 CPU 性能优化来说,咱们最终是指望咱们的产品能在什么级别和配置的机型上持续流畅运行多久?那么这个最终的愿景就能够转化为咱们目标的尺度
小 A:明白了,多谢建议。
## 用测谎的方式判断目标是否想清楚了优化
小 A:客户 PM 明确提出要作这个需求,麻烦排期一下?
小 B:能讲讲这个需求的背景麽?明显这个功能跟客户产品的实际场景并非很 match,为啥必定要开发这个 ?
小 A:嗯,好的,我去挖一挖……
小 A:客户 PM 果真没有深刻思考过,彻底是他们的领导拍脑壳的想法,通过沟通,判断收益并不明显,最终决定不上这个功能了
小 B:嗯,还好挖了挖,省掉了无效的人力投入。给你一段个人经验总结:“判断一我的是否说谎其中一个办法是不断追问,说谎的人每每最后就会放弃,而没说谎的人会一直坚持最初的说法。同理,判断一个客户的需求是否真的靠谱真的想清楚了,亦是如此~~ 服务客户若是不去挖需求背后的东西,仅知足于技术方案的应答,就永远成为不了行业专家~~”
## 目标是要主动对齐的,连带问题也是咱们的责任ui
小 A:老大,来看看个人目标和计划 ?
小 B:我看计划是依赖了小 C 和小 D 两个团队及时提供配合,有跟他们对齐目标麽 ?
小 A:没有呢,到时候由于他们的延期和问题,致使项目失败,责任不在咱们吧?只要把本身的本分作好就好了吧 ?
小 B:不要有这种想法,最终一件事要作成,是离不开全部相关同窗齐心合力的,你们目标必定要主动对齐,目标是要你们一块儿背才有达成的可能,一样,责任也同样要一块儿背,才能真正并肩做战。
小 A:嗯嗯,明白了。
## 人们常说 “初心” 易忘,其实 “目标” 又未尝不是
小 A:客户这个问题你去跟一下吧 ?
小 B:好的,我以为这个问题,若是去优化一下 xxx 系统,就能很好地避免
小 A:好的,你去推动吧
小 B:嗯,对了,xxx 系统的优化,须要先解决 ccc 模块的重构,不然不太好改造
小 A:行,你先重构 ccc 模块吧
小 B:no problem,开干了……
小 A:几周过去了,问题有进展了麽 ?
小 B:抱歉,我重构 ccc 模块的时候,发现 ddd 模块和 eee 模块有一些值得优化的点,因此最近重点投入在这里了
小 A:天啦,你还记得最初客户的问题是什么了吗 ?
小 B:…………额……………
个人故事就讲到这里了,手头其实还有不少不少,限于篇幅就不一一展开了,相信你们身边必定还有更多的变种。
我在职场已经呆了不少年,看到了太多的团队太多的人,天天都忙忙碌碌,加班加点,看似很辛苦,可是实际上却走了不少不少的弯路,也多多少少作了不少无效功。最近我一直在思考如何才能让团队和我的的工做变得更加 “高效”,总结下来可能也并无什么特别的方法论,最重要的事情莫过于能唤起全部人(特别是各级 leader)的 “目标感” 和 “批判性思惟”,对本身和团队作的每一件事,想清楚目标是什么,想清楚预期的收益和评价标准,而且保持对齐与专一。
这篇总结就先写到这里了,固然,知易行难,你们有任何实践的问题和困难,欢迎随时来信 lujun.hust@gmail.com 交流,也能够关注个人微信公众号 @Jhuster 最新的资讯。