Knowledge Gained by The Joel Test: 12 Steps to Better Code

今天ㄚ琪读完Gained by Back to Basics这章后继续拜读第三章约耳测试:迈向高品质的12个步骤,听说过SEMA吗?ㄚ琪好歹也念过资管毕业,怎会不知道,但是当然正如约耳说的,这个东西会花你很多时间,研究所时候确实有人在论文上是以这个东西为方向的,不过我不是,因此就不要花太多时间了。

约耳有一套自己的测试方法,嗯,ㄚ琪很欣赏这个方法,也或多或少有在用,让我自评一下吧!

约耳测试 (Joel Test)

  1. 你有使用原始码控制系统吗?
  2. 你能用一个步骤建出所有结果吗?
  3. 你有没有每天都重新编译建立(daily builds)吗?
  4. 你有没有问题追踪资料库(bug database)?
  5. 你会先把问题都修好之后才写新的程式吗?
  6. 你有一份最新的时程表吗?
  7. 你有规格吗?
  8. 程式人员有没有安静的工作环境?
  9. 你有没有用市面上最好的工具?
  10. 你有没有测试人员?
  11. 有没有在面试时要求面试对象写程式?
  12. 有没有做走廊使用性(hallway usability)测试?

ㄚ琪学过原始码控制系统,就是约耳说的免费CVS,所以这一点是赞同的,虽然目前自己的部门只有自己在写,但相信我以后一定会用的,有没问题追踪资料库,ㄚ琪也听说过一些问题追踪系统,但我想在自己所写的程式中,日报系统及现行的网志其实应该就算我自己的问题追踪资料库了,不错吧!请不要再骂我工作中写Blog了,它真的是我的工作日志!最新的时程表是一定会定的,这叫目标管理不是吗?ㄚ琪确实也需要安静的工作环境,感谢老板让我确实有这样的环境!有没市面上最好的工具,没有,绝对没有,而且超慢的,跑一个程式可以让我看完一个章节了,够慢吧!当然这是较夸张的用词啦!有没测事人员,我的user就是测试人员,够精简吧,当然这样子一定是不好的!所以我自评后可以得5分吧!看来可以比平均2~3分高一些吧!

你能用一个步骤建出所有结果吗?

中译是修正“最后的”问题,课本是写“最后一个”问题,但是注解有描述就像考试收卷前的心态,再写最后一题就好。这个InstallShield也是我在用的没错,不过这个分数我不敢拿,毕竟还是不太懂这个意境。

你有没有每天都重新编译建立(daily builds)吗?

没有团队哪来的每天编译,ㄚ琪举手投降,另外可以继续参考每日编译是你的好朋友这一章。

你有没有问题追踪资料库(bug database)?

一个最简化的有效问题资料库必须包含每个问题的下列资料:

    1. 重现问题的完整步骤
    2. 应该看到的行为
    3. 实际看到的(有问题的)行为
    4. 被指派的负责人
    5. 是否已修正

我想以后我的工作日志会尽量合乎上述步骤的资料,虽然已经在做了,但是应该可以做的更好才是!

无痛错误追踪是长怎样,待我继续读下去就会知道!

你会先把问题都修好之后才写新的程式吗?

ㄚ琪对这没概念,所以0分,不过老师既然教导要先把问题修好,那就这样做啰!

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

当然有,但是说实在的,要订时程还满困难的,特别是要跟客户定期限,总觉得头发会越掉越多!

不过课本说功能过度膨胀(featuritis,又名scope creep),这个定义连结http://www.netmeg.net/jargon/terms/c/creeping_featuritis.html失效,其实不是失效是那个定义不见了?所以改看维基的吧!但是很抱歉没有中文的看!另外关于无痛软体时程,文中叙述建立好用时程表的简单方法,ㄚ琪期待赶快看到那一章!

你有规格吗?

没有,但是也可能有,像是之前在跟客户demo的时候,所做的,不过这是要学的,另外,也学到了Netscape的历史问题,参考你绝对不应该做的事 之一就可以了解,另外有提到去参加写作课程,网址在http://www.yale.edu/english/undergraduate-courses.html,这是耶鲁的说,台湾人我想高中不是常写作文吗?就好好练一下吧!ㄚ琪就在工作达人自练了!

另外课本后面有四章系列文章可以学,不要灰心,一定可以学好的!

程式人员有没有安静的工作环境?

哈哈,原来有沉浸状态这个学问,说得好啊!另外这本书Peopleware:脑力激荡产业的人才管理之道,方亚澜,钱一一译,经济新潮社,列到书单进来,有空一定要去读读看!

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

没有,公司cost down的太凶了,不买新的设备,不过我家里倒是自行添购了一台新的桌机了,32章两个故事应该也很好看!

“一流的开发团队不会虐待他们的程式人员。即使工具不好所引起的挫败很小,累积起来都会让程式人员心情不爽脾气暴躁。而不爽的程式人员就等于无生产力的程式人员。”这句说得太好了!

你有没有测试人员?

一人公司很难找到测试人员,校长兼敲钟的应该会有很多册市的迷失,看看不用测试人员的五大(错误)藉口应该会有很多学习!

有没有在面试时要求面试对象写程式?

ㄚ琪如果是老板或人事主管,铁定会这么做,不然老是找一些说会什么C语言的,结果进来都不会写,搞屁啊!

软体人员面试教战守则给老板看看反省一下吧!

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

参阅约耳写的免费线上UI设计书,是针对程式人员的短篇入门书,课本说只有免费试读的,但是从连结来看,又是免费的中译书啰,大家好好把握去努力读吧!

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

这个走廊使用性感觉好像做吃的找路人来试吃喔!嗯!好好学吧!就是这样!

约耳测试的四种用法

    1. 对你自己的软体组织评分,再把分数给我作为讲八卦的题材。
    2. 如果你是一个程式设计团队的经理,可以用它来确保团队能在最佳状态工作。等拿到12分之后,就可以把程式人员放着不管,专心去避免业务的干扰就好了。
    3. 如果你正在决定是否接受一份程式设计的工作,可以问问未来可能的雇主他们能拿几分。如果分数太低时要先确定你有权修正这种问题。否则你将会灰心丧气而且一事无成。
    4. 如果你是个正在评估某个程式设计团队价值的投资者,或是你的公司正考虑与其他公司合并,这个测试可以提供快速的判断方法。
    5. 好,我算第二类的吧,这样知道怎么找工作了!给志在软体产业的男女青年一个建议,这篇必读!