有很多评估开发人员技能的方法,我最喜欢的是开发人员能力矩阵 。 这种方法非常好,并且被证明可用于一般性评估不同技能,例如作为一般性就业评估的一部分。
但是在这里,与特定项目相关的能力估算是很重要的,例如,当我们为特定项目选择合适的团队成员时,假设我们有一个潜在候选人列表供您选择。 我也想使这一过程自动化,因此出于这种原因,该方法排除了个人品质-并非定量的。
由于可能拥有多种不同技能,因此这并不是一件容易的事,因此我将只限于最常见的软件开发类型,即针对最常见平台的Web和应用程序开发。
此外,与我合作的大多数开发人员还参与组织活动,例如团队管理,客户关系,沟通……我将尝试从分析中分离出这些素质,并专注于纯技术技能。
我们将尝试用不同的维度来表示该软件开发人员的技能空间:
- 程式语言
- 工具和库
- 平台
- 申请类型
- 经验(长)
- 角色(深度)
这些维度基本上是能力分析中要考虑的因素。 可能还会添加其他相关维度。
编程语言的维度非常明显,它是诸如c,c ++,java等项的独特列表。
工具和库维度表示开发软件时使用的各种IDE工具,编译器,编辑器,框架和库。
平台维度表示部署应用程序的环境,并封装了硬件和软件环境。 它也是项目的独特列表,例如Windows,Linux,iPhone,桌面,Silverlight,Flash…
应用程序类型维度表示使用软件的域,它也是诸如“信息系统”,“在线销售”,“银行”,“医疗设备”,“ Web门户”,“社交网络”…
经验维度仅表示过去已经发生的特定开发的经验长度。
角色维度代表开发活动的级别,并且可能包含“学徒开发人员”,“中级开发人员”,“高级开发人员”,“软件架构师”,“平台架构师”等项目。
通过这些维度,人们应该能够定义一种用于度量一般能力的度量系统,或者用于特定项目的度量系统。
最简单的方法是将指标表示为维度的线性组合,但是可能还有其他有用的方法。
对于特定项目,每个维度的任何值都赋予不同的权重。 这样,基本上,我们定义了在候选人中寻找的东西。 如果我们只接受Java开发人员的职位,我们将给予其他编程语言以零的权重。 如果我们需要候选人成为高级职位,同时又要接受中等水平的开发人员,则可以为这些值分配适当的权重。
我们的候选人需要在每个相关方面填写自己的价值观,或者我们从简历或面试中提取出来,为我们提供可以合作的价值观。
然后,为每位候选人计算指标,然后选择得分最高的指标!
创建一个允许基于给定标准在线计算能力的Web应用程序将很有趣。
不要忘记,还有其他–需要考虑的其他人为因素。 我将在另一篇文章中对此进行思考。
参考: 分析软件开发人员的能力–从我们的JCG合作伙伴中 选择合适的团队成员 软件思想博客上的Nenad Sabo。
翻译自: https://www.javacodegeeks.com/2012/03/analysis-of-software-developers.html