法则三:架构师如何在一定时间内最大化自己的增量价值

news2024/11/18 23:32:40

法则三:架构师如何在一定时间内最大化自己的增量价值

作为一个架构师,必须要创造足够的商业价值,才能保障自己职业的长期。

那么你作为架构师,该如何为你的公司、部门或团队提供可量化的增量价值呢?
主要有扩大收入与减少成本两种路径。

今天这节课,我们就结合几个真实的案例来具体分析一下。如何寻找扩大收入的机会?有的架构师不关注软件之外的事情,比如很少关心公司或部门的收入。这种性格虽然可以让他专注于软件工作,但从长期来看,如果不去思考如何通过技术为公司创造商业价值,那就很难保持或扩大自己在团队的影响力,职业发展也可能受挫。所以哪怕没有人向你施加为企业增加营收的压力,你也要主动思考,你或你的部门,该怎么为公司创造更多的营收。那么我们该从哪里寻找扩大营收的机会呢?除了之前提到的深度理解用户心智和商业模式,以及我们经常遇到的不同的横向问题,比如稳定性、安全、可测试性、可维护性之外,还有其他方法吗?你可能听说过“在小数据里看大机会,在大数据里看小机会”这句话,这其实适用于我们所有技术人。前半句指的是从个性需求中抽象出共性的机会。也就是从解决一个具体问题的过程中得到启发,并从中找到一个可以规模化应用的机会。比如做用户调研时,你发现有一个用户总是截图之后再通过微信把商品发给另一个人。那么你就会意识到,可以开发一个分享工具,通过小程序和 DeepLink 来获得更多的社交裂变。后半句指的是靠数据来打磨用户体验。也就是通过数据分析找到机会点,然后通过产品和技术的改进,不断提升转化减少损失。这是算法和数字化运营的常见办法。比如淘宝 App 的首页跳出率是 2%,就是通过数据分析和打磨而不断提升的。

如何寻找减少成本的机会?

有些人会过分强调极客精神,事事追求完美。我觉得出发点是好的。
但在一个企业中,追求完美必须以成本可控为前提。

我发明了一个方法,能够准确度量性能优化后每个页面的预期产出。而我们要做的,就是按预期产出除以预期投入成本,也就是预期回报的 ROI 来排序,再依次做优化。具体的公式比较长,我就不在这里展开了。这个算法的核心原理展示在这张图里[2]:

在这里插入图片描述

如图所示,我们根据每个页面转化率分布的直方图,以及预期的性能优化后的结果,预测出如果不做性能优化而损失的该页面的转化率。我们把这个预测值叫做页面的性能损耗 Lpage。因为我们有全链路的转化漏斗和流量统计,所以如果优化某个页面,把性能损耗追回之后,那么这个优化对下游,以及对订单和 GMV 的预测,就可以通过大数据统计提前算出来。所以我们就以优化订单数为目标做了架构规划,然后统筹我们可以做的一切优化动作。如下图所示,本来完全不等价的优化动作,有的在网络层,有的前端,有的在后端。这下子就可以在一个指标上做比较了,因为我们的每一个优化动作最终都能被归因成了订单贡献。

在这里插入图片描述
我是如何践行生存法则的?这个架构项目成功的关键,也正是我一直在遵照我这两节课介绍的生存法则。现在让我们一起通过这个性能优化的案例来检验一下,看看我如何用生存法则来指导架构活动。另外,我们通过案例检验的过程,会重新总结并强调我们这两节课传递的一些核心观点。

第一,你作为一个架构师,在架构设计中要追求商业价值。我们做性能优化时,不是单纯做性能指标的优化,而是一上来就以提升商业价值为目标。因此我们的优化目标是订单数,而不是一个技术指标。

第二,想要创造商业价值,就必须不断度量你创造的增量价值,这样才能确保自己处在价值创造的前沿。并且能够在一个相对未知的环境下,不断寻找自己的增值空间。从这个项目的开始,我们就没想过要做全站的性能优化,而是发现了回报最大的单点,做针对性的优化。为了做到这一点,我发明了准确度量性能损耗的公式,找到了部门层面的单一优化目标(订单数)。并把我们所有可能的优化动作,全部归因到这个单一的优化目标上去。有了这个可度量的价值,我们就不再做地毯式的性能优化,而是做具有针对性的、回报最高的性能优化动作。此外,我们也没有越做越宽。当发现性能优化的回报不够大了,我们就不再做性能优化了。而是换个赛道去创造价值:做现有网络的性能监控。最好的证明就是当时我们和全球研究实力最强、监控能力最完善的 Akamai 合作。而且我们发现,我们对 CDN 网络的监控能力,在很多国家要远远胜过 Akamai。甚至到后来,我们干脆请 Akamai 的运维人员接了我们的部分报警。在此之后,我们又把应用方向再次扩大到业务转化问题排查等等。

