摘抄自 《软件随想录》,作者 Joel Spolsky,他是“Joel on Software”博客的作者。他从1991年到1994年间担任Microsoft Excel团队的项目经理。在2000年,他创立了Fog Creek软件并开启了“Joel on Software”博客。2008年,他和Jeff Atwood一起启动了如今极为成功的Stack Overflow程序员问答网站。他们用Stack Exchange软件产品作为Stack Overflow的引擎。现如今Stack Exchange网络已经包含了91个站点。
Joel 于2000年发布乔尔测试,里面很多内容现在已经逐步变成了行业标准。
每道题都只用回答 是或者否,3分钟可以做完自查,看看自己团队要在哪些方面改善。
1. 你们用源代码管理系统吗?
源代码管理系统的好处:协同工作管理版本,避免因为个人的操作而损失代码。目前常见的有git,svn,cvs。找到一篇分析见下面的链接。
2. 你们能一键编译吗?
好的团队只用一个脚本就能从头开始完全签出代码,重编译每一行代码,做出各种发行版本、语言和#ifdef条件分支组合的所有可执行文件,生成安装包以及最终的交付媒介。
3. 你们做每日编译吗?
破坏代码是非常常见而有害的问题,因此非常有必要实施每日编译,来尽快找到问题,解决问题。
4. 你们有bug数据库吗?
如果没有一个列出代码中所有已知bug的数据库,那么这个团队交付的代码质量一定不高。你必须要正式地记录下每一个bug,内容至少要包括:
1 重现bug的完整步骤
2 预期应有的行为
3 观察到的错误行为
4 谁负责修复
5 是否已被修复
5. 你们在写新代码前修改以前的bug吗?
1 一个bug 修复的时间拖得越久, 修复难度就越高
2 要开始新功能开发时,不必因为旧bug而导致时间落后
6. 你们的进度表是最新的吗?
为了确保研发和之后的商业行为能够衔接,进度表必须是最新的。
7. 你们有软件规格书吗?
让问题在设计阶段就出现并得到解决,而不是在研发之后。
8. 程序员的工作环境安静吗?
由于工作要求程序员集中注意力才能进入状态,任何打断都可能导致程序员从状态中出来,重新进入状态将导致平局15分钟的时间浪费。
让程序员在安静的,不被打扰的环境工作,是提高效率的方式。
9. 你们使用了能买到的最好的工具吗?
1 因为工具效率低导致程序员要浪费时间在等待上是不明智的
2 酷的工具能够激发程序员的热情来工作,这比其他方式有效多了。
10. 你们有测试人员吗?
如果没有测试人员,要不就会交付bug很多的产品,就不就是浪费程序员的时间和你的金钱:让更贵的程序员来做更便宜的人也能做好的事情。、
11. 你们面试时会要求应聘人员写代码吗?
真枪实弹地写代码,是最有效的方式。
12. 你们做过走廊可用性测试吗?
用于提升产品的可用性:在走廊随便找1个人,让他来用你刚写的程序。找了5个人,那么95%的可用性问题都会暴露出来。
经历了可用性测试后,你的用户界面将会得到极大改善。
本期轻单作者:喵在野
原文地址:https://qdan.me/list/VvtnmsR9VOtI7rC0