如何提高开发团队的Joel测试成绩?
Joel Test是一个很好的著名清单,它检查了每个软件公司应关注的一些要求。
他们是:
- 我们是否使用源代码管理?
- 我们可以一步一步构建吗?
- 我们每天进行构建吗?
- 我们有错误数据库吗?
- 我们在编写新代码之前会修复错误吗?
- 我们有最新的时间表吗?
- 你有规格吗?
- 程序员有安静的工作条件吗?
- 我们是否使用金钱可以买到的最好的工具?
- 你有测试员吗?
- 新候选人在面试时会写代码吗?
- 我们是否进行走廊可用性测试?
当我一个月前到达那里时,我目前的公司得分为0(我说为零)。现在,我们"自豪地"命中了3个源代码控制,一步构建和每日构建。但是我正在尝试做更多的事情(错误数据库,Wiki,安静的环境,更好的采访...)!
那你的公司呢?多少命中?列出我们将要实现的目标!
解决方案
现在,如果我们知道该错误,有时我们会达到5,并且有99%的时间是8.
明天,我将开会推动1、4、5、6和7. 我认为我们唯一能做的就是挑选一两个,然后再去追求。设置一些东西,开始使用它们,并向其他人展示与他们一起生活会多么轻松/美好。
一(1)。我们有源代码控制。但这是一家小型创业公司,所以我仍然寄予厚望。
我当前的项目:1 Y,2 N,3 N,4 Y,5 N,6 N,7 N,8 N,9 N,10 Y,11 N,12 N
总分:3
猜怎么着,真烂。开发团队一直在努力争取2、3和5,但从未得到管理层的批准。该操作软件是如此容易出错,以至于黑客修复程序总是需要花费很多时间,并且不允许任何人进行这些"低优先级"类型的活动。
有趣的是,该项目在CMMI 5级公司中。去证明那是值得的。
- 我们是否使用源代码管理?
当然,我根本无法理解公司如何看不到有一个体面的源代码控制系统的必要性。我们正在使用SVN。总计:1分。
- 我们可以一步一步构建吗?
我们的构建过程至少需要5个步骤,尽管我们多次讨论了实现神奇的1步构建的方法,但我们尚未找到实现该方案的时间。总计:1分。
- 我们是否进行日常构建?
是的。如前所述,它们不是自动创建的,但是我们将每天的构建都纳入了我们每天执行的代码审查步骤中。总计:2分。
- 我们有错误数据库吗?
是的,我们公司将螳螂用于此目的。总计:3分。
- 我们在编写新代码之前会修复错误吗?
不幸的是没有。新功能似乎比错误修正更重要。直到最终确定需要修复的时间为止。这通常为时已晚。总计:3分。
- 我们有最新的时间表吗?
我们一直在更新时间表,使用燃尽图来估计完成时间。总计:4分。
- 你有规格吗?
我们有一些规格,但我不会将我们的项目称为规格完整的。我们公司在这里还有很大的改进空间。总计:4分。
- 程序员有安静的工作条件吗?
是的,我们公司的建筑坐落在一个安静的社区中,同一房间内最多可容纳2或者3个开发商。总计:5分。
- 我们是否使用金钱可以买到的最好的工具?
没有。总计:5分。
- 你有测试员吗?
我们直到最近才实施了由三个测试人员组成的整个质量检查部门。总计:6分。
- 新候选人在面试时会写代码吗?
我们的团队变动不大,但是面试包含几个与编码相关的问题,候选人必须写一些示例课,等等。总计:7分。
- 我们是否进行走廊可用性测试?
不,可惜不是,但这是个好主意。总计:7分
总的来说,我认为还有很多改进的余地,但是与我们正在合作的其他公司相比,满分7分可能并不是最差的。
当前公司在大多数项目中,有些情况更糟(更糟!)
1:Y,2:Y,3:Y,4:Y,5:N,6:N,7:通常,8:N,9:N,10:N,11:N,12:N
对我来说,我目前公司的主要问题是10和11.
即使我们拥有100多个开发人员的开发资源,也没有一个专业的测试人员,但我们没有专用的测试资源!你猜怎么了?测试不是很好,我对我们生产的应用程序的质量感到惊讶,这证明了我们某些开发团队的质量。
我们的服务过程很吸引人。我们最近雇用的一位开发人员仅具有C背景,并且为satelight接收器嵌入了代码。请记住,我们是microsoft / .NET / VB6 / SQL Server。他没有任何描述数据库或者WinForms开发的经验。
当我询问他如何被录用时,面试小组的技术负责人告诉我,人员禁止他提出技术问题,因为当这个人被邀请参加面试时,他没有被告知将成为技术面试!
我对#11感触良多。一方面,我认为一些随意的面试白板问题可能会引起误解。候选人并不总是期望如此,他们很紧张,被要求在观众面前编码。加!另一方面,我觉得我们可以通过简短的计算机测验来了解某人如何适合组织。
如果我们使用具有临时聘用的临时服务,那么如果我们对他们的早期工作进行代码审查,那么这是否重要?然后,这项工作成为测验。
Joel测试的问题在于,即使达到12分也并不意味着我们正在为一家好的公司工作。尽管如果我们为零,则可能不是。
我目前有一个正在运行7的客户端,这意味着从理论上讲他们的表现还不错。事实上,由于其他问题(架构欠佳,缺乏管理支持等),它们仍然被严重破坏。