Answers:
Jeff Atwood拥有《程序员权利法案》。
从帖子:
- 每个程序员应有两个监视器
- 每个程序员都应有一台快速的PC
- 每个程序员都应选择鼠标和键盘
- 每个程序员都应该有一个舒适的椅子
- 每个程序员都应具有快速的互联网连接
- 每个程序员都应有安静的工作条件
我似乎想在Joel的清单上看到一些物品。特别是在硬件领域(双显示器,快速PC,鼠标/键盘,舒适的椅子,快速连接)。
唯一没有提到的是拥有一个舒适且可调节的办公桌。
所有这些都可以通过更改来添加:
当前问题9:您是否使用金钱可以买到的最好的工具?
至
改进#9:您是否使用金钱可以买到的最好的工具和设备?
有趣的是,第8点现在显示为:
8. Do programmers have quiet working conditions?
当它用来阅读时(类似)
8. Do programmers have their own office?
最后一段仍然开始:
现在,让我们将它们移动到有墙和门的独立办公室中。
我一直对此测试感到怀疑,因为在我工作过的所有地方(包括员工和访客),唯一拥有自己办公室的人是董事和高级经理。
在现实世界中编写软件通常是团队活动,您需要与您的队友交谈以交流想法等,而即使是使用即时消息传递系统,也很难与单独办公室中的人进行交流。能够绘制出东西并向人们展示代码和图表很有帮助。这并不是说分布式团队无法工作-他们显然可以并且可以这样做,这只是一组不同的问题。
我要说的是,每个团队都必须在自己的6-8人办公室中(假设这是团队的规模)。这样,他们可以进行交互而不会打扰其他团队(如果有),并且可以继续进行工作而不会受到销售团队或访客的打扰(在我工作过的某个地方,您从前门直接进入开发区域)。
如果您正在与其他开发人员一起工作,但是每个人都在单独的项目上工作,那么共享办公室可能是有用的-但前提是您必须严格遵守在会议室开会并遵守其他人的截止日期等条件。
其他大多数都是不言而喻的真理。
对我来说唯一的破坏因素是:
8. Do programmers have quiet working conditions?
有趣的是,这个问题很可能会因Stack Overflow职位发布而失败。
有些问题很难解决,特别是如果公司中有多个程序员:
1. Do you use source control?
2. Can you make a build in one step?
4. Do you have a bug database?
我并不十分在乎的其他大多数。老实说,我的意思是:
12. Do you do hallway usability testing?
有一个可以检测骗子的人:
5. Do you fix bugs before writing new code?
我必须说这是一个很好的“基准”,但是使用任何度量工具都存在其他因素。例如,我工作过的公司中没有一家完成过Daily Build(我知道,我知道),但是其中一些公司做得很好。
我个人还有其他一些要添加到列表中的项目。
这些东西比以前的雇主更“惹恼我”,而且现在它们是我快速询问的每一个机会的问题。
我同意乔尔的大部分观点。我不太确定“走廊可用性测试”。当然可以进行可用性测试,但实际上这不是他们的工作,而是从走廊上抓住一个人并让他们测试您的程序吗?这似乎是勾引别人的好方法。
乔尔测试(Joel Test)不测试团队的实力。它测试您的团队对Joel测试的坚持程度。
这是对您团队实力的更好测试。我称其为GrandmasterB测试。它有一个问题。
1)您编写的软件好吗?
无论您是否进行“走廊测试”,是否拥有源代码控制,或者您的构建过程是什么(如果有一个-并非每个语言都包含它们),这与我无关。团队的真正衡量标准是他们创建的软件的质量。
基本上,您可以按照Joel测试的每个步骤进行操作,但最终仍会得到一些垃圾代码和永远不会交付的产品。例如,源代码控制并不能使一个更好的编码器变得神奇。它使代码更易于管理。并且拥有最新版本的Visual Studio并不意味着您的应用程序会比使用Visual Studio 2005编写的应用程序更好。
尽管我认为从一般意义上讲是很合理的,但是我发现列表完全集中在Fog Creek软件所做的特定类型的软件(收缩包装)上。这并不令人感到意外,因为他还在另一篇文章《五个世界》中谈到了这一点。那个世界之外还有很多发展。
如果您为卫星或自动售货机开发嵌入式软件,则某些条件实际上并没有多大意义,例如日常构建(3)或可用性测试(12)。