您的个性如何影响您的编码方式
软件开发人员如何与人联系? 我们的编码人员通常不会以我们能同情或了解普通人的能力而闻名。 有时似乎我们与其他所有人的处境不同。
那么,从心理上讲,编码员是一个相当独特的群体吗? 它们是否像刻板印象所暗示的那样不同? 没有尽可能多的数据。 尽管进行了大量研究,但他们大多使用MBTI(Myers-Briggs类型指示器),它有点陈旧且有疑问。 即使这样,如果我们撇开缺乏更新和更有效的心理计量学,仍然存在一些惊人的一致模式。
让我们短暂浏览一下程序员和编码人员的个性风格,看看这可能对他们的团队动力和编码工作有何影响。
MBTI概述
由于我今天要查看的大多数数据都使用MBTI,因此让我们快速回顾一下。 MBTI(Myers-Briggs类型清单)基于Jung的思想并进行了一些调整,并具有四个基本区别:
- 外向性(E)与内向性(I)
- 感知(S)与直觉(N)
- 思考(T)与感觉(F)
- 判断(J)与感知(P)
有了一个简短的心理测验,人们就可以得到每一个的分数,并且通常可以得到结合字母的类型,例如ESTJ。 由于这些都是分数,因此有些人处于界限,另一些人可能坚定地站在一边或另一侧。
值得一提的是,MBTI的历史可以追溯到1940年代,最初是为了帮助妇女在战时找到合适的角色,当时男人们全都与纳粹作战。 它不完全是现代的,并且自心理计量学以来已经走了很长一段路,但是它已经存在并且使用了很长时间,因此需要处理大量数据。
第二点是:MBTI与大多数心理计量学一样,衡量的是喜好而非能力 。 仅仅因为某人比直觉更喜欢感知并不意味着他们在直觉感知方面没有很高的能力,只是这不是他们的第一个自然本能。 人们可以并且确实学习了适应不同情况的策略。
编码员不同于一般人群
有许多使用MBTI来确定软件行业员工偏好的研究,但Capretz进行的一项更完整的研究表明,与普通人群相比,开发人员中的几种类型更为普遍:
- ISTJ:24%的编码员,占总人口的12%,例如:Sean Connery
- ESTJ:15%的编码员,占总人口的9%,例如:Michelle Obama
- ESTP:8%的编码员,占总人口的4%,例如:唐纳德·特朗普
- ISTP:8%的编码员,占总人口的5%,例如:Vladimir Putin
- INTP:8%的编码员,占总人口的3%,例如:Tina Fey
- ENTP:7%的编码员,占总人口的3%,例如:Tom Hanks
- INTJ:7%的编码员,占总人口的2%,例如:Arnold Schwarzenegger
这不是唯一的研究,尽管大多数其他研究使用的样本量太小而无用,或者使用的是偏倚样本。 模式是相似的,但我不会将它们用作证据。
我错过了在开发人员中比其他人都少得多的类型,但是它们也可以告诉我们。 我建议您阅读原始文章,以获取有关数据的更多信息。
看着这些,有一个共同的主题。 在所有情况下,“ T”因素(对思考的偏爱)在软件开发人员中占主导地位。 也存在其他差异,但让我们一次解决一个问题。
1.作为一个整体,软件开发人员不会比其他任何人都内向
仍然有关于内向的神话。 它在文学中无处不在。 例如。
“事实上,软件领域主要是内向的人,他们通常很难与用户沟通。”(Capretz,2003年)。
我不知道卡普雷茨为什么要发表这一评论,因为他报告了一些非常好的数据,这证实了内向性在开发人员中仅比普通人高出10%。 这是很小的效果。 思维更普遍100%,直觉更普遍25%。 无论如何,内向的影响相比之下是非常微不足道的。
其次,至关重要的是,MBTI中的外向性和内向性与日常用法并不相同,但可以追溯到卡尔·荣格。 (我使用拼写“外向性”来强调与日常社交“外向性”的区别。)还有更多,什么是您最大的动机? 行动世界,人与物? (即外向)或思想和反思的世界(即内向)。 MBTI内向的人更喜欢与人的互动更少,更深入,参与更多,而外向的人更喜欢更短,更频繁的互动。 为了快速了解用户,外向性可能是一个优势,但是性格内向的人非常擅长于深度的社交互动。
所以请让我们摆脱这种荒谬的废话,即编码员是刻板印象是反社会内向的人,这有两个原因。 首先,这是不正确的;其次,内向并不意味着您可能会想到。
2.决策策略差异很大
与其他人相比,开发人员成为-T-(思想而不是感觉)的可能性大约是后者的两倍。 这意味着软件开发人员在做出决定时往往更合乎逻辑,受情况的“感觉”影响较小。 这是迄今为止开发人员与普通人群之间最明显的区别。
典型的软件开发人员喜欢决策背后的逻辑一致性。 只要有一致性,就没有什么关系。 相比之下,其他人更喜欢情况的“感觉”,使用同理心,并从其他人的角度来想象情况。 换句话说,编码人员与其他人员在如何证明决策依据方面存在差异。
这是一个很好的新示例。 Docker刚刚宣布了其年度和月份的发行版本号更改为“ YY.MM”。 因此,2017年3月的版本是“ 17.03”。 与常规约定相比,这是一个根本性的更改,例如:“ 1.8.0”,其中“ 2.0.0”是较大的更改,“ 1.9.0”是适度的更改,而“ 1.8.1”也是小变化值得担心。
年/月版本控制是合乎逻辑的。 它有明确而简单的规则。 关于新版本应该是“ 1.9.0”还是“ 2.0.0”的规则是一个判断的问题,很明显,Docker社区还没有共同努力。 因此,需要简单明了的规则会给“ YY.MM”带来压力。 该社区之外的每个人都会受苦,因为“ 17.05”和“ 17.06”之间的差异可能微不足道或可能很大,但这并不是他们的问题。
因此,总的来说,与确定当前情况相比,开发人员更偏向于做出适合其世界观的决策。 因此,是的,开发人员(基于MBTI,有缺陷,请记住)在决策过程中不太可能使用他人的感受。
3.编码人员更喜欢直觉
第二个区别是,总的来说,一些编码员比其他人更容易受到直觉的影响。 通过MBTI测量,差异仅多出约25%。 但是,直觉人士在一般人群中只是一小部分,因此即使在软件开发中有更多的直觉人士,即使在那里,直觉人士仍然是少数。
同样,这里的“直觉”是一个技术术语,与您如何理解新信息有关。 传感器是CSI,是侦探-他们喜欢根据证据和事实(可以直接经历的事物)工作。 直觉者使用预感,总是寻找潜在的模式。 例如,这两种收集信息的方式在调试中有很大的不同。 传感器将更喜欢记录和收集证据。 直觉者将使用假设的工具在假设之间进行选择,从而跳过假设。
当编码人员的思维方式出现问题时:约定超越配置
这两个首选项(即证据背后的直观模式以及决策中的逻辑和规则)往往会影响软件开发人员处理其项目和协作的方式。
让我们以“配置之上的约定”为例。 这是某些软件框架(Ruby on Rails可能是最著名的示例)使用的一种方法,在这种方法中,它试图“做明智的事情”,以便开发人员可以专注于偏离该约定的部分。
约定优于配置的好处是强调人是系统的一部分。 有一种文化,这很重要。
糟糕的是,在您了解文化之前,这还不是一个谜。 由于看不见代表文化的东西,因此很难学习文化。
想象一下,您是一名开发人员,面临着需要使用的全新框架。 从根本上讲,人们通过对某些事物的工作方式进行预测,然后再将其弄错来学习新系统。 这些期望失败对于学习至关重要。 当事情“行之有效”时,我们实际上并没有学到任何东西。
相反,开发人员将尝试使用假设(对直觉的偏好),并希望基于规则(对思维的偏好)进行决策以学习框架。 但是,如果您设计的系统具有超越配置的约定,那么您正在创建的系统(对于开发人员而言)将以有时有效,有时无效,可能令人惊讶,不可预测和隐含的方式运行。 这使得新开发人员很难看到这些模式。
开发人员不是用户。 总体而言,您希望最大程度地减少用户学习系统的需求,在此系统中,开发人员希望尽可能轻松地学习系统。 这两个要求:最小化学习与轻松学习,导致非常不同的设计决策。
当一个直观的人开始在配置框架上建立约定时,痛苦就来了。
毕竟,他们会理解得很好。 但是,当他们期望别人–尚不知道隐藏规则的人–睡觉前会流泪。
思考:思维方式和编码者
我不会建议所有编码人员都出去做MBTI。 实际上不是很好。 实际上,这些天我不建议使用MBTI。 相反,出去走走,获得体面的心理测验(IPIP NEO是一个很好的免费软件),然后考虑一下您与其他人的不同之处。 您的才华是您的才华,而不是别人的才华,因此不要以为别人会找到与您一样容易的事情。
如果有人想与我们一起进行更现代化的心理测验,并分析编码员独特的认知风格的影响(尤其是如果他们有资金的话),我们很乐意谈论更多。
但是即使有所有这些警告,MBTI的结果还是相当清楚和一致的,即我们开发人员和普通人之间存在思维方式上的差异,这些思维方式上的差异对我们的代码有重大影响。 代码不仅是为机器编写的,它是文化和社区的产物。 因此,我们的思维方式:在决策方面我们是否更喜欢规则而不是数据,还是我们更喜欢直觉而不是证据,这很重要。
当然,无关紧要的是我们是否内向。 请让我们把刻板印象的这一特定部分放掉,然后忘记它吗?
告诉我您的想法:@ turalt,stuart.watt @ turalt.com
Stuart Watt博士拥有心理学博士学位,并且是INTJ(尽管不喜欢MBTI)和 Turalt的首席技术官 。
资料来源:
卡普雷茨,LF(2003)。 软件工程中的个性类型。 国际人机研究杂志 ,58,207–214。 http://doi.org/10.1016/S1071-5819(02)00137-4
图片版权Alphaspirit | 梦想时光。
也可以看看:
- https://techblog.bozho.net/a-problem-with-convention-over-configuration/