毕业考研软件工程方向时,记得上考研辅导班老师有句话对我影响颇为深刻:

软件工程是一问用工程化方法解决软件项目问题的学科,其本质也是一门工程学科,这门课的知识在学完后,不仅可以应用在软件项目中,还可以应用于日常生活中遇到的一些问题,Everything is a project。

这句话对我的影响很大,我开始在日常生活中尝试应用这个概念,小到做作业,大到完成工作中的复杂项目。

解决这些问题的方式,就是参考软件生命周期和瀑布模型,把事情分成几个阶段:分析、设计、实施、测试、完成,然后指定相应的计划。这种方法效率很高,能让人站在更全面、更高的角度去思考问题。

什么是工程方法?

有目的、有计划、有步骤地解决问题的方法就是工程方法,

工程方法通常分为六个阶段:想法、概念、计划、设计、开发和发布。

  • 想法:清晰地定义好问题,研究其可行性,检查是否有可行的解决方案
  • 概念:用图纸、草图、模型等方式,提出概念性的解决方案,最终确定一个
  • 计划:包含人员、任务、任务持续时间、任务依赖关系以及项目完成预算
  • 设计:针对产品需求,将解决方案细化,设计整体架构和划分功能模块
  • 开发:根据设计方案,将解决方案构建实施,包含构建、测试、调试和重新设计的迭代
  • 发布:最终结果包括文档发布

站在整体而非局部去看问题

    有人可能说“我不用这种工程方法做事,也可以完成”,的确,做一件事有很多种方式,但用工程方法去处理事情,有如下好处:

  1. 有一个被有效论证过的方法论知道你,可以帮助你提高成功概率,也提高效率
  2. 用工程方法去思考的时候,会更多的站在整体而非局部去思考,更有大局观。

所以问题的核心并不在是不是用工程方法,而是有没有吧这件事当作一个项目,是不是能看到这件事的全貌,而不是只看到局部。

以下工作场景,估计你不会陌生:

  • 产品经理提出天马行空、不切实际的需求,但是技术上不可行或者实现成本很高,导致返工、资源浪费和进度延迟等问题,就像前段时间产品经理提出app主题皮肤随手机壳颜色变换的需求和开发打起来的笑话。
  • 架构师为了满足开发上的成就感,更愿意自己“造轮子”,不愿意采用现有开源程序或者购买合适的组件;
  • 开发工程师喜欢在代码中使用各种设计模式或者最新技术,导致项目进度延迟,代码难以维护;
  • 测试工程师不愿意学习自动化测试技术,导致测试周期较长,且容易出现疏漏;
  • 除非产品经理特别注明,开发工程师和测试工程师不会注意用户体验上的细节;

之所以会出现这样的问题,很大程度上归因于大家都是站在自己岗位的角度看问题,没有站在项目的整体角度来看。

如果我们能站在项目整体角度看问题,我们会去关注项目的质量、项目的进度、项目的成本、项目的最终用户,那上面的场景将会变成:

  • 为了项目整体的效率和避免返工浪费,产品经理会及早和开发人员确认技术可行性,并对产品设计现行验证;
  • 为了节约项目开发成本,提高开发效率,架构师选择成熟的架构,合理购买商业组件和使用开源程序;
  • 为了提高开发效率,不影响项目开发进度,开发工程师尽可能使用成熟的技术,高效简洁地落实项目;
  • 为了项目质量和效率,测试工程师学习自动化测试技术,将大部分测试变成自动化运行,极大地提高了测试效率和质量;
  • 为了提高用户好的体验,不仅产品经理,每个人都会仔细体验用户界面,对于不合理的地方提出改进意见。

所以我认为,每个项目成员,如果能多站在项目的角度去考虑,那么这样不仅对项目有利,更对自己有好处。

最后我总结,工程思维,本质上是一种思考问题的方式,在解决日常遇到的问题时,尝试从一个项目的角度去看待问题、尝试用工程的方法去解决问题,站在一个整体而不是局部的角度去看问题。

