每一个职业都有自己所遵循的基本规范,软件开发工程师也是这样的。工程师有一种文化,概括起来就是匠人文化,通俗地说就是精益求精的文化。很多软件开发工程师加班不是为了加班费,也不是为了上司对他的赏识,而是(或者说更多地)是为了做一个让自己满意的东西出来。高质量交付是优秀的软件开发工程师的必备品质,比极大的公司针对软件开发的质量控制是非常严格的,从需求,设计到开发,测试各个环节的把控都是有非常好的规范的,这些都是为了确保高质量的交付。
软件开发通常需要在进度和质量之间做出权衡,不同的公司(团队或者项目)选择的结果不一样。比如小型公司追求进度,开发工程师通常只是自己简单手动测试下就交付了,而且对于功能设计、注释等关注度不够,可扩展性较差。大型公司通常的做法是每天的任务量不是很大,但是必须确保高质量的交付。久而久之,两种类型的软件工程师形成了不同的风格,到后面技术已经不再是阻碍他们发展的瓶颈,更重要的是他们做事情的思路,方式和方法。技术的提升可以在三个月内解决,但是思路,方式和方法却已经根深蒂固,很难有所改变,两极分化也就越来越严重。
在带开发团队的过程中,发现很多开发人员对于自己写出来的功能根本没有测试过,更不用说写单元测试了。开发人员对自己交付的成果没有信心,出现问题的时候只强调不是自己的问题,问题出在其他模块,或者环境问题等等。我自己内心里很明白,功能完成后写单元测试,自己手动测试等等过程需要话费较多的时间,但是这个过程是保证高质量交付的基础,更多地时候是通过这种方式强化踏踏实实的作风,让自己成为一个职业化的,专业化的人。
每一个团队,每一个企业都有自己的文化,文化的造就是很难的,也是必须的过程,一旦形成就是最大的财富。员工和公司共同维护这样的一个文化,一个外人进来会感觉非常舒服,让人产生很多的动力,也愿意把这样的文化传递给身边的人。良性循环就产生了,这样产生的作用力是很大的。优秀的团队需要一个核心去维护这个文化,这个人会比较累,但是这个人一旦离开团队,这个文化如果消失,那说明这个文化还不够有凝聚力,真正的文化是如空气般存在的。