考察开发者的九个经验法则

1. 知识量

很多时候,经验都比游戏规则更重要。


比如,我们虽然知道怎样下棋,却不一定下的好,

我们都能转的了魔方,但是复原它却很困难。

软件开发经验也是如此。


因此,原理性的考察应该是第二位的,

首先考察开发者有没有相关的经验


能编写框架的的开发者,

不一定比当前框架的熟练掌握者更称职


当然,如果所需要的工作内容是编写新的框架的话,

那么有框架开发经验就变得重要了。


然而,能编写框架的开发者,

也未必有很多框架开发经验。


注: 这里谈论的是“称职”,而不是个人的职业发展。


2. 知识面

除了一定量的细节知识之外,视野也是很重要的。

它是影响当前决策的一项很重要的因素。


因此,我们的考察方式,也要从能否完成一件事,

改变成,为什么要这样做


通常一个问题的解决方式总是会有很多的,

选择什么样的方式,

不同的人会有不同的想法


这在很大程度上取决于开发者的知识面

工作之外的知识,会影响看待问题的角度


3. 学习方法

打一个比喻,如果当前的工作状态是位移的话,

那么学习方法就是速度


学习方法决定了当前工作状态是怎样达到的,

通常也能暗示未来。


不同的学习方法,最终会产生质变上的差异。


值得一提的是,很多开发者所指出的学习方法,

并不是当前他们所采用的,

而是他们认为正确的。


这有点类似于成功人士给出的秘诀一样。

“我认为怎样能成功”与“我当时是怎样成功的”,显然不同。


我们要考察后者。


4. 经历

经历,是我们的核心竞争力


没有相关的经历,就缺少体感上的直接认识,

在进行讨论的时候,就会影响我们对结论的信心水平


在进行团队决策的时候,

信心水平不足的建议,将总是被当做噪声来看待,

对最终结论没有任何帮助。


幸运的是,我们在缺少某种经历的同时,

也必然会经历其它经历,

因此,考察一个开发者的经历的时候,应当注重了解经历的特殊性


5. 圈子

我们说,个人努力自身成就的影响,其实是微不足道的,

重要的是我们认识了哪些人,遇到了什么机会

我们接触了哪方面的人,就会获取哪方面的信息


信息流影响了我们的成长环境,

同时,我们也更倾向于认识那些能提供我们感兴趣信息的人。


另一方面,考察圈子也更容易识别出开发者的做事方式

并不是说哪种做事方式是正确的

格格不入的做事方式也是有问题的。


品味相同的人一起共事,会大大缩减沟通成本


6. 兴趣点

兴趣是最好的老师。

教师的职责之一,也正是建立学生对当前学科的学习兴趣


因此,我们对哪些事物感兴趣,

可能并不是真的受自己掌控的,

而是取决于,我们曾经遇到过哪些良师


在兴趣点上,人们往往可以不计短期得失

这正是能将事情做到极致所必需的。


对于开发者来说,当前阶段可以不惜一切代价的把哪些东西做好,

决定了他未来想成为什么样的人。


7. 问题定位方式

除了解决问题之外,如何定义问题也是一门学问,

正所谓,短视者把手段当做目的,长视者把目的当做手段。


不同的人,由于思维方式不同,

对相同的现象,会产生不同的心理预期


因此,有必要考察开发者能否发现更有价值的问题。


当然这里可能会有不同的境界之分,

有的人可能看不到远方,

有的人可能看到了远方,但是结合现状又选择了看似短浅的做法。


而且,有没有价值,也是因人而论的。

但是能够识别出我当前正在解决什么问题,依然是重要的。


8. 解决问题的思路

解决方案必须能和现状接轨,才能逐渐达成目标,

缩短目标和现状的距离的过程,就是在解决问题,

而考虑如何缩短距离的过程,就是解决问题的思路


有能力解决问题的人,才具备执行力

同时也需要很强的问题识别能力和规划能力。


解决正确的问题,正确的解决问题。


9. 系统思维

和人类社会一样,每一个人并不是孤立存在的,

软件解决方案,也不会孤立存在,

它总是会在系统层面产生一些影响。


具备系统思维的开发者,更容易看清工作的最终表象

虽然这是很难的,也是不准确的,

但是,总能尽量多的避免那些集成问题


因此,这也是可以考察开发者的一个方面。



结语

天时,地利,人和。