软件作为一本新兴学科,只有短短几十年的历史,相比较于土木工程这样有悠久历史的工程学,说软件工程还处在嗷嗷待哺的婴儿期,或是幼儿期一点也不为过,要真正形成一套理论完善,又能在实践上运用成功的软件工程学,我相信还有很长的路要走。正因为如此,软件工程作为一本学科,其发展也是相当迅速的,从学校课本里的正统的符合CMMI流程的瀑布模型,到实际接受度更高的敏捷开发,各种工程学和方法论可以说是百家争鸣、各有千秋。

作为一个有理想的猿类,在接受这些理论碰撞的同时,内心深处,应该要慢慢滋生出自己的工程文化,自己的最佳实践。今天在一个内部讨论中,有幸接触到这样一套文化,个人觉得还是言之有物的,故记录于此。

Do the right thing

在错误的道路上,越努力只会越错。

- 要具备挑战领导的勇气 (把握度,过之会自负)

- 要相信合理的,在可掌控范围之内的冲突是有益的

Do the thing right

具体就是软件工程的方法学

- Design review
- Code review
- Unit Test (Functional Unit Test) http://stackoverflow.com/questions/153234/how-deep-are-your-unit-tests
- CI/CD (Continuous Integration, Continuous Deployment)
- Measurement & Monitoring ( 推荐阅读 《How to measure everything》)  - 系统运维和系统提升的必备良药
- Visualize your result (dashboard)  - show给老板看

Record it

好记性不如烂笔头,做记录,有时候也叫写文档(猿类对写文档这个词有抵触感),但以一个工程师的信誉担保,必要的设计文档和工程记录真的是非常重要,主要体现在

- Reference

- Communication

当然在CSDN写博文也是一种记录,如果说在公司写项目的记录,是为了公司和同事,那么这里的记录更多的是为了自己,如果有幸这些文字能够帮助到其他朋友,那更是开心了。 所以勤做记录,于己于人都是一件功德无量的事。

Continuous Improvement

我们对这个世界的认识,有两种方法论体系,即构建论和扩展论。

-构建论, 是相信个人英雄主义,相信一个很牛B的人,可以构建出人类的伊甸园,构建出一个和谐社会。

-扩展论,是相信个人的才能和所能领悟的知识是有限的,对世界的认知应该是站在巨人的肩膀上,一点一点向前推进。

法国人相信构建论,所以攻占了巴士底狱,革命了封建王朝。

英国人相信扩展论,对旧的制度进行持续改良,从而形成了现今的君主立宪制。

在软件工程里,面对不断腐朽的旧系统,同样纯在两种不同的选择,是全部推翻重新构建呢,还是循序渐进一点一点改良重构呢,我相信这要视具体情况而定了,要做权衡,如果推翻重来的代价比重构的代价还要小,也不是不可以考虑,但总体来说,我们还是倡导扩展方法论,通过代码重构,可持续集成,对系统进行一点一点循序渐进的改良。

所以Continuous Improvement是软件保持生命力的重要手段,如果你不希望自己的系统沦落到要被别人革命的下场,那就持续的对其进行改良吧

