Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2087028
  • 博文数量: 909
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 12260
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-06 20:50
文章分类

全部博文(909)

文章存档

2008年(909)

我的朋友

分类:

2008-05-06 22:12:28

一起学习
了解编程的心理

原著:Bryan Dollery
编译:Jenny Chen

原文出处:Understanding the Psychology of Programming

  与众所周知相反,程序员更多地象艺术家而不是科学家。 如果你想最大限度地调动团队的创造潜力,你必须开始研究程序员的心理,而且愿意用管理策略支持它。
  人们常说,程序员很内向,我发现这不是事实。通常情况下,程序员确实比多数人能保持较长的注意力和集中力。一个程序员能花长时间集中精力解决单项任务而不顾其他,这就让一些人认为其有自闭特征,有人甚至认为大多数程序员都有轻微孤独症。我不认为大多数程序员有自闭取向,果真要是这样,我们的注意力就太容易破碎了。
  编写程序是一个创作的行为,尽管程序员乐意在尽可能的情况下把科学和工程应用到这过程中,但编程既不是科学,也不是工程,因此一名程序员必须具备很高的创造力。这就是为什么程序员喜欢新项目的开发,而不是对旧项目的维护。这并不表明他们不想卷入过去陈旧的东西(尽管是编程的一部分),而是项目维护并不为程序员提供创造的机会。

"为了原创点子能出现,你必须让它们在内心世界里渗透,让它们在那里不受我们自己的愿望和自己的方针所约束。"

——Mihaly Csikszentmihalyi,Researcher
  当有创造力的人做事的时候,他们经常进入一种精神状态,让创作的思路源源不断。这是很高的思想境界,非常有利于本人和他所在的研发机构。
  著名的心理学家,芝加哥大学心理系的前主任,Mihaly Csikszentmihalyi 教授就创造力的问题,已经对几百个典型个人进行过研究,其中包括诺贝尔奖获得者和 IT 企业家,就此他也写了许多有关思路和创造力的书和论文。
  Csikszentmihalyi说:“为了原创点子能出现,你必须让它们在内心世界里渗透,让它们在那里不受我们自己的愿望和自己的方针所约束。然后通过一些未知的,随机组合力量的推动,而让它们出现。正是经过这种重新组合,而不是人为的直接推动,新生事物才会涌现。”
  思路是脆弱的,是需要时间来实现的。如果程序员的思路被干扰,那是需要很多的时间去重新进入状态。就是一个小时,也让你的工作整体失去一个小时的生产率。如果一天中程序员的工作被干扰多次,或许他就根本再也无法进入工作状态,没有工作的状态,创造力会是残缺的。
  思路是易脆的,但也并非如表现的那样脆弱。只有那些让程序员改变思维方式的干扰才能打断思路。就是说你可以拍肩膀和程序员打招呼,询问他们在忙什么,甚至建议点什么,都是没有问题的。但是如果你问他们的进度,那么你就干扰了他们的思路。我已经几次从经验丰富的协作程序员那里听说这样的事例。他们应该知道:如果思路超过了它自身的脆弱性的话,那协作编程是不可能的。思路是某种依赖前后关系的状态,只要他们都在这种状态中,你便可以主观操纵去完成不同的任务。如离开这样的状态,那会需要相当时间来重新建立它。

创造思路,…对,思路
  那么你怎样才能为开发团队最大限度的调动这神奇的力量? 方法再简单不过了:从精神上和时间上给思路的酝酿提供适当的绝缘环境,同时灵活对待个体在工作中所选择的奇异行为。
  1. 提供适当的精神空间
      当程序员被安排去做任何具有创造性的工作时,应该容许他们不受非理性干扰地去完成任务。保证不让他们参加不必要的会议,不安排辅助性的任务。尽力去安排好这一切,让他身边的其他程序员也尽量做同样的工作。如果那样不可能的话,就让程序员拥有他自己的工作间。
  2. 提供足够的时间恢复创造活力
      如果你希望你的程序员重复过去所犯的错误,那么你就象训狗一样不给时间休息;如果你想让他们有所创新,你应该让他们休息好。
  3. 满足合理的特殊要求
      在 Csikszentmihalyi 的研究中提到这样一个案例,一个著名的计算机研究员,他说在计算机的很多领域,其所有好的发明创造思路都来自淋浴的时候。他说他相信,他的公司因为没有安装仅1400美元的淋浴装备,就让公司损失了几百万。Csikszentmihalyi写道:“当他换到新的有淋浴的公司,他的点子就层出不穷。”
      我并不是说你要为程序员提供新的淋浴设施 (至少不是所有的),但是你应该停止象对待插头那样一视同仁地对待他们。他们是独立的个体,很多方面都是不同的,每每都有自己的规律和表现形式。大多数人都知道怎样找到自己的思路,这才是你需要关注的。
      如果一个程序员告诉你,他每天在下午2点的时候需要15分钟的休息,你就提供这个方便吧;这仅仅是放张沙发在咖啡间或者休息间。(你有休息间,不是吗?)
      或者这样:与其给整个团队配备相同的椅子和桌子,为什么不将预算派发给每个程序员,让他们自己去买他们自己的椅子和桌子? 办公室虽然看上去不太整齐,但提供了让每个程序员都感觉舒适的环境,那样可以激发他们的工作热情。
  我知道你会争辩;要考虑费用问题!如果你要把这个问题放在首位,那么你就根本没有明白本文的整个主题。你要从头开始阅读本文,这次要集中注意力。
如果你不能调动人的积极性,那么你怎么能做好你的项目?
  如果你雇佣图像设计师,帮你创造一个甜眼图在你的网页上,你或许为他们提供合适的工具,工作地点和宽松的条件促进他创作。你宽容他们的个性,为他们买透明的计算机。如果你不考虑程序员的需要,那么你就很难发挥他们的长处而得到你应该得到的。
  我们的任务增强人的聪明才智,充分雇佣多样化的人才,取长补短。你应该尽力促使你所管理或与其合作的所有人做到最好——如果你不能调动人的积极性,那 么你怎么能做好你的项目?
  这样做是否需要你花费更多的钱,我没有具体的数据,但潜在的好处是巨大的。如果你继续太在意风险/效益的东西,那么你将继续生产平庸的产品。你的软件是人来做的,了解人的心理是很有好处的。 下载本文示例代码


了解编程的心理了解编程的心理了解编程的心理了解编程的心理了解编程的心理了解编程的心理了解编程的心理了解编程的心理了解编程的心理了解编程的心理了解编程的心理了解编程的心理
阅读(315) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~