一个工程师的工程文化

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

做为一个有理想的猿类,在接受这些理论碰撞的同时,心里深处,应该要慢慢滋生出本身的工程文化,本身的最佳实践。今天在一个内部讨论中,有幸接触到这样一套文化,我的以为仍是言之有物的,故记录于此。spa

Do the right thing

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

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

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


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给老板看get


Record it

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

- Reference  io

- Communication持续集成

固然在CSDN写博文也是一种记录,若是说在公司写项目的记录,是为了公司和同事,那么这里的记录更多的是为了本身,若是有幸这些文字可以帮助到其余朋友,那更是开心了。 因此勤作记录,于己于人都是一件功德无量的事。


Continuous Improvement

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

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

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

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

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


在软件工程里,面对不断腐朽的旧系统,一样纯在两种不一样的选择,是所有推翻从新构建呢,仍是按部就班一点一点改良重构呢,我相信这要视具体状况而定了,要作权衡,若是推翻重来的代价比重构的代价还要小,也不是不能够考虑,但整体来讲,咱们仍是倡导扩展方法论,经过代码重构,可持续集成,对系统进行一点一点按部就班的改良。

因此Continuous Improvement是软件保持生命力的重要手段,若是你不但愿本身的系统沦落到要被别人革命的下场,那就持续的对其进行改良吧