第三,作为一个架构师,要最小化整个架构活动的成本。你要做的是:确保最终方案的可行性;寻找最优的实施路径,确保最终能够完成实施;试图最大化最终解决方案的结构性,以最小成本放大你的产出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/81076.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022.12.11 学习周报

文章目录摘要文献阅读1.题目2.摘要3.传统RNN存在的问题4.RNN与IndRNN的对比4.1 隐含层状态更新公式4.2 结构示意图4.3 IndRNN的优势5.IndRNN的分析5.1 RNN5.2 LSTM5.3 IndRNN的初始化5.4 梯度截断5.5 IndRNN6.实验结果6.1 Adding Problem6.2 Sequential MNIST Classification6.…

Spring 体系常用项目

如今做Java尤其是web几乎是避免不了和Spring打交道了,但是Spring是这样的大而全,新鲜名词不断产生,学起来给人一种凌乱的感觉,我就在这里总结一下,理顺头绪。 Spring Spring 概述 Spring 是一个开源框架&#xff0c…

R语言学习笔记——基础篇:第六章-基本图形

R语言 R语言学习笔记——入门篇:第六章-基本图形 文章目录R语言一、条形图1.1、垂直与水平条形图补——数据为因子时绘制垂直与水平条形图1.2、堆砌条形图与分组条形图1.3、数据整合条形图1.4、条形图的微调1.5、棘状图二、饼图三、直方图四、核密度图4.1、简易核密…

CSS基础-装饰,基线,光标类型,边框圆角(胶囊),文字溢出,元素隐藏,边框合并,css画三角形...

CSS基础-装饰 目录CSS基础-装饰1.1 认识基线(了解)1.2 文字对齐问1.3 垂直对齐方式(拓展)项目中 vertical-align 可以解决的问题2.1 光标类型3.1 边框圆角3.2 边框圆角的常见应用4.1 溢出部分显示效果5.1 元素本身隐藏(拓展)元素整体透明度(拓展)边框合并(拓展)用CSS画三角形技…

关键字(五):const和volatile

关键字一."令人误解"的关键字—const1.const的基本特质2.const的各种应用场景1.修饰变量2.修饰数组3.修饰指针4.修饰函数的参数5.修饰返回值二.最易变的关键字—volatile一."令人误解"的关键字—const 1.const的基本特质 简单的示例 const所修饰的变量不可…

[附源码]计算机毕业设计海南与东北的美食文化差异及做法的研究展示平台Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis MavenVue等等组成,B/S模式…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java在线图书馆信息管理系统g6977

好的选题直接决定了毕业设计好坏,甚至决定了能否毕业。今天,我们就来聊一聊毕设该怎么选题。 这里分三个选题标准。 第一,参考所在学校往年选题类型和难度 可以向学长学姐了解往年的选题类型,以及使用的技术,不用向…

Kotlin如何延时准确的循环执行事件,比如倒计时或每一秒执行一次事件

