Joel's test

来源:互联网 发布:手机杂志软件 编辑:程序博客网 时间:2024/05/17 07:04
最近卷入了一些有关软件开发流程认证的事情,虽然我已经竭尽所能避开了99%的此类工作(对无法避开的同事表示严重的同情和严肃的感激),但是还是觉得有点郁闷,原因是我本人极其鼠目寸光,从来都相信自己的感觉超过理论。在我熟悉的小团队里,有关开发效率,我关心的程度从团队成员smart, and make things done,到士气,到工作环境,到流程,依次数量级递减。


由此想起The Joel Test,5年以前的东西了,看看我们现在能得几分,

1. Do you use source control?

Are you kidding me? why not ask "do you use computer to write program"?

2. Can you make a build in one step?

如果点击开始->运行,进入工作目录, 输入ant build算是一步的话(忘了设置ant_home, damn...)

3. Do you make daily builds?
没有,所有平台上的自动构建都是svn commit触发的


4. Do you have a bug database?
Jira是我用过的最好的bug tracking system,推荐。

5. Do you fix bugs before writing new code?
hmm...这个比较难考量...目前的约定是,如果自动构建出现单元测试错误,所有人停止commit,直到所有测试通过。

6. Do you have an up-to-date schedule?
开源软件的schedule.....其实我们每周都会根据status调整schedule, 忙不过来就到mailing list上喊:我有个有趣的想法,有没有人愿意试试....

7. Do you have a spec?
JSR和JavaDoc

8. Do programmers have quiet working conditions?
sigh...这个没达标....我们的屋子每天笑声讨论声不断,怪不得Eric Raymond将开源软件开发模式比作市集...

9. Do you use the best tools money can buy?
我们用的开发工具100%开源,但是做JDK,开源工具已经是最好的工具了是不是?可是笔记本屏幕只有15寸,下载速度还没家里的2M ADSL快,我夜里做梦都想20寸宽屏+100M专线,所以这个只能算0.5分。

10. Do you have testers?
有,然而IBM的测试人员和开发人员薪水一样高....这个问题的意义存疑...

11. Do new candidates write code during their interview?
嗯,该步骤值得大赞特赞,曾经有一个简历精通各类语言的同学写了此Java函数....
void swap(iint a, int b){
    int c  = a;
    int a = b;
    int b = c;
}

令人惊异的是他的程序结果居然正确,原因是该算法根本不需要swap a/b。据悉此君不久即被招入一跨国公司做实习程序员,真为招他的人捏把汗...还有,只有不到1/100的人在百忙之中会为程序写一个unit test, 其余的人可能会惊讶计算结果放入HashMap之后竟取不出来, 因为只有1/10的人记得覆盖hashCode()和equals(),此外不到1/2的人打开FileInputStream之后记得在finally里面关闭,我坚信此步骤为公司节省的培训和debug费用定是天文数字。

12. Do you do hallway usability testing?
JDK需要hallway usability tesing么? 有点怀疑,如果有的话,开源软件的用户大概就是吧....

总结: 10.5分....sigh...革命尚未成功,怪不得我们的老板还是不能leave us alone.