《软件工程 构建之法》作者邹欣系Windows中国工程师团队首席研发总监 (Link:亚马逊)
整本书,极其认真,结构组织的有点像学术论文了。涵盖面比较全,涉及到了现代软件工程的整个流程,从需求的挖掘产生,到中间各个环节地循序渐进,直至最后的交付与维护支持。必然也就导致每个点深入程度相对较有限。
除了项目本身,本书另一个关注重点是项目中的人:项目经理、用户、测试、开发,讲到各种角色各自的职责,相互之间的协作关系、合作方法,最后一章中还有提到职业道德~(感觉有点偏向股东与雇主)
全书更多的是探讨方法论,关于开发、关于敏捷迭代、关于项目管理、关于结对编程、关于测试流程与种类、关于用户体验的获得与改进、关于需求分析与评审、关于软件工程师的成长。当然作者只是提供了一些自己的见解,很多观点并不一定准确,其中也有一些落伍的工具、模型。
更大的意义许是全面地概述一些需要注意的点,真正贯彻落实这些方法需要耗费极大成本。很多观点引人深思。
导图
文本
构建之法
1 个人
1.1 2 个人和技术流程
1.1.1 单元测试
1.1.1.1 着眼于基本点;当事人编写;不改变机器状态;快;可重现;覆盖所有代码路径;与产品代码一同维护
1.1.2 效能分析工具
1.1.2.1 抽样、代码注入
1.1.3 个人开发流程
1.1.3.1 计划、开发、记录用时、测试报告、计算工作量、事后总结、提出过程改进计划
1.2 3 软件工程师的成长
1.2.1 大江东去,浪淘尽,千古风流人物
2 团队
2.1 4 两人合作
2.1.1 代码规范、设计规范、复审(驳回,选择性同意,放行)、结对编程、不同阶段的技巧
2.2 5 团队和流程
2.2.1 团队模式、开发流程
2.3 6 敏捷流程
2.3.1 敏捷问题与解法、敏捷团队(自主)、敏捷总结
2.4 7 MSF
2.4.1 MSF基本原则(共享、沟通、为共同目标努力、充分授权和信任、各司其职、敏捷);MSF团队模型
3 产品
3.1 8 需求分析
3.1.1 软件需求(获取引导、分析定义、验证、管理);利益相关者;用户调研(焦点小组、人类学、快速原型、AB测试);竞争性需求分析框架(Need、Approach、Benefit、Competitors、Delivery);功能定位与优先级(必要与辅助、核心与外围);计划与估计;分而治之
3.2 9 项目经理
3.2.1 来历;职责(开发与测试之外的所有);PM与风险管理;能力要求与任务(观察理解快速学习、分析管理、专业、自省)
3.3 10 典型用户和场景
3.4 12 用户体验
3.4.1 要素(第一印象、换位思考、记住用户选择…);设计的步骤与目标;评价标准(快反馈、贴近现实、暴露控制权、一致性与标准化、适合各种用户、帮助修复;提示语帮助)
4 质量
4.1 11 软件设计与实现
4.1.1 分析与设计方法;团队建模和分析方法;日常管理;
4.2 13 软件测试
4.2.1 分类方法(黑白、功能非功能、时机作用分类);测试方法(UnitTest、BuildTest、AcceptanceTest、探索测试、回归测试、场景/集成/系统测试、伙伴测试、效能测试、压力测试、内外部测试、易用性测试)
4.3 14 质量保障
4.3.1 软件质量(程序、工程、如何衡量、成本);质量保障工作(测试角色)
4.4 15 稳定和发布阶段
4.4.1 从完成到发布;渐进发布;发布之后——事后诸葛亮会议(赏罚、总结经验教训)
5 IT
5.1 16 IT行业的创新
5.1.1 争议点(创新与跟随、鼻祖与布道、专家?、技术创新为核心?、成功者更能创新?);时机;招数
5.2 17 人、绩效和职业道德
5.2.1 猪鸡鹦鹉(成员投入程度不一);人;绩效管理;职业道德(与公众利益一致、客户与雇主利益最大化、产出物满足高标准、专业判断、管理软件与开发维护、职业的诚信与声誉、对同事的支持与帮助、自身不断提高)