Greg Wilson 最近在“敏捷自动化功能测试工具”社区中引发了一个话题,他希望大学毕业生能够提高能力,交付“符合产品级质量要求的代码” 。Wilson 认为,首先要提供职业人士使用的工具的简化版本,让计算机学科一般水平的大学生也可以上手。
我现在坚信,如果要做些改变,那么必须要考虑简化我们的工具和技术,来满足初学者的需求。有些工具,在学了一个小时的帮助教程之后,仍然无法掌握使用要领;有些工具第一次使用时很难轻松上手,这些工具尤其应该简化,否则大部分学生就很容易将其抛在一边,不再理会。
Wilson 在讨论帖中总结了他所认为的、适合学生使用的工具的必要条件:
- 必须易于使用,计算机专业二年级的学生通过一个小时对帮助教程的学习,应该可以达到一般的使用水平。
- 使用该软件,学生在一个月内通过完成四到五次作业(比如在两周内花费总共五到十个小时来使用该软件),能够变得更有效率。
- 必须是与平台无关的(一些课程使用 Java,另一些用 Python 或者 C,更不用说 Windows/Linux/Mac 这些操作系统平台的问题了)。
- 必须要做到对课程有所帮助,这些帮助独立于老师授课的范围(如数据库、编译原理、图形学等课程)。从下面这个例子我们可以看到这样做的成功之处:第二年学习过版本控制的学生,大部分会自动在第三年和第四年的课程中设置并使用版本控制系统。
- 必须做到(相对的)与流程无关。我相信好的解决方案在 RUP 和 XP 中一样有效(正像版本控制和单元测试一样)。
最初的众多回复中,XP 和自动化测试工具社区以及多方面的专家——Ward Cunningham 提出了一个有趣却有些离题的看法。Ward 答话非常礼貌,但却针对 Wilson 的动机提出了尖锐的问题:
我不能肯定,开发出“符合产品级质量要求的代码”应该是大学教育的目标。 (在我上大学的时候,)我要接受两种形式的知识:一是教授传授的,大量的系统化知识,二是我自己体验得出的,许多灵活的技术。当时还有第三种,就是与真实产品相关的知识。
大体上,Ward 并不反对 Wilson 的观点,他也认同 Wilson 为改进学生能力所做的努力,对于“学生们在走出校门时,应该更熟练掌握职业敏捷实践者们所使用的工具和技巧”这一点,他也不反对。但是他认为:要想让学生理解“符合产品级质量要求的软件”,没有必要花费大量的精力在这些方面。Ward 强调:与其如此,还不如去了解和开发真实的产品,以获取相关经验。
由此引发的相关讨论都很有意思,包括根据 Wilson 的标准来评定常用软件具备(或者缺乏)的可用性。讨论涉及的软件包括 FitNesse 、 Selenium 、 Watir 、 Concordian ,以及 ThoughtWorks 提供的全新“协同测试”工具——Twist。
更多与这个话题相关的讨论,可以通过雅虎的 AA-FTT 讨论组查看。
查看英文原文: Discussion: Leaner Tools To Better Prepare Undergrads?
评论