harveybarray

前言

       至去年11月份从合伙创业中跳出来,已经快半年了,期间负责做了一个java项目。由于是C#转java,许多技术知识需要边学习边使用,对项目整体、团队成员代码质量把控的精力

就没有轻车熟路的C#玩的的那么嗨了。以至于,出现团队成员注释掉现有业务代码实现新业务代码的严重情况发生。现在项目阶段性结束,来聊聊大多程序员家庭缺少的基础能力:

团队协作、遵守团队规范。

何为优秀的程序员?

  在网上搜索优秀程序员,出来一大堆优秀程序员所具有的特征:爱学习、掌握多种语言、有一定的文档功底、代码设计够灵活、会经常备份、注意安全性等。很少提到责任、团队合作、

沟通、团队规范。在公司招聘考核项目中,也很少会涉及到团队合作。很少会询问前任公司代码质量管理方面的问题。难道团队合作与遵守团队规范真的只是一个优秀程序员的佩纯吗?

非也,俗话说:众人拾柴火焰高。工作中我们身在团队,互相团结、积极向前发展,一个团队,没有团结的力量,企业的整体进步会需要付出更大努力。不怕虎生两翼,就怕人起二心。

如果团队人员代码风格各异,随意使用插件,代码风格也迥异,最后出来的项目就是四不像,后期扩展与维护成本会呈几何倍数递增。只有懂得团结协作、遵守团队规范的人,

才能明白团结协作对自己、对别人、对整个企业团队的意义,才会把团结协作当成自己的一份责任,才是一个优秀的程序员。

为何会有大量的独奏家存在?

     就我所见、朋友谈及,当前程序员大家庭很少会有团队意识较强的优秀人员存在。造成这个结果的原因也较多,但是主要原因还是可以归纳的:

 1、微小企业为生存挣扎,无多余或者不愿付出为提高代码质量所产生的成本。

 2、许多程序员多数辗转于各种中小企业之间,而中小企业都是靠业务驱动,对代码质量要求不高,没有较完善的代码规范文档和重视技术质量的企业文化,程序员逐渐养成习惯。

 3、程序员也是人,是人就会唯利是图。在团队中过于为了表现自己而特立独行,反而造成不好后果。

 4、程序员专业从大学到工作,接触社会的面就比较单一。以至于造成情商低,智商高的假象,最后得到社会大众的公认。

 5、程序员大多出自寒门子弟,社交基础低,社会交际机会少。在社交中多受到情商低,智商高的熏陶,最终养成自行其是的风格。

 6、技术管理人员不愿意浪费精力去干得罪人的事情,且无法坚持实施团队规范制度。

如何培养团队合作能力?

       最省事、直接的方式就是换血。把无培养价值的人员从团队中剔除,招聘更优秀的程序员,让新鲜血液影响整个团队。话很超,可能会被很多同行臭骂,但是优秀的程序员效率更高,

相比一般程序员,效率的差距可能会出现好几倍的差距。而且,优秀的程序员会更多的考虑项目整体影响,会主动交流,实现的功能BUG也会少很多。实际情况中,剔除这个办法一般很难行得通,

毕竟都是人,关系不会搞得很死。如果换血行不通,就只有加强公司内部人才培养和建立完善的制度,并坚持执行制度。

       许多公司技术领导时常抱怨现今程序员越来越多,但是想招到一个优秀的程序员缺难上加难,所以公司在招聘人员的时候都喜欢让信得过的成员内推或者自己培养人才。培养人才无非3种:

第一种:招聘实习生,手把手的教;第二种:建立完善的代码规范制度和*,并严格实施;第三种:按期开培训课程和技术座谈会,让每个成员都了解项目业务及技术构成,让每个成员都有

参与感。

      建立完善的代码规范制度和*:对代码命名、架构分层、业务分块做详细的文档规范。在代码审查上,要求成员做交叉走查,并对走查的功能做优缺点评价;项目技术负责人按时对成员代码

做抽查。许多同学认为这个有个毛用,真真实施起来,都是应付了事。我也知道是应付,但是这个制度会营造出一个谨慎编码的氛围,长时间下来,会或多或少的让成员代码风格一致,并养成谨慎编码

的好习惯。

       按期开培训课程和技术座谈会:这个值最好的办法。按期让项目主要负责人或成员讲解项目业务和技术架构相关的知识。在座谈会期间,让每个人员对整个项目的业务和架构都有所了解,让每个人员都

参与到项目技术改进上,在培养团队意识,加强团队凝聚力的同时,也让代码框架更加完善。

总结

      团队协作和遵守团队规范的能力是一个优秀程序员必备的能力。一个公司想要大量拥有这种人才,减少成本靠招聘很难办到。唯一的办法就是打造相应的企业文化,通过企业文化营造出团队合作重要性的氛围,

改善程序员的意识,让之养成习惯。

 

相关文章: