Javadream

A long way and a dream.

程序开发的心理研究

本文只是根据本人的一些经验,还有外界的一些文章,总结出来的程序开发过程中程序员的心理的一些总结,并没有通过严格的验证。

一、开发项目的原则

一般研究发现,一个人刚进行一个新的公司,或者接受一个新的任务,他总得要一个适应的过程,这段时间叫做适应期,这个过程根据不同的人所需要适用的时间长度不同,对于一个程序员来说,如果接受一个难度适中的项目,他一般需要3个月的时间来适应,当然,这个时间只是一个一般比较普遍的情况,可能有些人1个月就可以适应了,有些人搞了半年,还是对系统很不熟悉。这个适应期大概包括下面几个部分:1。对环境的适应。社会是由人组成的社会,当然程序员进行一家新的公司、或者一个新的环境,总免不了要跟人打交道,可能有人会说,“每次开发系统都是我独自一人完成”,恕我坦白一点的说,这样开发出来的系统根本不能算是一个系统,现代项目开发一般需要包括前期需求分析、需求文档开发、设计文档开发、代码编写、系统测试等。要使得这一总个流程顺利的进行下去,那就需要人与人之间的合作,所以一个程序员到了一个新的环境、面对一些陌生的人、总得有一点的时间相互之间进行交流,建立起一种友谊。2。对项目的适应。我们接受一个项目,不管是全新的还没开发的项目,还是已经处于维护状态的项目,我们总得对它的业务逻辑、开发风格、编程规范、系统构架等有一个了解。业务逻辑是指一个项目相关的操作是怎么进行的、各个操作具体如何操作等等。开发风格是系统原有是如何进行开发的,现在国内有很多系统都是一招了一个新人就叫他进行代码的开发,结果他等到开发完了才发现原来他花了很久才开发出来的类(java和c++中的一种概念,相当于一个功能模块,可以被其它功能使用),其实系统早就已经有了,使用的时候这样调用就可以了,等等。编程规范大家应该都知道了,现在基本不同的语言都有自己的编程规范,比如说java有java编程规范,同时,不同的公司可能根据自己的情况定义了一些规范,比如说,判断一个变量是否为空,有些公司要求将null放在前面等。系统构架是指一个项目的总的框架是如何搭建的,采用哪种语言等,比如说、现在很多开发网上应用系统都采用Struts+Spring+Hibernate构架(采用java语言)。这些都需要一个适应的过程,如果对这些都还没了解清楚就匆忙的开发编写代码,那写出来的将会是一些格格不入的代码、不管这个代码单独拿出来看的时候是多么的完美。

适应期过后,接下来是一段比较长的稳定期。这段时间一般有半年到一年的时间。在这段时间里面,程序员对系统业务比较熟悉,开发系统得心应手,他们一般在定位一个系统问题的时候,能够比较快的查找出问题并处理,而不像一些新手一样,对系统调试N久之后,才将问题处理,之后才发现,问题只不过处理了一半,在其它地方存在的相同的问题没有处理,或者处理完一个问题之后,却导致其它地方出了问题。

稳定期过后,程序员开始陷入了厌烦期。这个厌烦期是没有期限的,随着时间的推移,程序员可能越来越讨厌自己的工作,他经常抱怨系统编码是如何的差劲,而完全忘记了这个差劲的系统也有他的一份功劳在内。他们工作的时候不像以前那样有积极性,经常在上班前2分钟到达公司,还可能在下班前半个小时就开始收拾东西、给家人打电话、等待的下班时间的到来。他们开始对反馈的一些问题应付了事,他们开始对新近来的员工指手画脚,在开会的时候发短信,等等。

根据上面我们可以发现,一个程序员新接触一个新的项目的时候,我们要给他一段时候熟悉系统,而不管他是多么强的一个高手。很遗憾的是,现在国内很多公司一招了一个新人,就开始压一大堆任务给他,而完全不给他们适应的机会。这样产生出来的经常是一个千疮百孔的系统,甚至完全就是一个失败、无法使用的系统。当一个人开发对现在的系统厌烦的时候,就要开始分配新的任务给他,让他去熟悉、开发新的系统,而不要总抱着这样的想法,就是现在系统他最熟悉了,让他开发最合适,让他去开发新系统还要让他花时间去熟悉新系统等等。这样下去的结果可能有两种,一是开发人员被迫辞职了,剩下来的就是一个没有人熟悉的系统,招来的新员工在这个系统上花费了大量的时候,才搞个一知半解,甚至系统可能就这样寿终正寝了。还有一种结果就是开发人员因为高工资继续留下来,但是系统的开发进度越来越慢,bug越来越多,开发人员也变得有恃无恐的,而领导层却越来越担心由于开发人员辞职导致系统无法进行下去。


