宝玉老师这篇文章讲的是工程思维,一种思维方式,不仅对学习软件工程的同学有用。有时候,我们会有这样的问题:为什么大学要分不同的学科?学财务的和学经济的有什么不同?学历史的和学哲学的有什么不同?学软件工程的和学信息安全的有什么不同?这篇文章可以给我们启示:不同的学科,各自都有自己的思维方式,对于软件工程来说,它的核心思维方式就是工程思维。
下面是这篇文章的主要框架:
重点摘抄
- 软件工程是一门用工程化解决软件项目问题的学科,其本质也是一门工程学科,这门课的知识在学完后,不仅可以应用在软件项目中,还可以用来解决日常生活中的一些问题,Everything is a project。
- 什么是工程方法?有目的、有计划、有步骤地解决问题的方法就是工程方法。关于工程方法的介绍,可以用下面这张图概括:
- 工程化思维有什么好处?
- 有一个被有效论证过的方法论指导你,可以帮助你提高成功率,也可以提高效率
- 当你用工程化思维去看到项目(问题)的时候,你会站在整体而非局部去思考,会更有大局观
- 在软件项目开发中,如果站在项目的整体来看问题,就会关注项目的质量、项目的进度、项目的成本、项目的最终用户。
- 为了整体的效率和避免返工浪费,产品经理会及早和开发人员确认技术可行性,并对产品设计先进行验证;
- 为了节约项目开发成本,提高开发效率,架构师会选择成熟的架构,合理购买商业组件和使用开源程序
- 为了提升开发效率,不影响项目开发进度,开发工程师会尽可能采用成熟的技术,高效简洁地落实项目;
- 为了项目质量和效率,测试工程师会学习自动化测试技术,将大部分测试变成自动化运行;
- 为了让用户有更好的体验,项目中的每个成员都会仔细体验产品,对于不合理的地方提出改进意见。
- 并不是说只有项目经理需要有工程思维,需要站在整体去考虑,每个项目成员,如果能多站在项目的角度去考虑,那么这样不仅对项目有利,对自己也有利。
- 工程思维,本质上是一种思考问题的方式,在解决日常遇到的问题时,尝试从一个项目的角度去看待问题、尝试用工程方法去解决问题、站在一个整体的角度而不是局部的角度去看问题。
- 改变,最有效的方式是改变思想,这往往也是最难的部分。
我的感想
- 做任何事情都要按照一定的理论指导来,例如,依靠系统化、结构化的“工程思维”,将生活和工作中的每个事情都看做一个项目,可以提高做事的成功率和效率,虽然不用这些理论指导也能做成事情,但是相对来说是偶然性的,不是常规性的。这就是常说的认知(意识)先行,持有高级的认知去跟低认知的人竞争,是一种降维打击。
- 工程思维的核心有两点:系统化,也就是全局观,要从站在整个项目的高度去看问题,不能做井底之蛙;结构化,也就是有步骤、有节奏得做事情的意识。
- 《软件工程之美》这个专栏,我给自己定了一个小目标:全部跟完,并且坚持留言跟老师交流想法。我制定了简单的阅读步骤:(1)文章至少阅读两次,第一次通读,第二次做笔记摘抄、整理文章的思维导图、提出自己的想法;(2)整理自己的学习心得,形成阅读笔记发到自己的博客(公众号)上
- 课后思考:我今年年初开始运营自己的公众号,我把它当做一个项目,就从下面几个方面进行了思考:我要提供的内容和定位是什么样的、我的用户是谁、我应该如何去运营;这些东西想好后,我就将要做的事情拆分为:公众号设置、文章内容输出、运营推广三块,然后按照一定的步骤去执行,现在公众号的设置已经基本完成,整个项目进入内容输出和运营推广的循环中了。站在项目的角度去看这个问题,可以让我在动手执行的时候更有方向感和节奏感,也会对自己清楚自己某个小的点做的改动会对全局产生什么影响;在没有使用这个角度去看问题之前,我只是简单得主张内容才是核心,但是不懂运营和推广,没什么章法。
工程思维:Everything is a project