significantfrank
我是阿里巴巴架构师,团队直招技术岗,请联系我:fulan.zjf@alibaba-inc.com

导航

 

软件作为一本新兴学科,只有短短几十年的历史,相比较于土木工程这样有悠久历史的工程学,说软件工程还处在嗷嗷待哺的婴儿期,或是幼儿期一点也不为过,要真正形成一套理论完善,又能在实践上运用成功的软件工程学,我相信还有很长的路要走。正因为如此,软件工程作为一本学科,其发展也是相当迅速的,从学校课本里的正统的符合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是软件保持生命力的重要手段,如果你不希望自己的系统沦落到要被别人革命的下场,那就持续的对其进行改良吧




版权声明:本文为博主原创文章,未经博主允许不得转载。

posted on 2014-06-30 17:04  significantfrank  阅读(230)  评论(0编辑  收藏  举报