原文:http://blog.sina.com.cn/s/blog_553f355101017j8q.html
在该文中,作者重点阐述了实践者反思理论的主要思想,并探讨了为什么一般适应软件工程,而特别地适应软件工程教育。
正如文中所述,当我们越来越多的认识到实践的现象的重要性,逐渐承认软件开发项目涉及人脑智力上的复杂性,软件开发应该由专业化的、系统化的方法加以指导。那么什么样方法是适合软件开发的呢?作者在文中建议采取实践者反思的方法,实践者反思理论强调工作室实践。
那么实践者反思理论的好处是什么呢?反思性实践者理论作为一种认知工具,可以帮助编程人员在开发软件的过程中增加对软件开发方法的理解,对于持续从事软件开发的学生而言,提高他们的创意过程指导是十分有益的。因为反思性实践者方法论的目的旨在提高个人对创建复杂对象过程的理解。更具体地说,在软件工程方面,如果我们能更好的理解一个软件系统的开发过程,我们就可以更好地去指导这一过程。具体在工作室实践方面的表现是,在一个工作室里,在软件开发过程中,学生接受个人指导,并在同一时间,鼓励他们反思自己在做什么。这种情况是对比传统的学生开发的软件系统接受辅导时,在许多情况下,计算机科学专业的学生没有得到任何回应,直到他们完成开发一个软件系统。学习计算机科学的学生,在开发软件过程中,由于较缺乏与人沟通的技能,往往开发出来的软件系统,需要大面积的修改,甚至不能付诸运营。继往开来我们的许多软件都是这样的,最后不了了之。
传统的软件开发教育模式,没有反映出实际的复杂性,包括计算机软件开发的过程,而且老师和学生之间没有良好的交流,学生也没有反思自己的工作。例如,这学期我们还有两门课有大作业——《数据库》和《编译原理》。这两门课的大作业,就属于典型的传统教育模式。老师先讲理论,告诉你其中的原理和方法,然后给你留出时间去做大作业,到最后来个大作业检查。这样的模式最大的两个问题就在于:1、交流太少,学生很难能及时发现自己的问题,更别说创造性思维。2、在老师讲解理论的过程中,学生没有加以实践。
反观,这学期的《软件工程》,在团队作业的过程中,有两次各为期10天的daily scrum,这样的目的,就在于让我们不断反思自己做了什么,还需要做什么。还有博客互动和每周的上课交流,密集的学生与老师之间的互动逐步变成一个非常系统的反思性实践者。而且,隔段时间,还要向其他同学做一定的展示,这种密集的时间表对我们提出了压力,作为结果,我们可以把自己的设计艺术贡献出来:我们学习技能,专业的语言和关于学科的思维方式。就像在工作是一样,我们可以尽情地展现我们的个性和表达我们的技能。
最后,我觉得传统的教学模式必然是要改进的,但是先进的模式一下子接受起来也还是有些困难,教育的改革即是思想上的改革,这东西急不得、也急不来,需要一个过程去理解、接受和学习。实践者的反思理论,可以配合传统的教育模式,做一定的应用,通过不断的改进,使之逐渐发挥出应有的作用。