左 航,何 丹,舒 莉(四川大学 软件学院,四川 成都 610065)
建构主义教学理论在软件项目管理中的应用
左 航,何 丹,舒 莉
(四川大学 软件学院,四川 成都 610065)
摘 要:软件项目管理是软件工程知识体系非常重要的一环,课程涉及大量交叉学科的知识,需要学生具有一定的项目经验。文章提出引入建构主义教学理论与方法,在课程中通过案例和项目重建情景,将空泛的理论映射到实际案例和项目中,让学生能在一个真实具体的场景下理解和创造性地应用所学知识。
关键词:建构主义;软件项目管理;情境教学
软件项目管理是软件工程体系的一个重要组成部分,强调对项目进行有效的策划、组织、监控和管理,保证项目在给定的时间和预算下,达到预期的质量。课程涉及大量非软件工程和计算机应用技术方面的知识,比如管理学、工程经济学、组织行为学等,因此成为软件和计算机本科课程里涉及学科最多的课程。学习本课程,可以从开发人员角度切换到管理者角度,重新审视软件生命周期及软件过程,同时进一步拓宽知识面,开阔视野,朝着“T”型人才发展。课程在为学生带来充沛的营养知识的同时,也对课堂的组织和授课模式带来巨大的挑战:首先,大量本学科和跨学科的新内容要在有效的时间内传授给学生,要求内容裁剪得当,轻重有序;其次,对管理理论的理解,需要具备小型项目开发经验,因为项目规模越大,管理层次越多,管理的作用就会越重要,效果就越明显,而对于微型项目,成败更取决于参与人员的技术水平[1]。大三学生的项目经验参差不齐,受参与项目数量、类型和规模的限制,很难对书本上经典的理论知识产生共鸣,更谈不上灵活的应用了。因此,让软件项目管理知识鲜活起来并激发学生的学习热情,是一个非常具有挑战性的任务。
最初,软件项目管理的教学方法沿用了经典的理论先行再辅以大量练习的模式。这种方法主要体现了“在教中学,在学中做”的思想。教师按照教学大纲,依次抛出主题、重点内容和参考资料,随后学生进行相应练习。由于课程非常注重实践,强调对综合性知识的灵活运用,因此实验课安排了少量的客观题目和大量的开放式主观分析题目。这样设计课程的目的是期望通过客观练习题目让学生掌握理论基础,同时通过主观分析题目进行发散性思维训练,创造性地应用所学理论分析问题、解决问题。在整个课程的安排中,人为地将理论和实践分解开来,在理论课上只重视知识本身的传授,而在实验课上只关注学生的练习情况。这里其实先入为主地做了以下两个假设:第一,认为学生应当先接受新知识,才能去应用;第二,学生获得理论后,有能力灵活地加以应用。
在授课环节中,即便再丰富的理论知识,在教科书里也不可能以生动的故事形式呈现,缺乏情景的传统方式授课会让学生味如嚼蜡;其次,由于学生缺乏相应的项目经验,很多前辈总结的金玉良言,在他们看来无非是一些枯燥的条条框框,只能被动接收,很难理解并产生共鸣,导致消化不良。在这种教师占绝对主导地位、学生处于被动状态的授课方式下,知识被教师强行灌输给了学生,学生的学习热情和积极性很难被调动,因此理论课堂气氛显得比较沉闷。
在实验阶段,学生虽然在客观题目上表现优异,但在主观分析题目上显得无所适从。大部分开放性主观分析题答案大同小异,呈现出条款化、公式化的特点。其深层次的原因是不能结合项目特点对知识点进行有效的组织和再加工,更谈不上结合个人经验和能力进行发挥。
根据布鲁姆等人创立的教育目标分类学[2],认知过程被分为6个层次,依次是知识、理解、应用、分析、综合和评价。大部分学生仅达到第一层,对知识的认知仅停留在表面;少数人能达到第二、三层,但仍不能结合自己的经验对问题进行深入分析从而创造性地应用理论知识解决具体问题。这说明目前的教学模式存在不小的问题。
3.1建构主义的理念
通过分析原因,不难发现两个假设存在的问题。第一个假设采取教师占主导地位的“教”的方法,而忽略了“教”的目的是“学”和“做”,而后两者的主导应当是学生,因此很难引起学生的学习兴趣。第二个假设忽略学生间的差异和项目经验不足的现状,单纯的理论讲解无法提供一个真实有效的场景,学习过程缺乏浸润感,难以引发学生的共鸣。
按照当代建构主义的理念[3],知识不是通过教师教给学生的,而是在一定的情境中,利用必要的学习资料,借助外界的帮助,经由有意义的建构过程而获得。根据这一理念和先前的问题,我们重新设计课程,通过两个步骤实现“情境”“协作”“会话”和“意义建构”。首先,增加一个规模略大的团队实践项目,在一定程度上弥补学生项目经验缺乏的问题。单有项目还不够,因为从理论到实践还存在不小的跨度。为了平稳过渡,带来更好的融入感,第二步在课程中引入大量业界案例[4-6],让学生有机会观察从业人员如何应用理论知识解决项目开发中的实际问题。项目和案例为理论学习提供了所需的“情境”“协作”和“会话”,从而有可能帮助学生进行有意义的知识建构。
3.2实践项目的设计与效果
为便于课程知识的引入,团队实践项目的具体设计做以下几点考虑:
(1)项目应有一定规模,因为管理难度正比于项目规模;
(2)项目应有一定的不确定性或随机性,从而模拟真实的项目开发场景,考验学生灵活运用理论知识的能力;
(3)项目应当贴合课程要求,整体上具有高管理复杂度和低技术复杂度,将工作的重心放在团队组织、项目计划、监督和风险控制上;
(4)项目应当具有可扩展的高技术复杂度部分,锻炼学生评估复杂技术风险的能力。
为了满足以上约束条件,我们将一个完整项目分解为3个子任务,分为两个阶段完成。第一阶段学生以3~5人一组,构成微型团队,完成3个任务中的任意一个,随后项目中期验收。第二阶段将根据第一阶段的验收分数随机地将强弱队伍搭配成一个大组,即小型团队。大组要求在较短的时间内完成项目整合,并最终完成系统集成和验收。为了增加难度,在第二个阶段安排需求变更,甚至人员变动,考察学生的项目计划是否有风险应对措施。第一阶段任务简单,唯一的难点是定义公用的数据格式和通信协议,因此绝大部分学生的完成情况非常好。第二阶段,随机的队伍整合,首先爆发的问题是对公用数据格式和通信协议的理解偏差,模块将面临较大的调整;其次管理层增加一层后大组长、小组长和组员的沟通问题导致任务不能及时传达和执行;最后在需求变更的轰炸下,拖延的晚期集成就成为了问题的集中爆发点。项目的评分分两期,由教师和学生代表共同完成并由组长依据组员的工作量按不同权重予以分配。
这个看似不难不紧急的项目,最终验收时有近25%的团队无法完成,而原因就是课本里谈到“晚期项目集成”。很多学生认为3个任务模块已经各自完成,而且有协议的约束,在集成时不会出现大的问题,尽管教师一再强调也不为所动,最后亲身体验项目失败。这也是不少学生在总结里面提到的,软件项目管理的理论是“纸上得来终觉浅,绝知此事要躬行”。
3.3业界案例的设计与应用
在业界案例部分,可以按章节每次引入一个主题场景。为了达到最佳效果,做以下几点考虑:
(1)依据具体情况确定案例先行还是理论先行。如果学生对理论部分比较陌生,则理论先而案例后,反之案例先而理论后,这样有利于调动学生积极思考,激发学生兴趣。
(2)案例的选择应具有真实性、适用性、可拓展性和限定性,并兼顾趣味性。
(3)案例的呈现方式多样化,以活跃课堂氛围,减少枯燥感。
(4)教师要控制好案例讨论的时长和深度。
(5)根据案例内容的重要程度或者主观性程度,以多种方式呈现讨论结果。
在具体课程中,首先通过一个团队游戏,让学生体验看似极为简单的任务,在时间、质量和行业竞争下,想要成功胜出也并非易事,从而初步认识到管理的重要性和必要性。在项目策划启动阶段,可以引入某IT上市公司近几年的3份业绩报告来分析公司顺应市场变化的资金投入方向以及项目决策。在项目团队组建初期,讲述和分析由技术开发人员新晋项目经理而导致项目失败的案例。在项目进入第二阶段前,针对中途接手项目问题,分别讨论一个信息系统项目的失败案例和一个外包测试项目的成功案例,让学生归纳对比,总结出中途接手项目要做的关键工作。学习组织行为学时,学生通过观看影片来了解组织如何影响其中的个人行为,让学生对陌生的知识领域产生直观的印象。这些侧重点不同的案例,在丰富学生课堂体验的同时,让他们真切体会到项目管理是一个需要融合多重知识和技巧的工作,决非照搬理论就能以不变应万变。随着案例讨论的深入,在实践项目遇到困难时,学生学会了借鉴案例并结合具体情况加以裁剪修改来创造性地解决问题。
通过以上两个方面的重点改进,从而为理论的讲述创建了合理的情景,提供了协作与会话所需的场合。学生在学和做的过程中,很容易产生对理论知识的认同感,从而由记忆知识过渡到理解;伴随着对案例的对比、分析和讨论,学生可以进入对理论知识认知的应用、分析阶段;而实践项目,则让部分学生最终体验到了认知的最高层,即综合和评价阶段。这种理论、案例和实践三管齐下的模式,让教师从教学的控制者,逐渐转变成组织者和推动者,提高了学生的自主性、参与性,促进了学生的表达能力、探索精神、团队合作能力。学生初步意识到要成为一个项目经理,光具有过硬的技术和软件项目管理的理论知识还远远不够,在今后的职业生涯中,还需要不断积累和拓宽知识面,不断完善自己对职业和人生的规划。
课程完成后,就改变后的授课情况,我们展开了一个小小的问卷调查,共有48位同学参加了投票。从图1的调查结果中可以看出,学生对改进措施的评价比较高。虽然取得了一些成绩,但我们今后还将对实践项目和案例进行持续的改进和完善,特别是项目的时间和人力成本控制方面,以期让实践项目更加接近真实的工程开发。
图1 课程调查数据
参考文献:
[1] Walker R. 软件项目管理: 一个统一的框架[M]. 周伯生, 廖彬山, 译. 北京: 机械工业出版社, 2002: 160-161.
[2] Bloom B S. 教育目标分类学(第一分册认知领域)[M]. 罗黎辉, 丁证霖, 石伟平, 译. 上海: 华东师范大学出版社, 1986: 18-20.
[3] 吴刚.基于问题式学习模式(PBL)的述评[J]. 陕西教育: 高教版, 2012(4): 3-7.
[4] 韩万江, 张笑燕,陆天波.软件项目管理课程中理论与实践的交融关系[J]. 软件, 2014(4): 165-168.
[5] 康雁, 李彤. 基于SE-CDIO 培养学生项目管理能力的新途径[J]. 计算机教育, 2013(13): 65-68.
[6] 刘海, 周元哲. 面向专业能力培养的软件项目管理教学研究[J]. 计算机教育, 2013(17): 61-65.
(编辑:孙怡铭)
第一作者简介:左航,女,讲师,研究方向为图像处理,z_hang@scu.edu.cn。
基金项目:四川大学新世纪教育教学改革工程项目(七期)。
中图分类号:G642
文章编号:1672-5913(2016)04-0107-03