二、今天周末、早点回家吧!

我想国内企业最擅长的就是剥削劳动者的劳动力的,甚至有人叫嚷着:“没有程序员是不需要加班的”。他们将一个又一个的任务压在程序开发人员的身上,将完成时间压缩后再压缩,直压得开发人员两眼冒星,口吐三口鲜血后在当天的工作日志上写道:“今天是我连续第三天通宵了,今天总共处理了283个系统问题,最后系统终于跑起来了,用户终于同意通过了检查,我光荣的完成了使命!”。

在这里我并不想批驳公司对程序开发人员的剥削,这种高强度开发对系统的影响,它最终也会损坏到公司的利益。项目开发跟一般工厂上组装一件电器是不一样的,我们的项目要实现一个功能,是有很多中实现方式的,还要考虑系统构架、可重用性、可读性等。比如说,一个好的系统构架,你会发现实现起功能来又快又好,而且能够应付系统开发过程中业务逻辑的变化,而一个差的构架,实现起功能来很困难,而当业务逻辑变化时,你会发现几乎所有的代码都需要重新修改,这会令你陷入绝望的境地,而不像一个好的架构那样修改一下配置文件或者两段代码都搞定了,这其中的快慢有时可以用N次方来形容的。而恰恰是这种好的构架在前期需要大量的时候进行设计,如果一味求快的话,那么开发人员根本就没有时间进行一个好的构架的设计,这样前头快的做法,将会对后续的开发带来影响,使得开发起来更加困难。可重用性也是一样,如果考虑可重用性的话,那么可以将一些逻辑抽象出现,写出一个类,这样,还后续开发的时候,如果有相同的逻辑,就可以使用这个类了,如果对这个逻辑进行修改的话,那只要修改了这个类,所有的逻辑都同时改变了。如果完全不考虑这些的话,那么后续开发都要开发类型的代码,如果对逻辑修改的话,那么将是很麻烦的事情,当然,这个进行抽象成一个类的动作,比自己开发更花时间,但是更好。对于可读性,对于一个紧急的开发,你可能发现里面连一个注释都没有,很可能开发人员后来翻出这些代码来看的时候,他已经不记得这到底是什么意思了,甚至连是不少他开发的都不记得了。

所以,我想说的就是,不要给程序开发人员太大的压力,只要适中就可以了。还有,不要一味的要求开发人员干活,要适当的表现出对他们的关心,比如说,周末的时候,跟他们说:“今天周末,早点回家吧!”,这样对开发人员的作用是很大的。


三、监狱里的囚犯

我想大概国内的软件公司是全世界男女比例最失调的吧,随便走进那家公司,你经常会看到的是大批的男性开发人员的,而作为女性的一般都是些文员,市场人员,资料开发人员等,领导层他们有自己的想法,他们这样想着,如果招了一个女性开发人员进公司的话,那么她晚上就不能加班太晚,不然还得负责她的安全。还有,在中国程序员眼里,女性程序员大多不懂编程,整天问东问西。还有,领导们可能担心招了女性程序员之后,会影响到大家的情绪,可能是造成公司内部分裂的根源,等等。同样的,也是女性自身方面的问题,国内的女性一般偏向于学习文科方面的东西,在大学里面,学习理科的女性要比男性少得多。等等这些都造成了现在程序开发行业阳盛阴衰的现象。

这种现象所引起的后果就是国内很多的男性开发人员都很内向,不善于跟女性交流,见了女性有些还会脸红。很多在公司里面勤勤恳恳,工资也不低,人长得也不衰,但是就是没有女朋友。他们的生活是压抑的(至少是性压抑吧)。这让我想起了一个事情,曾经有人做过实验,让一个男性从一个关押着女性囚犯的监狱旁边走过,这群女性囚犯大多是被关押了很久的,在这期间,她们根本就没有接触过男性,虽然那个男的只是从旁边走过,那些女性囚犯只是听到了那个男的声音,但是在女性囚犯中马上产生一阵骚动,她们大部分人的女性荷尔蒙都在那个是否明显增多了。我想用这个来形容现在的程序员是最好不过了。程序员就好像被关在监狱里的囚犯,白天干活,经常加班,晚上回去就睡觉,第二天又开始新的工作。他们在公司里的经常是在处在一个被压迫的状态,很少有时间进行其它的活动等。

我想这是有害的,中国如果继续这样发展的话,将会阻碍软件行业的发展。领导应该多考虑招一些女性的程序员,多组织一些活动等。让程序员感觉到公司里面的一些人性化管理,这就是一个公司的软环境,让程序员安居乐业的软环境。


只有注册用户登录后才能发表评论。


网站导航: