约耳测试: 迈向高品质的12个步骤(下)

约耳测试迈向高品质的12个步骤(下) 

作者: Joel Spolsky 约耳.斯珀儿斯奇

译: Paul May 梅普华 

  6. 你有一份最新的时程表吗?

我们在这里要谈谈时程表如果你的程序对公司非常重要有太多理由可以说明预知程序完成时点有多么重要程序人员不爱订定时程可是恶名昭彰他们会对业务大叫: "该完成的时候就会完成!"

但是问题不可能就这样算了业务人员有太多的计划决策必须远在程序出货之前做决定展示商展广告等等而做决定的唯一方法就是定出时程并随时更新.

拥有时程的另一个重点是逼你决定要制作哪些功能并且能逼你剔除最不重要的功能而避免功能过度膨胀(featuritis, 又名scope creep).

要维护时程表并不困难请参阅我的文章Painless Software Schedules, 文中叙述建立好用时程表的简单方法.

7. 你有规格吗?

写规格像用牙线大家都同意这是好事却没有人真的在做

我不知道为什么或许是因为大多数程序人员都讨厌写文件吧所以当全是程序人员的团体 面对问题时自然倾向用程序代码而非文件来表示答案他们宁愿跳进去写程序也不愿先写规格.

在设计阶段发现问题时只要改几行就能轻易修正等程序写出来之后修正的代价就高得多了代价包含了情感 (人们讨厌块弃程序代码和时间所以会抗拒修正问题通常未依据规格制作的软件 最后的设计都很糟而且进度完全无法控制.  这似乎就是发生在Netscape上的问题它的前四版变得一团乱结果管理阶层愚蠢地决定 把程序丢掉重新开始然后他们在Mozilla上又重蹈覆辙造出了一个无法控制的怪物而且耗了几年才进入alpha测试阶段。

我的拿手方法是把程序人员送去上密集的写作课程让他们变得不那么排斥写作就可以解决这个问题另一个方法是雇用聪明的项目经理来写规格不管用哪一种方法你都应该强制执行"没有规格不写程序"这个简单的规则.

你可以由我写的四篇系列文章学到所有关于规格的内容.

8. 程序人员有没有安静的工作环境?

有大量的文件记载为知识工作者提供空间安静及隐私可以提升产能软件管理经典Peopleware大量记录了这种产能上的增益.

这就是问题所在我们都知道知识工作者进入"状况"(flow, 也被称作in the zone)时工作效果最佳这时候他们会完全与环境脱离全心专注在工作上他们忘记时间并透过绝对专注产出极佳成果他们所有丰富的产出也都是在这个时候完成的作家程序人员科学家甚至篮球球员 都会告诉你进入"状况"的情形

问题是要进入"状况"不是那么容易如果你有试着计时平均大概要15分钟才能开始全速工作有时如果你累了或是那一天已经有很多创造性的成果会根本无法进入"状况", 然后看看网页玩玩俄罗斯方块打混过完一天

还有一个问题就是很容易脱离"状况". 噪音,电话,同事的中断(特别是这一点)都会让你脱离"状况". 假设有个同事问了一个问题让你中断了1分钟实际上却会让你完全脱离"状况", 得再等半个小时才能回复生产力结果你的整体产能都出问题了如果你身在一个喧闹的 BULLPEN环境中(像那些一窝蜂(caffeinated)网络公司最爱营造的典型), 行销部门在程序人员旁对着电话大喊你的产能就像一直被中断的知识工作者一样颠簸永远无法进入"状况". 

这对程序人员来说更加严重生产力多寡在于是否能在短期内存中处理大量的细节任何一种中断都会让这些细节完全消失等你转回来工作时就完全不记得任何细节 (比如正在使用的区域变量名称或是搜寻算法写到哪了), 必须把刚刚的东西找出来于是速度就放慢下来一直到你回复为止

这里有个简单的算术我们可以说(依照陈述所暗示的)虽然仅仅打断程序人员一分钟事实上是去掉了15分钟的产能以此为例假设有两个程序人员JeffMutt, 把他们安排在一个标准呆伯特 (Dilbert  美国漫画养牛场里相邻的开放隔间中. Mutt忘记了strcpy函数的Unicode版本拼法他可以花30秒自己查出来也可以花15秒问Jeff. 由于人就坐在旁边所以他问Jeff. Jeff分心所以就损失了15分钟的产能(Mutt省了15). 

现在把他们搬到两间有墙有门的独立房间里如果Mutt忘记那个函数的拼法他可以花30秒查出来也可以花45秒过去问Jeff(就典型程序人员的身裁来说离开位置并不轻松). 结果他就自己查了于是Mutt损失30秒的产能不过却替Jeff省下15分钟哎呀呀呀!

9. 你有没有用市面上最好的工具?

用编译语言撰写程序是一般家用计算机还无法瞬间完成的最后几件事之一如果你的编译过程超过数秒去找台最新最棒的计算机可以替你省点时间如果编译需要超过15程序人员觉得无聊就会跑去看在线新闻The Onion,, 然后陷在里面耗掉几个钟头的产能.

在单营幕系统上替GUI程序除错并非绝不可能不过用起来有够痛苦如果你在撰写GUI程序弄两台营幕会让你轻松许多.

大部份程序人员到最后都得修整图示或工具列所用的图可是大部份人都没有一个好用的图形编辑器用微软的小画家修图简直是笑话不过却是大多数程序不得不做的事.

在我前一家公司系统管理员会一直送些垃圾信给我抱怨我在服务器上使用了超过"220 MB"的硬盘空间我说依据现在硬盘的价格这点空间的费用还远比不上我所用的卫生纸即使只花10分钟清理目录也是生产力的极大浪费.

一流的开发团队不会虐待他们的程序人员.即使工具不好所引起的挫败很小累积起来都会让程序人员心情不爽脾气暴躁而不爽的程序人员就等于无生产力的程序人员.

除此之外...程序人员也是很容易用最酷最新的东西贿赂的这可远比再增加薪水叫他们工作 要便宜多了!

10. 你有没有测试人员?

如果你的团队没有专门的测试人员(至少每两到三个程序人员要配一名), 你要不是推出问题很多的产品就是浪费钱叫时薪100美元的程序人员去做测试员(时薪30美元)做的事省测试员绝对不是真省这实在是再明显不过了我实在很惊讶很多人却还认不清这一点.

看看Top Five (Wrong) Reasons You Don't Have Testers这是我针对这个题目所写的文章.

11. 有没有在面试时要求面试对象写程序?

你可能不叫魔术师先表演几招就直接雇用吗?当然不会.

你可能不先尝尝菜就决定自己婚宴的餐厅吗我很怀疑. (除非是Marge姑姑如果不让她弄一道"顶级"碎牛肝饼她会恨你一辈子).

尽管如此现在程序人员是否录用都还是要看履历是否突出或是因为主试人员面谈聊得很高兴或是回答些查文件就知道的琐碎问题 (比如CreateDialog()DialogBox()间的差异是什么?). 你根本不会管他们能否背出几百条有关程序设计的琐事你真正在意的是他们能否写出程序更糟的情况是问那种"!我懂了!"的问题就是那种知道答案时理所当然可是不知道答案时却莫名其妙的问题(译注:像是脑筋急转弯).

拜托别再这样做了随便你想怎么面试都行不过记得一定要让面试者写些程序. (需要更多建议时可以看我写的Guerrilla Guide to Interviewing.)

12. 有没有做走廊使用性(hallway usability)测试?

走廊使用性测试是说到走廊拦住下一位经过的人然后逼他试用你刚写好的程序如果你做够五个人就可以发现程序中95%应注意的使用性问题.

良好的使用者接口设计并没有想象中那么困难在吸引客户中意并购买产品时又是极为重要的你可以参阅我写的免费在线UI设计书是针对程序人员的短篇入门书.

不过处理使用者接口时有一点最重要如果你把程序展示给少数几个人看(事实上五或六个就够了), 就能快速地发现一般人会遇到的主要问题.Jakob Nielsen的文章 中有解释原因即使你的UI设计技巧不足只要强逼自己实行不花什么工夫的走廊使用性测试就会让你的UI水准大幅提升.

约耳测试的四种用法:

l         对你自己的软件组织评分再把分数给我作为讲八卦的题材

l         如果你是一个程序设计团队的经理可以用它来确保团队能在最佳状态工作等拿到12分之后就可以把程序人员放着不管专心去避免业务的干扰就好了

l         如果你正在决定是否接受一份程序设计的工作可以问问未来可能的雇主他们能拿几分如果分数太低时要先确定你有权修正这种问题否则你将会灰心丧气而且一事无成

l         如果你是个正在评估某个程序设计团队价值的投资者或是你的公司正考虑与其它公司合并这个测试可以提供快速的判断方法

(完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值