怎么用GitHub来判断一个程序员的能力

阅读这篇文章之前请首先确认知道GitHub是什么,参考链接 http://zh.wikipedia.org/wiki/GitHub

建议为每个候选者建立一个GitHub的Repository, 然后让其从3-5个Assignment选择一个,并在给定的Repository上进行开发, 时间控制在3-5天, 由于Git提供非常详细可track的提交记录, 我们可以清楚的知道候选者的开发过程, 一个理想的DEV熟悉敏捷开发流程, 并且基于GIT进行开发的时候至少会产生数十次提交.

敏捷开发中一般流程如下:

BA(业务分析) 产出 User Case

DEV 理解 User Case 并开始做Module Design 产出 Design Document

DEV 根据 Design Document 开始拆分Story 产出 Story Card

DEV 估计 Story Point 产出 SP Marked Story Card

DEV 领取 Story Card 并拆分出 Task List

DEV 按照 Task List 编写每个Task的Test Case(和User Case Match)

DEV 实现 Task的Test Case并Commit到Git

其中最能够体现出一个DEV的能力的地方包括,  Module Design,  将Story Card 拆分为Task List, 以及TDD的开发流程.

通过观察这些提交我们就会了解到这个开发人员的技能情况, 并且可以防止从互联网拷贝的情况发生, 因为TDD开发过程是渐进并伴随大量重构动作.

我们可以通过以下角度来评估一个候选者:

1.提交频率, 好的DEV通常会频繁的提交代码以避免和其他人的冲突.

2.提交的完整性, 好的DEV每次提交必然是一个可以运行的版本, 其中应当不包括测试用例失败,大量注释掉的代码,Check style warning以上的所有提示.

3.Task划分能力, 好的DEV能够将一个完整的Story划分成为若干可以独立交付的Task, 并将每一个作为提交单元

4.TDD的实践, 好的DEV的测试用例(UT)应该是领先于代码, 避免看到编写大量的代码之后一次性补完TestCase, 为覆盖率而测试, 或者为测试而测试

5.提交注释, 好的DEV够说明清楚自己的提交的目的以及改动

6.重构, 好的DEV的开发过程应该伴随着大量利用IDE的小规模重构, 如抽取方法, 提取父类, Inline, 抽取成员变量...等等, 通常重构技能越熟练说明开发人员越有高质量代码的开发经验


猜你喜欢

转载自lunadancer.iteye.com/blog/1675239
今日推荐