开篇词 | 你为什么应该学好软件工程?
本篇里作者介绍了自己的学习工作经经历,对课程的编排,思路做了说明。
软件项目的开发其实是一个工程,整个开发过程是可以有效组织起来的;
对于开发过程的各个阶段,已经有很多解决问题的最佳实践,有很多方法来帮助我们高效完成任务;
我们还可以借助工具来协助管理,提升开发效率。
专栏从“道、术、器”三个维度来讲解软件工程的知识内容。
“器” 软件工程中的各种工具。
“术” 软件工程中的各种方法。例如如何做需求分析?如何对需求变更做变更管理?
“道” 软件工程知识的核心思想、本质规律。例如为什么要有需求分析?需求变更产生的深层次原因是什么?项目中决策的依据是什么?
模块设置分成三部分
基础理论,软件工程学全景图,基础概念,主流软件过程方法论。
项目过程,六个阶段,规划、需求分析、设计、编码、测试、运行维护。
案例分析
特别放送 | 从软件工程的角度解读任正非的新年公开信
任正非 2019年 致全体员工的一封信 全面提升软件工程能力与实践,打造可信的高质量产品
内容概要:
只有全面提升软件工程能力和实践,才有可能打造出可信的高质量产品
融入信任、构建高质量,关键内容包括:
安全性(Security)
韧性(Resilience)
隐私性(Privacy)
可靠性和可用性(Reliability& Availability)
全面提升软件工程能力和实践
我们要转变观念,追求打造可信的高质量产品,不仅仅是功能、特性的高质量,也包括产品开发到交付过程的高质量。
我们要从最基础的编码质量做起,视高质量代码为尊严和个人声誉。
我们要深刻理解架构的核心要素,基于可信导向来进行架构与设计。
我们要重构腐化的架构及不符合软件工程规范和质量要求的历史代码。
我们要深入钻研软件技术,尤其是安全技术。
我们要遵守过程的一致性。
为此,我们要改变行为习惯,追求精品。
更为重要的是,我们将通过变革形成一套适应上述变化的流程、组织与考核机制。
宝玉老师的分享
1、软件项目管理金三角
2、程序员要自我精进
3、架构要可信向导
4、技术债务,可信设计原则为向导,鼓励重构
5、安全性,安全意识,安全技术,整个开发过程加强
6、技术是工具,软件技术是打造产品的基本工具
7、一致性,从遵守过程的一致性开始,在每个阶段去做到一致性
8、改变习惯,转变思想,改变习惯
9、“软件工程”和“质量工程”需要依靠架构技术
10、软件工程就像一个国家的农业,是最基础的设施
学习攻略 | 怎样学好软件工程?
什么是软件工程
软件工程是为了应对软件危机诞生的学科,其目标就是为了要聚焦于质量,构建和维护高质量的软件。
参考《软件工程——实践者的研究方法》中的软件工程核心知识
过程
有效组织软件开发中的各种活动(沟通、计划、建模、构建和部署)的框架、步骤。
主流的过程:瀑布模型、敏捷开发
方法
高效高质量进行具体一项活动(编码、需求分析、测试)的方法。
软件工程 = 工具 + 方法 + 过程
学习软件工程的四重境界
用器 —— 学术 —— 悟道 —— 传道
自下而上,做中学,自上而下,教中学。
推荐书籍:
构建之法,人月神话,人件,知行合一: 实现价值驱动的敏捷和精益开发,软件工程——实践者的研究方法,持续交付,走出软件作坊
课后感想
器、术、道,是对软件工程一种新维度的探索方式。之前见过对Agile分为Management practice和Technical practice,颇有相通之处。
任总的信中提到了绩效考核。关键!对于敏捷,个人认为,不讲绩效考核的敏捷其实是耍流氓。
做中学,教中学,各个领域都适用。