`
juggler
  • 浏览: 169932 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类
最新评论

程序开发的心理研究 - 转 (很有感受啊....)

阅读更多

程序开发的心理研究

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

一、开发项目的原则

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

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

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

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


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

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

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

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


三、监狱里的囚犯

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

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

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

分享到:
评论

相关推荐

    行业文档-设计装置-一种丝绸剪纸.zip

    5. 软件开发:为了让装置能够运行,需要编写控制程序,可能是嵌入式系统开发,也可能是运行在PC或移动设备上的应用程序。这需要熟悉C/C++、Python等编程语言,以及实时操作系统和物联网技术。 6. 材料科学:为了...

    开题报告大学生心理健康问题“WishingStar”微信小程序开发 已通过开题答辩的.doc

    ### 开题报告大学生心理健康问题“WishingStar”微信小程序开发 #### 一、选题依据及系统开发意义 随着现代社会的快速变化和发展,人们面临着来自生活的各个方面不断增加的压力,特别是大学生群体,他们肩负着国家...

    趣味心理测评微信小程序.zip

    【微信小程序开发与心理测评应用】 微信小程序是腾讯公司推出的一种轻量级的应用开发平台,它无需下载安装,用户可以通过微信直接使用,极大地提升了用户体验。本项目“趣味心理测评微信小程序”结合了这一特性,...

    最新小程序大学生心理健康服务+ssm.zip

    微信小程序“大学生心理健康服务Ssm.zip”是一款基于Spring、Spring MVC和MyBatis(SSM)框架开发的小程序,专门为大学生提供心理健康服务。该项目结合了微信小程序的便捷性和普及性以及SSM框架的高效性能,致力于为...

    大学生心理测试系统小程序lw.doc

    《大学生心理测试系统小程序开发详解》 随着社会的快速发展,心理健康在医疗卫生领域中的地位日益凸显。大学生作为社会的重要群体,其心理健康状况直接影响到他们的成长和发展。据统计,我国约有五分之一的大学生存...

    SCL-90心理测试系统(C)+试题开发部分

    《SCL-90心理测试系统(C)+试题开发部分》是一个专为评估个体心理健康状况而设计的应用程序。这个系统基于SCL-90量表,这是一种广泛使用的心理健康筛查工具,尤其适用于临床和非临床人群。SCL-90全称为Symptom ...

    微信小程序用户使用意愿研究.pdf

    在研究微信小程序用户使用意愿时,技术接受模型(TAM)是本研究采用的理论基础。技术接受模型最初由戴维斯(Fred D. Davis)在1986年提出,主要用来研究用户对信息系统的接受行为,以及分析影响用户行为的因素。TAM...

    基于微信小程序的大学生心理健康服务系统.zip

    微信小程序开发框架:利用微信官方提供的小程序开发框架,确保了应用的高效运行和良好的用户体验。 云数据库:使用云数据库存储用户数据,保证了数据的安全性和可靠性。 人工智能算法:引入人工智能算法进行初步的...

    H5微信小游戏源码-读心术.zip

    总结来说,"H5微信小游戏源码-读心术.zip"是一个包含H5技术和微信小程序开发实践的项目,它提供了学习和研究H5游戏开发的机会。通过分析和理解源码,开发者可以掌握H5的动态渲染、微信小程序的API使用以及游戏设计的...

    【论文开题必备】大学毕业论文的研究方法、技术路线、研究进程(参考).pdf

    9. 个案研究法:个案研究适合对特定项目、团队或现象进行深入研究,如研究特定软件开发团队的协作模式。 10. 功能分析法:在分析软件系统时,功能分析可以帮助理解各个组件如何协同工作以满足系统需求。 11. 数量...

    基于微信小程序的心情调节终端.zip

    1. 技术框架:微信小程序开发通常采用微信开发者工具,结合WXML(微信小程序标记语言)和WXSS(微信小程序样式语言)进行界面设计,以及JavaScript处理业务逻辑。 2. 用户体验设计:注重界面简洁、操作流畅,利用...

    基于手机APP的社区戒毒电子系统有效性及适用性研究.pdf

    同时,研究组在PHQ-9和GAD-7评估中的得分低于对照组,显示系统可能有助于改善戒毒人员的心理健康状况。 5. **用户反馈**: 社工和戒毒人员对该系统持开放和谨慎乐观的态度,但指出需提升使用依从性和友好性,并建议...

    基于用户体验的微信小程序微交互设计.pdf

    微信小程序是一种不需要下载安装即可使用的应用,它实现了“触手可及”...微交互的设计不仅仅是一个技术问题,它还涉及到对用户心理的揣摩和对用户行为的深刻理解,只有这样,才能设计出既实用又有吸引力的微信小程序。

    毕业设计-基于SCL90的心理健康测试app

    【标题】"毕业设计-基于SCL90的心理健康测试app"揭示了这个项目的核心是开发一个用于心理健康评估的应用程序,特别关注SCL-90量表。SCL-90,即症状自评量表,是一种广泛使用的心理健康筛查工具,能够评估个体的心理...

    UI界面设计、交互设计及程序开发[汇编].pdf

    设计师通过运用电脑制图技能,结合心理学原理,创造性地展示软件功能,既满足了用户的视觉感受,也降低了用户的学习成本。一个成功的UI设计,不仅需要具备视觉吸引力,更应该注重用户的实际操作体验,以用户为中心,...

    放下惊恐,女大学生前线蒸馒头-惊恐.docx

    1. **心理健康热线与APP**:建立专门的心理健康热线或开发相关应用程序,为灾民提供心理咨询服务。 2. **虚拟现实疗法**:利用虚拟现实技术帮助灾后人群缓解创伤后应激障碍(PTSD)症状,通过模拟情境的方式进行治疗...

    基于Matlab的噪声响度分析系统开发.pdf

    响度本身是心理声学中的一个参数,它反映了人耳对声音响度的主观感受。响度计算的早期概念由Barkhausen提出,而在本文中,响度的计算是基于心理声学的研究结果和标准化流程进行的。 根据文章内容,响度分析系统基于...

    手机APP交互界面人因适合性测试程序的设计与实现.pdf

    手机APP交互界面人因适合性测试程序的设计与实现.pdf 本资源主要讲述了手机APP交互界面人因适合性测试程序的设计与实现。该程序旨在检测APP交互界面的人因适合性问题,以提高APP交互界面的人因适合性测试的效率。 ...

    安卓应用-健康医疗-脑医汇app v4.5.2 安卓版.apk.zip

    【安卓应用-健康医疗-脑医汇app v4.5.2 安卓版.apk.zip】是一款专注于健康医疗领域的应用程序,适用于Android操作系统。这款应用的版本号为4.5.2,通常意味着它已经经过了多次迭代和优化,旨在提供更加稳定、功能...

Global site tag (gtag.js) - Google Analytics