疫情背景下软件项目管理课程线上教学实践研究
2021-09-28薄莉莉孙小兵
薄莉莉,孙小兵,李 斌
(1.扬州大学信息工程学院;2.江苏省知识管理与智能服务工程研究中心,江苏扬州 225127;3.计算机软件新技术国家重点实验室(南京大学),江苏 南京 210023)
0 引言
疫情背景下,教育部倡导学校利用网络平台开展线上教学,保障学校教学有序进行[1]。当教师必须由非常熟悉的传统线下课堂转移到完全线上教学时,无论是对各教学平台软硬件设备的操作能力,还是教师的教学设计与实验安排,又或是师生的线上互动与适应能力,都带来了极大的挑战[2-3]。随着信息技术的飞速发展,软件工程技术更加业务化、服务化、智能化、综合化,软件技术人才面临岗位规模化、课程多样化、能力综合化等各方面的挑战。因此,高校需要重点培养软件专业学生解决复杂工程问题的能力和综合实践能力[4-6]。这仅仅依靠课堂讲授是完全不够的,还需要创造一个实践支撑环境,让学生在实践过程中通过“学、做、练、悟”逐渐形成[7-8]。
针对一个软件项目,软件人员应该以更长远的眼光看待软件发展,学会规划和管理项目。需实施有效的软件项目管理,在保证软件质量的同时按时上线发布[9]。因此,提高软件项目管理能力对于保证软件产品质量,提高软件开发团队生产力具有重要意义[10]。软件项目管理课是一门实践性较强的专业核心课程,该课程对于软件工程专业学生的毕业要求指标点支撑较多,是强化学生工程素养、掌握项目管理知识、培养项目规划与执行能力的一门重要课程。
1 相关工作
1.1 疫情背景下的在线课程教学
疫情的爆发直接暴露了传统教学的弊端,同时促使了在线课程教学的进一步改革。大量的教育工作者积极提出各种策略开展疫情背景下的教学改革。嵩天[11]分析了传统大学课程的三维模型,构建了新阶段大学课程的四维模型,并提出了以在线开放课程为引领的大学课程改革新模式及操作路径;潘晟旻等[12]提出利用“换元”思维进行在线教学组织与实践,以“一课一策”的粒度组织教学,以全流程交互反馈增强学生的课程参与度,以认同感培养为契机激发学习内驱力。以上教学改革的开展是对多门基础课程而言,而本文针对软件项目管理这一门硬核专业课开展在线教学,在线组织并模拟了竞标场景和在线公测,更加凸显课程特色。
1.2 软件项目管理课程教学实践
工程教育和新工科建设要求工科学生具有非常强的工程实践能力。软件项目管理课作为软件工程专业的一门核心课程,对于培养软件工程人才的工程实践能力是必需的。现有的软件项目管理课程实践主要有基于平台的教学改革实践[13-15]和基于案例/项目的教学改革实践[16-19]。
黄龙军等[13]基于MOOC 平台开展软件项目管理课程教学改革,教师抛出案例场景和遇到的问题,学生讨论如何解决;韩万江等[14]基于MOOC 与直播的网络混合教学模式进行软件项目管理实践,从而实现网络化、远程化、分层次、个性化教学。此外,他们还借助“爱课堂”平台建设并完善课程线上资源[15]。本文结合MOOC 和扬州大学在线教育综合平台[20],课前学生预先学习MOOC 指定的软件项目管理精品课程,并进行在线测试。扬大在线教育综合平台同样能够实现课前通知发布、学生作业提交、成绩自动分析等功能。在课堂教学中使用QQ 群直播的方式,方便师生互动交流,也方便学生作品展示。此外,在线公测阶段,利用公众号、QQ 群、微信朋友圈等多种渠道推广并宣传学生的作品。
基于案例/项目的教学改革实践侧重培养学生的工程实践能力。李蓉等[16]结合任务驱动教学法和案例教学法讲述软件项目管理过程中的任务设计、任务执行、任务评价等具体方法;李志明等[18]分析软件项目管理传统教学模式的不足,提出基于项目驱动的软件项目管理课程教学模式和以团队完成项目任务为主线构建的“六位一体”教学体系。更进一步,张永平等[19]提出“案例驱动+项目实践”的软件项目管理课程教学实践,以项目开发为主线,以案例讲解为切入点,融合理论知识和教学内容。不同的是,在教学实践中根据教学进度要求学生课前自主学习并搜集各种案例,构成案例库,如软件项目管理失败案例库、软件项目管理标准体系发展库、软件项目风险列表库、软件项目管理工具库等,提高学生的自主学习能力和资料查阅能力,并进一步将课前获得的知识运用到自己的项目管理实践中,且学生在整个学期中开发管理的项目在学期初通过竞标确立。
2 课程内容与目标
软件项目管理课程主要介绍现代软件项目管理的基本概念、特征、重要性、软件项目管理知识体系和敏捷项目管理,并以软件项目生命周期为主线详细介绍从项目确立到项目结题的整个过程中,各阶段软件项目管理的基本原理、流程、方法和工具。由于这门课程是实践性较强的一门专业核心课程,因此,为学生设定不同的软件项目,让学生根据每节课学习的知识点和方法技能有效地管理和开发项目。该过程随着授课的进行而不断完善,课程结束时项目上线公测。
软件项目管理课程的总体目标是希望通过本课程学习,学生能够从项目管理的角度,对软件项目范围、成本、时间等进行规划,能够自觉按照软件项目管理的要素进行软件项目开发和维护的管理,并掌握与此相应的工具。具体目标如下:①能够在目标软件项目计划和启动阶段,分析适用于目标软件项目管理和开发的流程、工具、技术;②能够在软件项目计划阶段识别软件项目的开发与实践对社会、安全以及文化等方面可能带来的风险,并了解其应承担的社会责任;③能够将环境保护和可持续发展理念结合在软件项目计划和实施过程中,分析软件项目的实施对环境及社会可持续发展的影响;④能够在软件项目执行过程中认识团队的作用,知晓沟通和合作的重要性,并在软件项目实践中主动与其他成员沟通、合作、开展工作;⑤懂得软件项目成本、进度等计划中涉及的管理与经济决策中的知识和方法,并根据项目特征、进度和质量要求等选择合适的项目估算和决策模型。
3 线上教学模式
3.1 课前准备阶段
课前准备流程如图1 所示,主要包括5 个步骤,线上平台消息发布、项目团队建设、案例库收集、MOOC 课程自主学习和在线测试。
Fig.1 Pre-class preparation process图1 课前准备流程
这次疫情促使了学校对线上教学的重视,大量线上教学平台[21-22]得以普及,中国大学MOOC、云课堂、腾讯课堂、腾讯会议、异步SPOC 等,每个平台都有自己的特色和优势。使用最简单大众化的QQ 群直播方式进行线上教学,课程消息或通知在QQ 群里发布,不会影响上课,也方便交流。此外,基于软件项目管理课程内容和目标,并基于群智理念[23],学生在课程开始前先自行组队,每个小组控制在4~6 个人。然后小组内推选出一名项目经理,负责在整个软件项目开发和维护过程中组织管理小组成员,定期开会讨论,推进项目进度。为了提高学生自主学习和独立思考的能力,也为了保证线上教学质量,让学生通过以下两个方面充分做好课前准备。
首先,建立一套适合软件项目管理的案例库[24],主要包括10 个相关案例,分别是软件项目管理失败案例库、软件项目管理标准体系发展库、软件开发模型库、软件项目案例库、软件项目风险列表库、软件项目管理文档模板库、软件质量管理体系库、软件项目管理工具库、软件度量库和企业项目经理库。随着教学进度的开展,教师会于相应章节的前一周在扬州大学网络教学综合平台发布相关的案例库收集作业,以项目团队为单位收集不少于5 个案例。团队成员相互协作,共同完成案例库收集。
此外,学生以个人为单位,课前先自行选择时间在中国大学MOOC 平台观看韩万江教师的软件项目管理课程视频(课程选用同步教材[25]),并提交学习笔记到扬州大学网络教学综合平台[20],让学生提前掌握一些基本的概念知识,实现课前自主学习。
3.2 课中实施阶段
由于学生课前已经观看了软件项目管理精品课程并提交了学习笔记,基本掌握了相关概念,教师课堂上不会过多地讲述概念性问题,会根据学生提交的学习笔记,通过提问探讨和案例分析的方式,有侧重地进行授课。此外,为了提高学生在软件项目管理方面的实践能力,对软件项目管理的定义、特征及意义进行概述后,由教师命题发布10 个项目招标书模拟招标,学生小组内协商选择项目,编写项目投标书,项目立项后,采用敏捷开发实践,基于版本管理平台进行项目开发。项目管理实践必须基于某个项目管理平台进行计划和执行,每周提交项目进展报告。课中实施阶段具体流程如图2 所示。
Fig.2 Implementation process in class图2 课中实施流程
(1)项目竞标。基于腾讯会议进行云答辩竞标。出场顺序随机,时间控制在每组10 分钟,5 分钟陈述竞标ppt,5分钟回答招标客户提出的问题。邀请20 位不同背景和学历的人员作为专家参与竞标和观摩,分别为3 位教师、5 位研究生、2 位企业人员、10 名本科生。专家对每个小组的竞标表现进行打分,总分100 分,项目特色占15 分,功能与技术分析占30 分,团队能力占15 分,报告情况占20 分,问答表现占20 分。每个项目原则上不超过两个团队,被淘汰的小组的处理方式有两种:一种是解散,在其他小组接受的前提下加入到其他小组中;另一种是重新选择项目。
(2)中期检查。为了保证项目顺利进行并准时上线,也为了项目产品能够满足客户需求,软件开发团队必须与客户经常沟通协商。在项目立项后,有些小组对项目需求仍然不是很明确,或者在开发过程中遇到租赁服务器等问题,也会主动找教师(客户)交流。尽管如此,为了保证所有团队都能在课程结束时提交一个完整的项目,在学期中间阶段组织了一次中期检查和实物验收,基于腾讯会议进行系统演示,给出任务分解结构图,展示已完成的功能和未完成的功能。教师(客户)对演示系统提出进一步修正和建议,同时给予技术指导。
(3)项目上线公测。课程实践要求所有平台或软件最终上线试运行至少2 周,因此在项目验收的前两周将各团队的软件产品通过多种渠道(如学工处、团委、QQ 群、微信群、朋友圈、公众号等)进行宣传推广。每个团队提供软件产品的访问入口、用户使用手册和用户反馈通道或联系方式,将其挂到公众号上,最后设置一个投票机制,使用人群可以投票选出最满意的一个产品。通过用户反馈通道,可以激励团队开发人员不断完善和改进项目。
(4)项目验收。课程的最后两次课是项目验收,基于腾讯会议方式进行答辩。汇报总结包括以下几个方面:团队项目进度管理和完成情况、成员执行任务情况、项目变更情况、平台质量情况、目前活跃用户数、项目团队沟通情况、有待进一步改善的地方、自我评价和打分。
此外,教师在课堂上会设计一些课堂测试,结合小组的软件项目加强对软件项目管理工具的使用,如项目进度控制工具、项目配置管理工具等,通过熟练使用这些软件项目管理工具,提高软件项目管理效率。最后,会邀请企业项目经理做线上报告,从软件项目、软件项目管理、软件开发、预算和文档等多方面介绍公司对真实软件项目的管理过程。
3.3 课后拓展阶段
教师在学校综合教学平台发布课后作业,由小组协作完成,然后将作业提交到学校综合教学平台,由教师批改评分。课后作业进一步丰富和拓展了课堂教学内容,巩固了专业知识,而且提高了学生的沟通协作能力。
虽然课时量有限,但最终学生还是会在课程结束后提交并发布他们的软件成果,这是他们一个学期以来不断沟通、调整和努力的结果,也会激起他们进一步维护和完善软件产品的热情。课程结束后,教师可在技术或经费方面给予支持,更好、更持久地培养学生软件开发和软件项目管理能力。
4 实践效果
通过一学期的软件项目管理线上教学课程实践发现,基于线上混合模式的教学效果相比传统的线下课堂并未打折扣,师生互动也未因此而减少,基本达到了线上线下学习效果的实质等效。例如,在项目竞标时,学生的云答辩准备充分,答辩流畅,评委提了很多建议和意见,学生也都回答自然,沟通毫无障碍,达到了预期效果。在课堂授课过程中,学生可以通过聊天窗口或申请发言畅谈自己的理解和思想。线上教学让大家实现了随时随地学习的可能,锻炼了学生的自主学习能力,也提升了学生的管理能力和实践能力。
为了准确了解线上教学实践效果,本文设计了调查问卷对学生进行调查分析,调查包括对课程教学方式的认可、对教学过程中组织实施的认可、对自己收获的认可等。发放调查问卷70 份,收回有效调查结果68 份。该调查问卷由12 个问题组成,如表1 所示。
Table 1 Teaching effect survey表1 教学效果调查
共10 个选择题,是对当前教学方式和教学效果的满意程度,由5 个选项构成,其中,1 表示非常支持(非常满意),2表示支持,3 表示无所谓,4 表示不支持,5 表示严重不支持。从表1 结果可以看出,学生比较认可这种学习方式,对自己的学习效果也比较认可。由于受疫情影响,不得不采取线上教学方式,这对学生的自制力要求较高,如果纯粹以教师讲授的方式难以吸引学生注意力,也难以激发学生学习兴趣。采用项目实践驱动的教学方式可以使学生全程以自己的项目为主线,贯穿整个软件项目管理课程,根据软件项目管理各阶段实施相应的软件项目管理计划,培养了学生的职业道德素养。同时,这种教学方式充分调动了学生软件项目管理的积极性,在线公测也给学生带来了极大的自信。
为了进一步改进软件项目管理线上教学方式,采取不记名的方式收集学生对线上软件项目管理课程的反馈和建议。大部分学生认为自己切实体验了软件项目管理过程,体验了作为软件项目经理如何有效地管理整个团队,在项目开发遇到问题时如何组织小组成员线上讨论,及时解决问题,他们从中看到了自己在软件项目管理方面的价值和潜能,这是软件项目管理线上教学的实践效果之一。部分学生提出了较好的建议,例如,可以添加一些自创课题,可能会诞生一些非常有创意的想法。同时,也存在一些问题,如有些学生线上课堂无法长时间集中注意力、线上网络偶尔不流畅等。
5 结语
疫情之下的线上教学不能只是应急之举,应当引发教育部门深思,这对促进教师教学方式转变和加强师生互动交流是一个很好的开端。以项目实践为驱动的线上教学模式将提高学生的学习兴趣,激发学生在项目开发和管理实践中的创新潜力,收获在传统课堂意想不到的教学效果。高校教师应以此为契机,特别针对专业实践性较强的课程,改革教学方法、丰富教学手段和资源,提高学生实践能力,提升人才培养质量。然而,线上教学毕竟不是面对面交流,在师生或学生团队间的沟通过程中会存在一些不足。在下一步工作中,将继续对软件项目管理课程进行线上教学改革,并结合线下教学,形成良好的线上线下混合教学模式。