一个工程师的工程文化相关推荐

  1. Z世代工程文化:如何带好95后工程师组成的开发团队?

    下一代工程师给招聘.组建团队和留住人才带来了一系列新的挑战和机遇.Hubspot工程总监Barbara McCarthy在Women in Tech Dublin 2018大会上分享了如何培养Z世代( ...

  2. 一个工程师对流程管理的思考

    我平时很少写博客,我是个技术人员,一般来说技术人员的博客应该以技术为主,但同时我又是一个懒人,对于技术我喜欢"亲身体验"而不喜欢"写出来",因为我觉得把技术对别 ...

  3. 网络工程师计算机类吗,机房网络工程师 | 网络工程专业的你知道吗?

    原标题:机房网络工程师 | 网络工程专业的你知道吗? 网络工程专业介绍 专业背景:网络工程专业的出现的另一背景是从上一世纪九十年代,计算机网络技术及其应用得到迅猛发展的背景下提出的,从专 业定名.培养 ...

  4. 3个CCIE对一个工程师的面试题(远去之路无比艰辛啊!)

    3个CCIE对一个工程师的面试题这是某人10月初的一个面试题目,售后职位:高级网络工程师.面试官是三位CCIE,面试过程历时2个多小时,印象非常深刻.现在这个offer基本已经确定了,事主还在考虑诸如 ...

  5. 从工程文化和运维理念理解Netflix

    http://www.infoq.com/cn/news/2018/01/netflix-engineering-culture 在技术圈儿,Netflix 是一家非常有特色的互联网公司.他们信奉&q ...

  6. 敏捷开发系列学习总结(15)——Spotify敏捷模式详解三部曲第三篇:工程文化

    分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程 摘要 在本系列文章的第一篇和第二篇,我们分别介绍了Spotify的敏捷研发团队和研发 ...

  7. Spotify敏捷模式详解三部曲第三篇:工程文化

    本文转自:Scrum中文网 原文链接:http://www.scrumcn.com/agile/scrum/21759.html 引言 Spotify通过文化和价值观来进行管理,在本篇中,我们从如下八 ...

  8. 我想建立一个工程师创业部落

    ​hi,大家好,建立一个工程师创业部落的想法由来已久. 之所以有这个想法首先是对于自己生活状态的不满,其次了解到科技变革的力量,最后看到了一些劳动者生存的艰辛. 于是想通过改变自己,将自己的经历和各位 ...

  9. 创建一个 dva 脚手架工程

    2019独角兽企业重金招聘Python工程师标准>>> 1.2 dva 安装 使用 dva-cli 命令行工具安装 dva.(本文假设已掌握 npm 基础知识) 安装 dva-cli ...

最新文章

  1. win10 中redis client提示 ERR Client sent AUTH,but no password is set
  2. 在enable mmu之前可以使用mmu了
  3. 获得创建临时表的session id
  4. VC++中对话框数据交换【十全十美】
  5. 经典排序算法-MFC实现之3:冒泡排序
  6. python编程是干嘛的-python编程能做什么开发
  7. mysql 查询 一天的时间_MySQL怎么查询每天打卡的最早时间和最晚时间?
  8. 【清华大学陈渝】第一章 操作系统概述
  9. excel文件的工作表保护密码忘记了
  10. 怎么样培育孩子的智慧[图]
  11. java long类型溢出误区
  12. 使用kubeadm部署k8s(2、k8s集群部署)
  13. Javascript基础知识之四(常用数组方法)
  14. 攻防世界-MISC-互相伤害
  15. 【公告】博客新皮肤上线啦
  16. windows 10 arm架构ISO下载
  17. abp框架mysql连接配置_ABP框架使用Mysql数据库
  18. 解决Dmaven.multiModuleProjectDirectory system propery is not set. Check M2_HOME错误
  19. 机器人仿生控制方法研究
  20. 【机器学习】发展至今的机器学习到底对我们的就业和社会产生了哪些影响?

热门文章

  1. 滑动窗口类型(Sliding window)
  2. 项目实训---微信小程序选座之7.7日报
  3. python利用STMP发送gmail、QQ邮件错误及笔记总结
  4. 电子商城数据库建表心得
  5. Python用opencv实现动态识别二维码,以及加强版Python GUI(图像用户界面编程)
  6. C#调用Lua 3、创建Lua解析器管理器
  7. 最新系统漏洞--QSAN SANOS命令注入漏洞
  8. 微信公众平台使用JSSDK网页调起扫码并获取扫码数据(PHP)
  9. 手机号码归属地查询接口(精确到地市)
  10. 荣幸成为了设计模式之禅的试读员--致谢秦小波老师