作者:马丁∙阿伯特、迈克∙费舍尔
翻译:陈斌
目的:不以实际技术论格局
笔记:
⊙ 2018.9.8的读书笔记
1、合适的人、合适的行为、合适的时间
合适的人:具有合适的知识、技术和能力;
合适的行为:此人能与其他的员工融洽相处,并认同公司的文化和价值观
2、组建组织:
组建组织要弄清楚组织的产出是什么,“产出决定规模”;
团队规模的增长,增加成员所带来的“每个成员单位沟通和协调成本”
3、管理与领导
管理是与“推”(pushing)相关的活动;
领导是与拉(pulling)相关的活动;
领导是设定目的地和通往目的地的路线图,管理是设法叨叨目的地;
管理就是度量、度量失败即管理失败
领导活动包括:制定愿景、定义使命、设定目标、营造文化、驾校考核指标选择、激励、制定标准;
管理活动:评估目标,绩效考核指标衡量、项目管理、绩效考核、员工指导、员工培训、评估标准。
4、可扩展性和可用性失败的共同原因是职责不清
5、认知冲突:谁去做、怎么做;
情感冲突:集中在角色和所有权方面。
6、领导具有“高管盘问”(executive interrogration)这个关键能力
懂得在什么时候去调查、去哪里调查、直至找到满意的答案
7、需要具备商业、财务、市场方面的知识
8、质量保证一定要聚焦自动化测试,而不是手工测试
9、RASCI工具(矩阵)---》 用于清晰角色和职责
R:负责(responsible)对项目或任务的完成负责的人
A:批准(accountable)项目关键决策的批准人
S:支持(supportive)为项目完成提供资源的人
C:咨询(consulted)为项目提供数据或信息的人
I:知情(informed)需要了解项目相关情况的人
备注:X轴为独立贡献者或组织、Y轴为每一项活动
10、一个团队如果不能养成遵守规范和标准的习惯,本质上是组织容忍了研发质量标准的降低
11、创新力<------>关系的多样性:可以度量团队里个人与其他人以及专业领域联系的多寡衡量
12、达到一个目标的一个窍门是移动目标线
13、确定最佳团队规模的时候:
四大因素:管理经验、在职的时间、管理的任务以及业务的需求
14、领导力:影响一个组织或个人达成某个特定目标的行为的力量
15、书籍《和谐领导》(resonant leadership):专注、希望和同情是改变个人的三个要素;
360度评议(360-degree review process)
16、“以人为本”检验:对于成功组织内经验丰富的领导,看看他手下有多少人曾经不断跟随这位经理升迁就能知道;
17、勇敢和决策是一个领导必须要关注的事情
18、推崇的一个信条:“你想让大家做什么,那么就教导什么,你教导什么,你的标准就是什么”
19、作为领导/经理,你所做的每一件事情都必须和股东的利益保持一致。
你的工作就是要使股东财富最大化。其中财富包括情感财富
20、交易型领导和变革型领导
变革型领导----》团队用信念去影响
21、愿景、使命、目标
(1)一个愿景应该符合下面这些标准:
Δ 对理想未来的生动描述
Δ 为股东创造价值很重要
Δ 可度量
Δ 激动人心
Δ 结合信仰的因素
Δ 大致不变,但可根据需要修改
Δ 容易记忆
(2)使命应符合下列这些条件。(使命是引导你通过愿景的总路径或计划)
Δ 当前状态和行为的描述
Δ 有目的感
Δ 可度量
Δ 一个大方向或一条通往愿景的道路
(3)目标:好的目标是通过SMART(S=Specific、M=Measurable、A=Attainable、R=Relevant、T=Time-bound)来制定
目标是通往愿景的路标/节点,它与使命的路径一致;
——S代表具体(Specific),指绩效考核要切中特定的工作指标,不能笼统;
——M代表可度量(Measurable),指绩效指标是数量化或者行为化的,验证这些绩效指标的数据或者信息是可以获得的;
——A代表可实现(Attainable),指绩效指标在付出努力的情况下可以实现,避免设立过高或过低的目标;
——R代表相关性(Relevant),指绩效指标是与工作的其它目标是相关联的;绩效指标是与本职工作相关联的;
——T代表有时限(Time-bound),注重完成绩效指标的特定期限。
举例:
具体的目标:记忆100个英文单词
可度量:每天记忆20个单词
可实现:能实现
相关性:需要的资源----(需要每天30min的时间、需要准备笔和本子)、奖励和惩罚机制
有时限:15天内完成记忆
22、成功的因果路线图
作为领导,你可以做最好和最容易的事情之一,是确保组织的成功,让大家理解他们所做的日常贡献怎么对实现最值的愿景起作用,进而为股东创造价值。
23、好的产品
好的产品都是有那么深谙客户需求的公司创造的。
好的产品团队直接与客户互动并创新,而不是从其他员工那里获取需求。
好的公司清楚的了解团队在聚焦市场的产品创新和聚焦内部效率提升之间的差异,并能安妥的处理
Q:存在市场调研的公司?从获取数据到挖掘数据再到需求是否一条龙服务?
24、宕(dàng)机时间损失:时间波动图之间的面积就是损失
25、过程是可扩展的关键:
过程不是关注结果(输赢--nick),而是重复的活动和基础训练,如果都做得好,结果就是一场胜利。
26、CMMI(capability maturity model integration)
(可以执行) (管理) (定义) (定量管理) (优化)
持续能力级别 1级 2级 3级 4级 5级
----------------------|--------------|------------|---------------|---------------|---------》
阶梯成熟型 1级 2级 3级 4级 5级
(可以执行) (管理) (定义) (定量管理) (优化)
27、复发性故障
问题是事故的根源
27、变更管理(要明确变更执行人姓名)
流程:
28、危机
任何企业都有自己的危机阈值,任何超过这个阈值的事故都视为危机
29、混乱中的秩序(来自不同组织的人所组成的一个新的组织)
解决方法:要求他们以固定的时间间隔,明确而简洁的报告自己的进展情况。
30、敏捷组织
5-12人组成,拥有设计、开发、交付和支持面向客户的产品/服务所必需的技能
特点:拥有自主权、跨部门、有共同的目标、拥有全部技能人才。
在有限的资源下,敏捷团队需要确保他们有必要的资源来完成项目,特别是关键资源。
32、规模经济:指企业因为经营规模而完成的成本优势。
33、联合架构设计 JAD(joint architecture design)
JDK是一个协同设计过程,它集中于所有工程需要的资源共同完成开发新功能或进行架构修改所需要的设计工作,这些设计必须符合公司的架构原则和最佳实践要求。
JDK团队至少包括:
一个运维工程师
一个产品经理(非必须)
一个项目经理(非必须)
一个质量保证工程师(非必须)
一个编码的软件工程师
JDK的准入标准:
功能的重要性===》 成立团队 ===》 产品要求 ====》 赋予权力
JDK的退出标准:
原则(已符合)====》 共识(一直认可)====》 文档记录的权衡取舍 ====》 文档记录最终的设计文件 ===》ARB
34、架构审查委员会 ARB (archetecture review board)
ARB是一个审查委员会,负责选择和决定每一个新功能或业务的架构,在架构设计得到最终签署前,要由该委员会确认设计符合公司所有的架构原则和业界的最佳实践。
ARB 建议→4-8人组成--> 这些人的特征:受尊重、有领导力、有技术专长
从JDK 进入ARB的审查标准如下:
成立委员会===》设计的完整性(共识、文档记录权衡取舍、最终设计文件) ====》 项目选择(成为ARB的审查候选)
有不符合架构原则、不能达成设计共识、重要的权衡、高风险 要经过ARB审查。
Ω 敏捷组织没有必要需要JDK,不一定需要ARB.
35、自建和外购(聚焦于降低成本和增加收入)【战略级别】
要求有差异化竞争力的产品新功能
Δ 聚焦成本
(实践中往往低估了未来一段时间的维护和支持成本)
检验“聚焦成本”策略是否有效的方法是:评估决策中有多少是自建的。
该策略的缺点:不能专注于战略或差异性竞争。
Δ 聚焦策略
问 2 问题:
Q1、我们是否是相关技术里最好的(前2名或前3名)供应商或开发商
Q2、研发或者提供相关技术是否有助于可持续的差异性竞争
Δ 合并成本与策略的方法(4个部分测试)
Q1、该足见是否会形成战略性的差异性竞争优势?
Q2、我们是这个组件或资产的最终所有者吗?
Q3、这个组件的竞争力是什么?
Q4、我们能有效的构建这个组件吗? 《===》 自建的成本效益如何
36、风险:
测试风险的方法:
(1)直觉法(偏个人经验和技能)
(2)红灯法(先粒度划分被评估事项,团队确认红灯的级别,再将不同颜色的数量乘以确定的风险值)
(3)故障模式和影响分析(Failure model and effect analyst)==》FMEA
每个故障:故障的可能性 X 严重性 X 可检测性
急性风险:是个别变更或应用版本发布中组合变更所带来的风险(针对单一行动)
整体风险:代表系统中小时、天、周所累积的风险。(针对一段时间)
风险管理:建立规则,预定义可容忍的风险量
37、性能与压力测试
执行性能测试
① 简历成功的标准(基于并发度和响应时间的度量)
② 简历适当的环境
③ 定义测试:当你定义测试时,一定要包括各种类型的测试。
一些类型的测试包括耐久性测试、负载测试、最常用场景的测试、最明显部分的测试和系统组件的测试(组件:应用、网络、数据库、缓存和存储)
④ 执行测试
⑤ 分析数据
⑥ 向工程师报告:如果测试不是敏捷团队的一部分话
⑦ 重复测试和分析
可能必要进行验证错误得以修正
【过程成功的关键是适合组织需要】
压力测试是用于高于正常负载时软件稳定性的一个测试过程
负载测试为特定或正常操作所需要水平----》负载量是制定的
压力测试方法
① 正测试:负载逐步增加,以压倒系统的资源。
② 负测试:系统资源如内存、线程、连接数都被去掉
【不要过度强调压力测试】
压力测试过程
① 确定目标
② 确定关键服务
③ 确定负载(确定实际上需要多少负载)
无论在生成环境还是在负载测试环境,应该始终按硬件和环境之间的差异性比例调整到影响的水平。
④ 简历适当的环境
不像负载测试,你不需要关心对持续交付的影响
⑤ 确定监视点
⑥ 产生负载(模拟负载),产生实际的负载数量,最好从用户中提取
⑦ 执行测试
⑧ 分析数据
38、构建故障隔离的架构
如果进行故障隔离 (尽量啦 数据/功能/隔离)
① 原则1:绝不共享
② 原则2:泳道的边界不可逾越
③ 原则3:交易发生在泳道旁(单独的一个处理泳道之间事务的模块)
何时实施故障隔离 (不是所有功能都需要建泳道) 《=====》成本效益出发
A、办法1:泳道与盈利
B、办法2:泳道是事故最大来源
C、办法3:泳道与天然隔离
39、AKF扩展立方体
X轴代表无差别的克隆服务和数据(用人和组织是说明这种分割最简单的方法)
解释:每个克隆实体(人/组织)都可以完成其他克隆实体的任务,不管任务分配给了谁。
Y轴代表按照交易处理的数据类型、交易任务类型或两者的组合,分割工作责任
解释:是对行动的责任、数据进行分割(体现在具有专业化方面)
Z轴通常基于请求或者客户的信息进行分割
40、AKF数据库扩展立方体
Y轴分割通过数据库分区形成具有明显不同意义和目的的数据结构,应用可以访问这些分区,从而解决紧密耦合性质的数据架构问题。
在数据库中可以通过移动表和数据到不同的数据模式或数据实例来实施分割
41、处理大流量的最佳方法是什么?如果能避免的话,不要去处理大流量
高速缓存:是由设备或应用分配的内存,用于临时存储可能再次缓存的数据结构类似于键值对实现的数组。
①对象缓存(object cache)
用来存储应用的对象以备复用
数据库ACID特性(ACID:原子性、一致性、隔离性、耐久性)
原子性:数据库管理系统的一个特性,保证执行交易的所有人物,否则回滚整个事务,不会因软、硬件问题而造成部分完成。
一致性:保证交易前后数据库状态稳定的特性
隔离性:当数据正在被一个事物处理的过程中,防止另外的事务同时访问它的属性。
耐久性:在系统标记交易的状态为成功后,继续维持这个状态而不被回归的特性。
②应用缓存:基本目的是加快用户感知的性能或尽量减少资源的使用率
2中类型:代理缓存和反向代理缓存
代理缓存:互联网服务提供商ISP不把终端用户的请求通过网络传输到请求的URL所连接的服务器,而是代理这些请求缓存中把结果返回给用户。
【未通过网络传输】
反向代理缓存(网关缓存):通过实施网关缓存来卸载对网络服务器的请求。
在网络服务器前添加一层缓存,过滤掉全部或者部分的用户请求
【通过网络传输】
③CDN(内容分发网络)
这一级别的缓存是用来推送任何以缓存的内容到尽可能贴近终端的地方。
通过在不同地区使用不同的ISP的网管缓存实现CDN。
42、同步和异步
同步:该过程必须以正确的顺序执行。一个任务完成才能启动下一个任务(任务之间是互斥的)
异步:不必等待该任务完成就可以启动另外一个任务
状态应用:它依赖于现在执行的结果来决定下一步要执行的动作
无状态应用:一个应用或者协议不使用状态。eg:http就是一个无状态的协议。
43、数据
数据成本:数据添加所带来的影响不仅限于存储开销,处理时间增加和用户响应时间的延长。还有数据的“全量备份”。
数据存储的6种成本:
①数据的存储资源(物理存储设备)
②管理存储系统的人员和系统
③使存储系统能正常运行所需的电力和空间
④确保适当的电力基础正常运行的投入
⑤遍历数据的处理能力
⑥备份的时间和成本
时间会减低我们可以从任何特定数据元素中获得的价值。
数据的成本困局
方案的价值是有限的
数据产生价值
①选项价值(评估保留有价值的数据)
②战略竞争差异性
存储比竞争对手多一点的数据,并对数据按成本进行分层存储并删除无价值的数据。
③分层存储解决方案
④数据转移:所遵循的原则是“基于数据长裤专家称为提取、转化和加载的过程”
如果产品依赖于高度结构化的数据,同时只对这些数据进行有限的预定义与操作。那么关系型数据数据库。
如果产品依赖于非结构化和无层次模型,或者数据元素之间的操作和关系不明确,NoSQL比较适合。
NoSQL解决方案为4类:
①键值存储
②列存储(由键值存储衍生而出,侧重于一键多属性)
③文件存储
④图形存储
①--->④复杂度和成本逐渐增高
44、云计算
云的特性与架构
4个特征:按使用付费、按需扩展、多用户和蓄力化
公有云:同一物理基础上运行多个独立虚拟环境共享物理服务器、网络和存储系统。
云计算性能:虚拟硬件的性能低于与其相同的物理硬件,在某些方面的差异性可以达到十倍甚至更多。
(问题邻居===安全性)会影响到自己的真实性能
现在还没有虚拟机的标准退出指标或类似的度量方法
"设计能够监控的系统"是一种方法,它能把监控内置在产品,而不是在产品周围。
==》把监控纳入设计阶段。
------------------------------------------------------------END------------------------------------------------------------