描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787111506980
译者序
前言
致谢
部分项目技能
第1章合作关系
1.1什么是合作关系
1.2合作关系的关键特征
1.3一致
1.3.1我需要和谁结成合作伙伴
1.3.2找出思想领袖
1.3.3认识影响力人物
1.3.4确定可信的建议者
1.3.5社区评审(架构评审委员会)
1.3.6在做出关键决策之前寻求一致
1.3.7共同愿景的一致成就合作关系
1.4信任
1.4.1建立信任
1.4.2建立公开披露机制
1.4.3避免将摊子铺得过大(过度投入)
1.4.4在你过度承诺之后如何解脱
1.4.5学会说”不”
1.4.6信任带来透明度-合作关系的命脉
1.5语境
1.5.1了解合作的性质
1.5.2了解你的业务背景(语境)
1.5.3技术决策需要合作关系
1.5.4关键点:技术决策是政治决策
1.5.5首先介绍情况(提供语境)
1.5.6支持你的合作伙伴
1.5.7为合作伙伴的成功做出贡献
1.5.8人多势众
1.6协作
1.6.1将价值放到台面上
1.6.2成为导师
1.6.3寻找导师
1.6.4合作关系可能是机遇之源
1.6.5合作关系是迈向构思的一步
1.6.6协作推动更强大的合作关系
1.7关系
1.7.1合作关系不仅和业务有关
1.7.2想要索取就要先付出
1.7.3外部合作关系
1.7.4过去的不愉快经历
1.7.5躲开组织中的刻薄鬼
1.8小结
参考书目
第2章发现
2.1什么是发现
2.2发现的关键
2.3了解客户
2.3.1与销售、市场及新产品开发部门建立合作关系
2.3.2与客户会面
2.3.3取悦客户的是什么
2.4了解市场
2.4.1了解客户的客户
2.4.2客户愿意在哪里花钱
2.4.3竞争对手在做什么
2.4.4倾听不同客户的主题
2.5理解你的业务
2.5.1研究你的业务目标
2.5.2个性化公司的战略目标
2.5.3为决策开发一个业务语境
2.6小结
参考书目
第3章概念化
3.1构思
3.2及早介入
3.3概念化:将生命赋予思路
3.4概念形成
3.4.1他们使用什么语言
3.4.2正在讨论的是什么问题
3.4.3当你较晚进入构思团体中时,需要谨慎投入
3.4.4这个概念是什么样子的
3.5概念具体化
3.5.1小可行性产品
3.5.2试验的需求
3.5.3建立假设有助于协调愿景
3.5.4确定必不可少的功能和客户角色
3.5.5和客户一起进行概念具体化
3.6概念演化
3.6.1以史为鉴
3.6.2接受多种视角
3.6.3寻求概念完整性
3.6.4发现邻近的机遇
3.7小结
参考书目
第4章估算
4.1估算概述
4.1.1估算的目的是什么
4.1.2是否建立了项目语境
4.1.3什么是架构方法
4.2理解估算过程
4.2.1估算管线
4.2.2项目类型
4.2.3项目筹资的其他方式
4.2.4理解业务过程
4.3开发架构方法
4.3.1是合作伙伴关系还是合同关系
4.3.2项目在业务上的依据是什么
4.3.3营销方式是什么
4.3.4是不是重复的估算
4.3.5已经识别了哪些风险?能否缓解
4.3.6是否将构建一个平台
4.3.7是否将更改平台
4.3.8使用何种技术
4.3.9采用何种组织结构
4.3.10是否需要进行外部调查
4.3.11是否找出了可利用的组件
4.4估算策略
4.4.1为未知因素和挑战制订计划
4.4.2务实:不要为了获得项目而屈服
4.4.3严密控制关键因素
4.4.4开发估算反馈循环
4.4.5限度地减少组织耦合和内聚
4.4.6随身带着PowerPoint
4.4.7开发检查列表
4.4.8及早获得高管和组织的支持
4.5估算原则
4.5.1确定疑难问题
4.5.2提供选项
4.5.3保持设计决策的开放
4.5.4了解时间表
4.5.5知道你想要的结果
4.5.6避免负面态度
4.5.7寻找说”是”的机会
4.5.8现在就开始讨价还价,不要等到以后
4.5.9不要认输
4.5.10相信你的直觉
4.5.11了解其他人估算过的项目
4.5.12了解业务部门的目标价格
4.6完成估算
4.6.1了解时限
4.6.2谁参与估算
4.6.3理解你的切入点
4.6.4组合所有信息
4.6.5与高管人员接触
4.6.6推销估算
4.7小结
参考书目
第5章管理
5.1架构管理定义
5.2架构师负责的领域
5.3坚持追求技术上的卓越
5.3.1确立一个愿景
5.3.2提升技术负债意识,投资合适的解决方案
5.3.3保持技术环境的趣味性
5.3.4找出潜在的专利
5.3.5寻求数据中心和运营部门对你的方向的支持
5.3.6推广解决方案
5.3.7建立战略性解决方案
5.3.8利用现有解决方案
5.4交付项目
5.4.1与项目经理成为合作伙伴
5.4.2无情地消除依赖性
5.4.3管理预期
5.4.4控制开发过程
5.4.5在发生问题时出现
5.4.6了解项目上不透明的因素
5.4.7限制处于领导地位的承包商数量
5.4.8提供技术管理(职责领域)
5.4.9应急管理
5.5解决问题
5.5.1提出难题
5.5.2立即处理问题
5.5.3说”不”,但是要提出选项
5.5.4在决策中努力保持一致
5.5.5学会正面处理问题、摊牌
5.5.6知道在协商中你所愿意接受的
5.5.7勇于对不同意的领域(有礼貌地)提出挑战
5.5.8坚持立场
5.5.9知道哪些不是你的问题
5.6与高管人员成为合作伙伴
5.6.1通过透明度管理风险
5.6.2审核估算
5.6.3限制框图中方框的数量
5.6.4提升技术意识
5.6.5支持老板
5.6.6不要打断高管人员的讲话
5.6.7保持自信
5.7管理你的时间
5.7.1限制投入的项目数量
5.7.2定义自己的角色并坚持
5.7.3确定费时工作的优先级
5.7.4学会在限定的日期和时间做出决策
5.7.5只在你是活跃的参与者时才参加会议
5.7.6了解后期限
5.7.7委托你信任的人
5.7.8面对面会谈
5.8培养技术人才
5.8.1制定架构导师计划
5.8.2建立技术论坛
5.8.3鼓励技术团队成员参与当地的会议和用户组
5.8.4雇用好的员工:不只是填补一个职位
5.9提高技能
5.9.1与其他架构师坐在一起
5.9.2每天做一些技术工作
5.9.3专注于令你吃惊的事情
5.9.4成为某个领域的专家
5.9.5寻求能够提高技能的项目
5.10小结
参考书目
第二部分技术技能
第6章平台开发
6.1平台开发定义
6.2平台开发的要素
6.3功能
6.3.1定义目标集
6.3.2定义功能集
6.3.3专注于可利用功能
6.3.4开发强大的概念模型
6.3.5API是”打开王国的钥匙”
6.4生态系统
6.4.1平台用户
6.4.2平台所有权
6.4.3平台管理
6.4.4平台开发
6.4.5认识与平台相关的成本
6.4.6管理平台质量
6.4.7平台集成
6.4.8可伸缩性
6.4.9安全性
6.5指导原则
6.5.1追求超卓的质量
6.5.2追求卓越运营
6.5.3可配置性胜过硬编码
6.5.4追求可利用性
6.5.5追求冗余架构
6.5.6追求线性的伸缩性
6.5.7避免平台缠绕
6.5.8避免平台蔓延
6.5.9持续升级到技术
6.6小结
参考书目
第7章架构透视
7.1架构透视的定义
7.2架构原则
7.2.1少意外原则
7.2.2少知识原则(迪米特法则)
7.2.3小工作量原则(齐普夫法则)
7.2.4机会成本原则
7.2.5单一职责原则
7.2.6精简原则(奥卡姆剃刀或者KISS)
7.2.7后责任时刻原则(延迟成本)
7.2.8反馈原则
7.3架构关注点
7.3.1可用性
7.3.2可伸缩性
7.3.3可扩展性
7.3.4可重复性
7.3.5兼容性
7.3.6可持续性
7.3.7安全性、灾难恢复、业务持续性和开源许可证
7.3.8第三方集成
7.4架构沟通
7.4.1领域模型
7.4.2流程图
7.4.3环境图
7.4.4用户界面模型
7.4.5逻辑架构框图
7.4.6执行概况图
7.4.7硬件环境框图
7.4.8风险、假设、问题和相互依赖性(RAID)
7.5整合所有因素
7.6小结
参考书目
第8章治理
8.1治理的定义
8.2治理原则
8.2.1避免供应商锁定
8.2.2鼓励开源产品的使用
8.2.3小化中断成本(实现业务持续性计划和灾难恢复)
8.2.4实现业务部门之间的松散耦合
8.2.5利用公共功能
8.2.6确保监管依从性
8.2.7确保安全性
8.2.8小特权原则(小授权原则)
8.2.9寻求统一身份和访问管理
8.2.10寻求数据可移植性(避免数据锁定)
8.2.11寻求集成和自动化
8.3治理的领域
8.3.1估算
8.3.2管理关注点
8.3.3架构
8.3.4设计
8.3.5构建、编码、集成、部署、测试和监控
8.4使用敏捷方法的治理和健康压力
8.5小结
参考书目
第9章技术诀窍
9.1技术诀窍的定义
9.2开发诀窍
9.2.1发展与技术诀窍的联系
9.2.2发展技术诀窍的先进性
9.2.3发展技术诀窍的卓越性
9.2.4技术诀窍综合体
9.3技术诀窍驱动的架构
9.4小结
参考书目
第三部分想象力技能
第10章技术创新
10.1技术创新的定义
10.2趋势感知
10.2.1趋势感知的领域
10.2.2应用趋势感知
10.3业务融合
10.3.1注意客户咨询中的趋势
10.3.2获得客户反馈
10.3.3分析客户反馈
10.3.4何时要对趋势保持警惕
10.3.5何时接受趋势
10.4战略性研究
10.5技术创新原则
10.5.1寻求得到批准的少研究时间和资金
10.5.2下小的赌注
10.5.3定期使用技术搜索浏览和跟踪趋势
10.5.4建立实验室区域
10.5.5运用具备用户反馈循环的快速试验
10.5.6向业务部门和客户展示原型
10.5.7在系统边缘上引入新技术
10.6实用技术创新
10.7小结
参考书目
第11章战略路线图
11.1战略路线图的定义
11.2战略路线图的要素
11.2.1战略要点
11.2.2时序
11.2.3用”泳道”组织
11.2.4依赖性感知
11.2.5直观表示
11.2.6协作特性
11.2.7代码命名
11.2.8上下文相关(个性化)
11.2.9多学科和专业性
11.2.10优先级排定
11.2.11迭代特性
11.2.12更新
11.2.13发布
11.2.14可计量
11.3路线图制定策略
11.3.1在白板上用即时贴演示路线图
11.3.2从终点开始(反向推导)
11.3.3召开研讨会
11.3.4将战略路线图视为项目
11.3.5捕捉基本指导原则
11.4路线图制定原则
11.4.1保持简单
11.4.2与业务部门合作
11.4.3行动起来
11.4.4寻找乐趣
11.4.5没有目标的战略毫无意义
11.4.6识别需要研究和创新的领域
11.4.7识别技能和知识的不足
11.4.8在实现目标的时间上保持灵活
11.4.9勇于尝试新路径
11.4.10路线图与细节无关,重点是目标和关键里程碑
11.4.11追随能够激励你的方向
11.5架构师在路线图制定中的角色是什么
11.6路线图可能用于哪些地方
11.7路线图考虑因素
11.8路线图社会化
11.9庆祝里程碑的实现
11.10小结
参考书目
第12章企业执行
12.1企业执行的定义
12.2企业执行的要素
12.2.1企业精神
12.2.2承受预期风险
12.2.3交付成果
12.3企业执行原则
12.3.1可承受损失原则
12.3.2柠檬水原则
12.3.3拼花布原则
12.3.4一鸟在手原则
12.3.5飞机驾驶员原则
12.3.6把握时机
12.3.7追随爱好
12.3.8学会变通
12.3.9以高成本效益的方式在实践中学习和犯错
12.3.10寻求反馈
12.3.11寻求可利用机会
12.4以企业执行推动架构
12.5小结
参考书目
结语组合所有技能
—Martin Filler“架构和建筑物与你如何绕过面前的障碍息息相关。有时候这决定了你的成功:你是否擅长绕过障碍?”
—Jeremy Renner“建筑是一项服务。建筑师得到项目、预算、工作场所和时间表。有时候,终产品会成为一件艺术品—至少人们会这么称呼它。”
—Frank Gehry“建筑就是创造。”
—Oscar Niemeyer“我热爱逻辑、数学、计算机编程。我热爱系统和逻辑方法。而我认为建筑是这三者的完美组合。”
—林璎“我总是在思考建筑的问题,那是一个问题。但是我一直喜欢它,有时会梦见它。”
—Zaha Hadid“互联网可能是我一生遇见的为重要的技术进步。它的优势在于开放的架构和让所有人的声音都被其他人听到的框架。”
—Adam Savage本书的创作动机本书和我的本书(《软件架构师的12项修炼》)专注于阐述成功软件架构师必需的技能。
软件架构研究的是和人的关联以及用架构的眼光去思考的方法。《软件架构师的12项修炼》注重的是软技能;没有这些技能,几乎不可能走完余下的“旅途”。
完成本书后不久,我开始接到关于书中提到但是未做讨论的假定技术性技能(如图P.1所示)的问题。
图P.1 软件架构师的12项技能本书深入这些假定技能的细节——作为架构师每天都需要用到的技术能力。将软技能和技术技能相结合,才能帮助你实现目标。
本书的目标本书的目标是:
通过技能拓展实现卓越的软件架构实现商业环境下的成功架构促进企业思维中的架构方法本书的组织本书的格式与风格旨在帮助你批判性地思考自己的项目集、架构监管领域和具有领导力的领域。这些领域的知识分别以项目技能、技术技能和想象力技能的形式出现。
这三个领域组织为:
部分:项目技能。通过如下技能,帮助你推动项目,使其从早期的构想成为可交付的成果:
合作关系(第1章)发现(第2章)概念化(第3章)估算(第4章)管理(第5章)第二部分:技术技能。如下技能确保你能构建、购买或者利用正确的技术:
平台开发(第6章)架构透视(第7章)治理(第8章)技术诀窍(第9章)第三部分:想象力技能。通过如下技能,帮助你追求企业长期竞争愿景:
技术创新(第10章)战略路线图(第11章)企业执行(第12章)这三个部分可以看作软件架构师技能的层次化结构(见图P.2),每一层都是上一层的基础。
本书的每一章都可以独立于其他章节进行阅读。这种独立性使你可以按照自己的兴趣,或者需求顺序阅读。
我希望你喜欢本书,并从中学到新鲜的知识,帮助你成为出色的架构师,更好地理解架构师这一角色。
如果你有任何问题或者意见,请和我联系:。
图P.2 技术技能金字塔Acknowledgements 致 谢我要向AddisonWesley出色的员工们说声谢谢,特别要感谢Olivia Basegio、Sheri Cain、Chris Guzikowski、Chuti Presertsith、Kesel Wilson和Barbara Wood。与他们一起工作是很奇妙的经历。
感谢Brad Appleton、Kevin Bodie、Robert Marksimchuk和一位不愿意留下姓名的审稿人审阅了本书的稿,并为我提供了很好的反馈。
我还要感谢来自Thomson Reuters的审稿人,他们是:Mick Atton、Dan Bennett、Cary Felbab、Scott Fancis、Kevin Hakanson、Jesse Haraldson、James Jarvis、Andrew Lipstein、Andrew Martens、Lynn Meredith、Scott Post、Noah Pruzek、Chris Rowland、Bob Sturm、Bas Vellekoop和Justin Wright。每位审稿人都审阅了所在专业领域的章节。
此外,我还要感谢妻子Jennifer、儿子Tim审阅了本书。
后,我要感谢家人和父母,感谢他们对我编写本书的支持。
评论
还没有评论。