了解编程的心理
原著:Bryan Dollery
编译:
原文出处:
与众所周知相反,程序员更多地象艺术家而不是科学家。 如果你想最大限度地调动团队的创造潜力,你必须开始研究程序员的心理,而且愿意用管理策略支持它。
人们常说,程序员很内向,我发现这不是事实。通常情况下,程序员确实比多数人能保持较长的注意力和集中力。一个程序员能花长时间集中精力解决单项任务而不顾其他,这就让一些人认为其有自闭特征,有人甚至认为大多数程序员都有轻微孤独症。我不认为大多数程序员有自闭取向,果真要是这样,我们的注意力就太容易破碎了。
编写程序是一个创作的行为,尽管程序员乐意在尽可能的情况下把科学和工程应用到这过程中,但编程既不是科学,也不是工程,因此一名程序员必须具备很高的创造力。这就是为什么程序员喜欢新项目的开发,而不是对旧项目的维护。这并不表明他们不想卷入过去陈旧的东西(尽管是编程的一部分),而是项目维护并不为程序员提供创造的机会。
"为了原创点子能出现,你必须让它们在内心世界里渗透,让它们在那里不受我们自己的愿望和自己的方针所约束。"
——Mihaly Csikszentmihalyi,Researcher
当有创造力的人做事的时候,他们经常进入一种精神状态,让创作的思路源源不断。这是很高的思想境界,非常有利于本人和他所在的研发机构。
著名的心理学家,芝加哥大学心理系的前主任,Mihaly Csikszentmihalyi 教授就创造力的问题,已经对几百个典型个人进行过研究,其中包括诺贝尔奖获得者和 IT 企业家,就此他也写了许多有关思路和创造力的书和论文。
Csikszentmihalyi说:“为了原创点子能出现,你必须让它们在内心世界里渗透,让它们在那里不受我们自己的愿望和自己的方针所约束。然后通过一些未知的,随机组合力量的推动,而让它们出现。正是经过这种重新组合,而不是人为的直接推动,新生事物才会涌现。”
思路是脆弱的,是需要时间来实现的。如果程序员的思路被干扰,那是需要很多的时间去重新进入状态。就是一个小时,也让你的工作整体失去一个小时的生产率。如果一天中程序员的工作被干扰多次,或许他就根本再也无法进入工作状态,没有工作的状态,创造力会是残缺的。
思路是易脆的,但也并非如表现的那样脆弱。只有那些让程序员改变思维方式的干扰才能打断思路。就是说你可以拍肩膀和程序员打招呼,询问他们在忙什么,甚至建议点什么,都是没有问题的。但是如果你问他们的进度,那么你就干扰了他们的思路。我已经几次从经验丰富的协作程序员那里听说这样的事例。他们应该知道:如果思路超过了它自身的脆弱性的话,那协作编程是不可能的。思路是某种依赖前后关系的状态,只要他们都在这种状态中,你便可以主观操纵去完成不同的任务。如离开这样的状态,那会需要相当时间来重新建立它。
创造思路,…对,思路 那么你怎样才能为开发团队最大限度的调动这神奇的力量? 方法再简单不过了:从精神上和时间上给思路的酝酿提供适当的绝缘环境,同时灵活对待个体在工作中所选择的奇异行为。
- 提供适当的精神空间
当程序员被安排去做任何具有创造性的工作时,应该容许他们不受非理性干扰地去完成任务。保证不让他们参加不必要的会议,不安排辅助性的任务。尽力去安排好这一切,让他身边的其他程序员也尽量做同样的工作。如果那样不可能的话,就让程序员拥有他自己的工作间。
- 提供足够的时间恢复创造活力
如果你希望你的程序员重复过去所犯的错误,那么你就象训狗一样不给时间休息;如果你想让他们有所创新,你应该让他们休息好。
- 满足合理的特殊要求
在 Csikszentmihalyi 的研究中提到这样一个案例,一个著名的计算机研究员,他说在计算机的很多领域,其所有好的发明创造思路都来自淋浴的时候。他说他相信,他的公司因为没有安装仅1400美元的淋浴装备,就让公司损失了几百万。Csikszentmihalyi写道:“当他换到新的有淋浴的公司,他的点子就层出不穷。”
我并不是说你要为程序员提供新的淋浴设施 (至少不是所有的),但是你应该停止象对待插头那样一视同仁地对待他们。他们是独立的个体,很多方面都是不同的,每每都有自己的规律和表现形式。大多数人都知道怎样找到自己的思路,这才是你需要关注的。
如果一个程序员告诉你,他每天在下午2点的时候需要15分钟的休息,你就提供这个方便吧;这仅仅是放张沙发在咖啡间或者休息间。(你有休息间,不是吗?)
或者这样:与其给整个团队配备相同的椅子和桌子,为什么不将预算派发给每个程序员,让他们自己去买他们自己的椅子和桌子? 办公室虽然看上去不太整齐,但提供了让每个程序员都感觉舒适的环境,那样可以激发他们的工作热情。
我知道你会争辩;要考虑费用问题!如果你要把这个问题放在首位,那么你就根本没有明白本文的整个主题。你要从头开始阅读本文,这次要集中注意力。
如果你不能调动人的积极性,那么你怎么能做好你的项目?
如果你雇佣图像设计师,帮你创造一个甜眼图在你的网页上,你或许为他们提供合适的工具,工作地点和宽松的条件促进他创作。你宽容他们的个性,为他们买透明的计算机。如果你不考虑程序员的需要,那么你就很难发挥他们的长处而得到你应该得到的。
我们的任务增强人的聪明才智,充分雇佣多样化的人才,取长补短。你应该尽力促使你所管理或与其合作的所有人做到最好——如果你不能调动人的积极性,那
么你怎么能做好你的项目?
这样做是否需要你花费更多的钱,我没有具体的数据,但潜在的好处是巨大的。如果你继续太在意风险/效益的东西,那么你将继续生产平庸的产品。你的软件是人来做的,了解人的心理是很有好处的。
--------------------next---------------------
这篇文章看了也没用呀,除非我以后当老板,如果你把这篇文章发给老板,那么他就会受不了,认为你在挑公司毛病,最重要的是把你自己的工作做好,本来印象不错,一下全毁了!我现在的公司软件开发也不正规,找了一个就会理论的傻X人,开发经验还没3年呢,软件工程中的名词就会了不知多少了,天天标准呀等名词,屁! ( hexiyajin 发表于 2005-2-22 10:02:00)
难,要老板了解员工的心理,老板在乎的是要求他的员工能为他创造多少的价值!只要你能为我赚钱了,那么一切都好办了,想要加薪,想要舒适环境,好,完成这个产品后再说!
之后,每天过来看看,拍拍肩膀问你,"进度怎样?".
我现在做的公司也好得不了哪里,老板只想着包装,程序的开发只要能做得出来就行了,管你规不规范,团队交流怎么样,我一头雾水,只知道任务下来,就一定要完成,想要点创新的思想,免提,文档完成还不算,还要向其他使用我的控件的人讲解,最好写得通俗易明,不然自已吃苦!!! ( laiboy80 发表于 2004-8-17 9:40:00)
to xinbao_1996:
恭喜你呀,但你和老板的关系很熟会对其他人不利,比如在有不同意见的时候,老板会更倾向于你,而不是“优者胜”,这看起来对你有利,但同时你也失去了校正检验的机会。 ( 周星星 发表于 2004-8-16 8:35:00)
对这篇文章有同感。因为公司里不可避免的有其他声音的存在,所以当我开始工作的时候,我习惯于带上耳塞。codeproject上不是有调查吗,20%以上的人有带耳塞习惯,呵呵,特别是那些节奏很强的音乐。我们公司还好,老板和我很熟,所以我的很多要求,在资金允许下老板都会支持^_^。 ( xinbao_1996 发表于 2004-8-15 20:11:00)
to pepperdiyu:我现所在公司的中层由一帮做MIS都失败的白痴们管理着所有的软件开发流程,而现在做的是电厂SIS,与破MIS毫无相同之处,而它们仍然保留着MIS时的陋习,认为只要想得出就做得出,极力的贬低程序员,连什么是对象都不清楚,却只要程序员给出UML中的类图,其他什么都不重要,能不能实现不重要,会不会因为逻辑不通被人嘲笑不重要,只要出现了class就合格,class出现得越多越优秀。
但和你遭遇不同的是,它们不是骗子,它们只是从那些倒闭公司淘汰下来的垃圾货,无自知之明而已。 ( 周星星 发表于 2004-8-14 11:59:00)
这篇文章看了以后,真是让人兴奋。
我所在的是一家小软件公司,公司属于风险投资,可是我们的总经理、人力资源经理连起码的电脑基础都没有,他们以前是做机械的,还有一个是个骗子,拿别人的科技成果骗钱,一遇到技术问题就不知道该怎么办了,公司因此而失去了好多机会。
现在竟然又开始做软件,公司的软件人员的管理实在是太乱了。 从来没有写过文档,从来没有测试程序。....
更别想着舒适的工作地点和宽松的条件了,总是希望你周末也工作,可是谁有精神啊。更别想着创作了。
( pepperdiyu 发表于 2004-8-13 14:25:00)
.......................................................
--------------------next---------------------