我知道要衡量项目或代码,我们可以使用Joel测试,但是是否有任何简单的标准测试(例如Joel测试)能够衡量和过滤程序员的水平?
我的计划是在进行更详细的测试之前,首先将该测试作为快速筛选。
我知道要衡量项目或代码,我们可以使用Joel测试,但是是否有任何简单的标准测试(例如Joel测试)能够衡量和过滤程序员的水平?
我的计划是在进行更详细的测试之前,首先将该测试作为快速筛选。
Answers:
有程序员能力矩阵。
与Joel测试一样,它只是一个模糊的指南。正确评估程序员的唯一方法是询问与他们合作过的优秀程序员。
我将扭转乔尔测试:
他们有使用源代码控制吗?
他们知道如何自动化一步构建吗?
...
似乎不是特别适用的唯一一个问题是测试人员问题。其他似乎无法解决的问题变成了这是我们如何处理它,您在过去的问题中是如何处理的(这是我们如何使我们的日程安排保持最新状态,您过去如何处理日程安排?) 。
编辑:
基本上,您无法免费获得Joel考试中的内容,您必须雇用可以实现这一目标的人员。您想建立他们实现这一目标的能力。
Joel测试只是一个非正式的基线检查,可以快速判断某个地方是否对程序员具有良好的工作条件。即使它获得完美的10分,它仍然会是一个地狱,将在六个月后破产。较低的分数表明存在某些不正确的情况,并引起了很好的面试问题(“您目前没有使用源代码控制;将来有任何计划这样做吗?”),答案可能是这样的:尽管Joel得分低,您还是会接受这份工作的。
乔尔测试也不是“标准”测试。这只是Joel Spolsky在他的博客上发布的清单。
就“衡量”程序员的素质而言;不幸的是,一个优秀的程序员真正重要的技能和素质很难或不可能量化,因此无法进行全面的人工评估。不过,您可以使用非常简单的编程任务很容易地淘汰掉完全毫无头绪的候选人-理想情况下,涉及递归,树形结构或指针的事情(不'了解'这些东西的程序员不太可能会有用)。对于那些通过此测试的人,您必须手动评估技能:阅读他们编写的代码,测试他们编写的驱动器应用程序,为他们提供更多的编程任务(包括设计和实现),观看它们的工作,与他们交谈,看看是否可以引发专业讨论。如果您正在寻找专家/语言专家,
("You're not currently using source control; are there any plans to do so in the future?"), and the answers might be such that you'd accept the job despite a low Joel score.
顺便说一句,您接受工作会出错。最终,每个开发人员都知道,这Plans to do so in the future
只是面试官说的欺骗您的内容,但由于糟糕的管理他们从未采取任何行动。我们听到过多少次影响力的声音,结果Oh, we are moving towards Agile...
又变成了另一家由微管理的瀑布商店?
是的:
您是否在业余时间编程?
根据我的经验,这个问题最能说明程序员的水平。如果他们喜欢的话;如果他们有完成任务的热情,那么他们会很擅长。
坦白说,很多9到5个工作不需要很多编码。在设计新程序和查看设计如何工作/失败的整个生命周期中,它们并不涉及很多迭代。没有迭代,程序员根本就不需要实践即可获得核心程序设计技能。
而且它们不需要太多的学习。甚至只是简单地在家中编程的程序员,都将在没有大企业约束的情况下探索新的有趣的解决方案。
它没有Joel测试那么详细,但是要求他们编写一个Fizz Buzz程序将很好地表明他们是否可以编写代码。
http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html 和 http://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers- who-grok编码/
那不会告诉您个人的软件工程成熟度,但是可以筛选出较差的情况。
您是否使用源代码管理?
对,但是
您可以一步一步构建吗?
您每天制作吗?
您有错误数据库吗?
是的,但是我没有配置它,也没有管理它,我只是使用它。
您在编写新代码之前会修复错误吗?
您有最新的时间表吗?
不,那不是我的工作。
你有规格吗?
我得到一个规格,然后对其进行分析并生成相关文档。
程序员有安静的工作条件吗?
您是否使用金钱可以买到的最好的工具?
您不知道最好的工具是什么,如果您认为这样做的话,总会有人争辩您的观点。
你有测试员吗?
是。实际上,是的,它们不是很好,但这不是问题所在。
新候选人在面试中会写代码吗?
是的,他们失败了。是的,他们通过了。这告诉你什么?
您是否进行走廊可用性测试?
不,但是如果我们做得更好呢?
结论:
这不是花一现,但根据我提供的答案,我很想听听您认为我是哪种开发人员。希望这将证明我的观点。
How do you know whether I pull changes before pushing?
好吧,我不知道您在使用什么源代码控制,但是至少在SVN中,如果您尝试使用尚未进行的更改提交到文件夹,则提交操作将失败,直到您运行Update。