工程思维把每件事都当作一个项目来做相关推荐

  1. “误用姓名”,前哈佛教授炮轰中国学者“碰瓷”:“整件事都让人讨厌!

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 学术不端能有哪些操作?学历伪造.论文代写.成果剽窃?最近又曝出了一个新的方式,而炮轰对象竟是中国学者: 前哈佛教授.现 IBM 研究员的 ...

  2. 某程序员以阿里为原型写小说!阿里员工:每件事都是真的!网友:建议拍成电视剧!...

    程序员群体里真是卧虎藏龙,除了写代码,他们还有很多隐藏大招,比如唱歌,画画,写小说-- 一个程序员就在网上贴出了自己的短篇小说<我为什么辞职>,其文笔之流畅,立意之深远,暗喻之精妙让人拍案 ...

  3. P8U8 最中听的话,不要做每件事都考虑太多。

    P8U8 最中听的话,就这样渡过的P8U8,不要做每件事都考虑太多. 今天的就这样渡过的P8U8,地面上的[P8U8]人显得特别小,黑板的左边有扇布满灰尘的门,好像在睡觉,上面玻璃破了一块,第一个爬到 ...

  4. 第23件事 评估产品或项目是否靠谱的7个标准

    第4章 精益方法与产品开发 第23件事 评估产品或项目是否靠谱的7个标准 第24件事 精益创业要知道的3个方面 第25件事 创建精益创业画布的9个格 第26件事 精益创业的3个访谈 在产品孵化方面的经 ...

  5. 人生最浪费生命的四件事,2017年别再做了!

     人生最浪费生命的四件事,2017年别再做了! 南京旅游 2017-02-04 07:15:10 阅读(58058) 评论(24) 声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅 ...

  6. 每节课都是一个项目 手把手用STM32打造联网气象站-4-STM32基础三件套-TIM定时器和SYSTICK初始化

    STM32基础系列包含了三件套,掌握了这三件套,类似于掌握了程咬金三板斧,就可以开始干项目,创造价值了.毕竟,真正的编程是一项实战性很强的技术,掌握编程主要靠实战,而不是靠知识灌输. STM32的编程 ...

  7. 每节课都是一个项目 手把手用STM32打造联网气象站-10-带有屏幕显示的番茄时钟

    目录 1.课程回顾 2. 升级你的番茄时钟 2.1项目需求-带有屏幕显示的番茄钟 2.2 需求分析 2.2.1 屏幕上方用中文字体显示:番茄时钟: 2.2.2 中文下方,带有时间倒计时显示: 2.2. ...

  8. 每节课都是一个项目 手把手用STM32打造联网气象站-7-诚不欺我,用TIM, GPIO, USART三板斧干项目(挖坑篇)

    终于,我们把STM32的入门三板斧的武功讲完了.有了这三板斧,我们就可以完成一些基本的项目了.终于熬出头了,从这一节开始,我们就用这三板斧,来玩不同的项目了. 当然.我们的项目不仅仅是玩,每一个项目都 ...

  9. 网易100件事任务清单html,人生必做的100件事清单

    网易人生必做的100件事清单官方游戏入口:一款由网易最新推出的趣味测试小游戏,在这里你可以来选择你人生中最想做的100件事情,是选择一个人来一场说走就走的旅行,还是和你的伴侣在恋爱过程中做满100件温 ...

  10. 网易100件事任务清单html,人生必做的100件事测试

    人生必做的100件事测试游戏非常适合玩家大幅闲暇无聊时间的一款趣味测试游戏,可以通过测试题目来更加全面的了解你自己,深入剖析你的内心世界,很多的选择题,可能会出现犹豫不决的时候,只需要遵循内心真实想法 ...

最新文章

  1. SAP 科目主数据属性定义
  2. shell定时执行hive脚本文件
  3. Redis 内存压缩实战,学习了!
  4. J2ME开发心得-数组的使用
  5. kylin如何支持flink_Kylin 在腾讯的平台化及 Flink 引擎实践
  6. 前端学习(1669):前端系列实战课程之半透明拖拽思路
  7. 【JEECG技术博文】JEECG 简单实例讲解权限控制
  8. mysql中in和exists的应用场景_mysql中关于in和exists的使用
  9. CSDN Markdown编辑器使用教程
  10. [渝粤教育] 天津科技大学 人工智能导论 参考 资料
  11. PCB个性logo设计
  12. 调剂深圳大学计算机技术,深圳大学:2020年硕士研究生招生调剂办法公告
  13. 百度网盘官方免费极速下载(不定期更新)
  14. Ubuntu系统释放磁盘空间
  15. YOLOv6又快又准的目标检测框架 已开源
  16. 联想数字化转型案例研究
  17. syzkaller 源码阅读笔记3(syz-fuzzer)
  18. Ieda配置Maven
  19. wget无法建立SSL连接
  20. (五)巴菲特与索罗斯的投资习惯:市场总是错的

热门文章

  1. 【贪玩巴斯】无线传感器网络(二)「无线传感器网络中物理层的五点详解」 2021-09-24
  2. mysql order by 排序技巧
  3. 需求分析——系统建模方法
  4. 【算法专题】高精度之压位
  5. 安杰文高等计算机与生产技术学校,留学预警:2012年教育部承认的法国大学名单...
  6. BZOJ4378[POI2015]Logistyka——树状数组
  7. Mushroom Classification(蘑菇分类数据集)
  8. Java生成安全随机密码
  9. [软件人生]耐得住寂寞——积累是低潮时期技术人员的品质
  10. 02 SpringBoot入门程序剖析之各种稀奇古怪的starter