前言 延时循环执行事件很简单,且有很多方式,但想要延时相对精确,就需要稍微设计一下了 普通的方案 线程内阻塞的方案 这种方案很简单,示例代码如下 while (true){block()//执行逻辑Thread.sleep(1000)//延时1秒} 但缺点也是显而易见,其是线程阻塞的,比较浪费资源 异步或挂…

26-Vue之ECharts-柱状图

ECharts-柱状图前言柱状图实现步骤柱状图常见效果标记显示前言 本篇来学习下柱状图的实现 柱状图实现步骤 ECharts 最基本的代码结构准备x轴的数据准备 y 轴的数据准备 option , 将 series 中的 type 的值设置为: bar <!DOCTYPE html> <html lang"en">…

【算法】动态规划 ⑥ ( 骑士的最短路径 II | 问题分析 | 代码示例 )

文章目录一、问题分析二、代码示例骑士的最短路径 II : 在 国际象棋 中 , 骑士 类似 与 象棋 中的 马 , 走 " 日 " 字 格子 ; 骑士有 8 种走法 : " 日 " 字 格子 , 参考 百度百科 左走一格向前走两格左走一格向后走两格左走两格向前走一格左走两格向后走…

Jackson注解自定义数据脱敏策略

Jackson注解自定义数据脱敏策略1.前言2.脱敏注解3.定义好一套需要脱敏的规则4.自定义JSON序列化5.在实体类上标注对应的脱敏规则5.写一个接口进行测试1.前言 有时候&#xff0c;我们返回给前端的数据需要脱敏&#xff0c;避免用户信息被泄漏&#xff0c;就像你点外卖一样&…

node.js安装+卸载,npm+cnpm安装+卸载 vue安装+卸载

node.js安装卸载&#xff0c;npmcnpm安装卸载 vue安装卸载 使用指令整理&#xff1a; #获取node.js版本号&#xff08;验证电脑是否安装&#xff09; node -v #node.js官网地址 #https://nodejs.org/en/ #获取npm版本号&#xff08;npm:Nodejs软件包管理工具)&#xff08;验证…

unix网络编程(四) 线程池并发服务器

线程池并发服务器概念线程池和任务队列任务队列线程池操作线程池的函数初始化线程池销毁线程池向线程池添加任务任务的回调函数测试概念 线程池是一个抽象概念&#xff0c;可以简单的认为若干线程在一起运行&#xff0c;线程不退出&#xff0c;等待有任务处理。 为什么要有线程…

通过选择集获取元素

通过使用内置对象document上的getElementsByTagName方法来获取页面上的某一种标签&#xff0c;获取的是一个选择集&#xff0c;不是数组&#xff0c;但是可以用下标的方式操作选择集里面的标签元素 <!DOCTYPE html> <html lang"en"> <head><me…

Javaweb安全——Weblogic反序列化漏洞(一)

从原生反序列化过程开始谈起。 原生反序列化 序列化就是把对象转换成字节流&#xff0c;便于保存在内存、文件、数据库中&#xff1b;反序列化即逆过程&#xff0c;由字节流还原成对象。 大致是这么一个过程&#xff0c;简单画了个图&#xff1a; 测试类如下&#xff1a; p…

spring mvc——@RequestMapping注解的作用

RequestMapping注解 1、RequestMapping注解的功能 从注解名称上我们可以看到&#xff0c;RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来&#xff0c;建立映射关系。 SpringMVC 接收到指定的请求&#xff0c;就会来找到在映射关系中对应的控制器方法来处理…

从源码编译linux内核并运行一个最小的busybox文件系统

从源码编译linux内核并运行一个最小的busybox文件系统 环境基础&#xff1a; 开发环境&#xff1a;ubuntu 18.04 linux源码版本&#xff1a;linux-4.9.229 busybox源码版本&#xff1a;busybox-1.30.0 qemu-system-x86_64版本&#xff1a;2.0.0 这篇文章将按照如下4个步骤来…

【hexo系列】01.hexo环境搭建及github.io搭建

文章目录基础环境要求安装hexohexo初体验创建hexo工程初体验创建自己的第一篇笔记推送到github网站新建github.io推送到github推送到github(ssh方式 免密)参考资料基础环境要求 检测Node.js是否安装成功&#xff0c;在命令行中输入 node -v 检测npm是否安装成功&#xff0c;在…

机器学习中的数学原理——多重回归算法

这个专栏主要是用来分享一下我在机器学习中的学习笔记及一些感悟&#xff0c;也希望对你的学习有帮助哦&#xff01;感兴趣的小伙伴欢迎私信或者评论区留言&#xff01;这一篇就更新一下《白话机器学习中的数学——多重回归算法》&#xff01; 目录 一、什么是多重回归 二、案…

物联网开发笔记(60)- 使用Micropython开发ESP32开发板之SPI接口控制Micro SD卡TF卡模块

一、目的 这一节我们学习如何使用我们的ESP32开发板来通过SPI接口控制Micro SD卡TF卡模块。 二、环境 ESP32 SPI接口控制Micro SD卡TF卡模块 Thonny IDE 几根杜邦线 接线方法&#xff1a; Soft SPI接线说明 # 接线说明: # MISO -> GPTO13 # MOSI -> GPIO12 # SCK …