文字内容
1. 站在管理看技术 —— 重新认识架构 许式伟 2019-6-14
2. 标题文本
3. 标题文本
4. 重新认识“软件工程” •一门学科? •软件项目管理的方法论?
5. 太年轻的学科 •只有 50 年历史 -C 语言诞生于 1970 年,真正意义上软件工程的开始 -Fortran 语言诞生于 1954 年,第一个高级语言,主要用于科学计算
6. 软件工程 vs. 建筑工程 •快速变化 -软件做出来只是开始。只要没有消亡,它就一直在迭代变化。 •建筑工程一旦做出来,很少变更。主要变更在软装。 -高速行驶的汽车换轮子 •不确定性 -创造性工作 -没有两个人的工作是相同的 -同一个人,昨天和今天的工作内容也是不相同的
7. 管理? •管理就是要抑制不确定性,产成确定性 -工期:时间成本 -人力:研发和维护成本
8. 软件工程的管理 •在大量的不确定性中找到确定性
9. 管什么? •人:找最好的人 •事:?
10. 做事 •程序员的三个层次 -软件搬砖师 -软件工程师 -软件架构师
11. 软件搬砖师 •具备基本的编码能力 •常规的业务代码可以按部就班地完成
12. 软件工程师 •代码上,在可读性、可维护性上有追求 •工程上,有自己的方法论 -如代码评审、单元测试等
13. 软件架构师 •用户需求上,有判断和预见能力 •产品迭代上,有规划能力 •系统设计上,有分解和组合能力 •技术选型上,有决策力 •人力资源上,有统筹能力
14. 架构师,为何综合能力要求高? •对软件工程结果负责 •软件发布的重要子过程: -需求分析(需求梳理 => 产品定义) -系统设计(子系统划分 => 模块定义) -模块设计(模块详细设计) -编码实现 -单元测试 -代码评审 -集成测试 -灰度发布 -正式发布
15. 架构师 vs. 产品经理 •产品是桥 -一端连接了用户需求 -一端连接了先进的技术 •产品经理与架构师是一体两面 -产品经理,做的是产品架构 -架构师,做的是技术架构
16. 需求梳理 •刨根究底,找到根源需求 •需求的变化点和稳定点 -稳定点,产品的核心价值 -变化点,开放性设计 •产品边界的确定 -需求,做还是不做 -开放性设计,和合作伙伴的边界
17. 产品 vs. 行业解决方案 •避免把行业方案视作产品的一部分 -需要更加开放的心态来看待这件事情, 优先寻找合作伙伴来一起完成这类行业 的需求覆盖
18. 产品的市场策略 •关键市场,可能会把迁移视作 产品需求的一部分 •其他主流市场,要提供迁移路 径,而不是完整的迁移方案
19. 技术的全局视角
20. 怎么培养架构师? •匠心,悟心 •要懂用户,懂市场,有市场洞察力 -近距离接触用户,心里得装着用户,尊重用户反馈 -需求的分析、推演能力 •建立全局视角
21. 许式伟的架构课 •相互交织的两条线索: •还原信息世界的构建过程 -宏观骨架 -需求演进 •架构方法论
22. 标题文本
23. 标题文本
24. 标题文本