项目管理理论在软件项目实践教学中的应用*

2023-12-06 03:07王芳邓一星
项目管理技术 2023年11期
关键词:生命周期项目管理阶段

王芳 邓一星

(广州城市理工学院,广东 广州 510800)

0 引言

实践教学是工科专业培养方案和教学计划的重要组成部分[1]。实践教学与理论教学相辅相成,对于学生深入理解理论课程的内容、提高动手能力和综合运用所学知识解决实际问题的能力具有重要作用[2]。同时,实践教学对培养学习创新意识和团队精神、提高学生对实际工作的适应能力、提高学生的就业竞争力十分重要。一个完整的实践教学体系包括课程实验、课程设计、研发训练、毕业设计等层次的实践教学活动[3]。以我校2022级软件工程专业培养计划为例,本专业至少需要修习167学分才可达到本科毕业要求。其中,每个学生必须获得实践教育中的基础实践5学分、专业实践必修27学分、专业实践选修8.5学分,个人拓展课程中选修创新实践课程2学分。从专业培养计划可知,本专业学生需要修习的独立实践课(不包含课程实验)学分占其整个本科毕业所需学分的25%以上。由此可见,实践教学在新工科专业建设中的重要性。

我校软件工程专业为本科学生开设多门项目实践类课程,如前端技术开发项目实训、云计算应用实践、Android应用开发项目实践、Java EE框架应用开发项目实践、软件设计与开发等,按照实践难度分配2~4学分。这些项目实践类课程的教学目的是让学生综合运用已学专业基础课程(如软件工程导论、数据库原理与应用等)和专业核心课程(如前端开发类技术、Java服务器类技术、测试类技术、云计算类技术等)知识进行完整的项目开发。

然而,软件工程专业对项目实践类课程的考核一般是在项目后期,学生进行作品展示和答辩,教师对作品进行验收,教师将作品、作品说明文档、答辩情况作为本课程的评分依据。在项目管理理论体系中,验收和评价都是属于项目收尾过程组的动作。在项目后期才检查和验收作品,如果项目存在问题,变更代价高,学生失去将作品做得更好的机会。在项目后期,项目相关方对项目的影响能力迅速下降,教师的指导也失去了意义。因此,教师应更早地介入课程设计过程,最好能对学生的项目开发过程和过程产物进行指导和评价,以便学生在项目进行过程中不断改进,最终提交更好的作品。

本文以软件项目实践类课程为例,从项目管理的角度出发,设计以学生专业成长为目标的实践教学方案,让学生在项目实践中不断完善自我认知,为学生不断改进项目提供场景,为学生提升实践技能提供通道。该实践教学方案同样适用于其他项目实践类课程。

1 在项目实践类课程中实施项目管理的可行性

项目是为创造独特的产品、服务或成果而进行的临时性工作[4]。项目实践类课程的启动背景为满足相关方的需求,项目相关方为该课程的授课教师。教师团队或课程组在制订该课程的教学大纲时明确了学生在该课程中需要满足的要求。

项目管理是指将知识、技能、工具与技术应用于项目活动,以满足项目的要求。有效的项目管理能够提高项目成功的概率[4]。在项目实践类课程中,教师是项目的发起人和重要相关方。如何帮助学生达成项目目标、如何促使学生的作品满足相关方的期望、如何提高学生作品成功的概率,这些都是教学团队或课程组在制订教学方案时需要着重考虑的问题。

为了提高学生在项目实践类课程中的项目完成质量,教师可以运用项目管理知识指导学生进行项目实践。

2 建立项目实践类课程教学过程与项目管理理论之间的联系

项目生命周期是一个项目从概念到完成所经过的所有阶段[5],所有项目可以简单地使用一个通用的生命周期结构可分为开始项目、组织与准备、执行项目工作、结束项目4个阶段。项目生命周期是通过一系列项目管理活动进行的,即项目管理过程[4]。每个项目管理过程通过合适的项目管理工具和技术将输入转化成输出。输出可以是中间品即过程产物,也可以是本阶段或项目的可交付成果[6]。项目管理协会(PMI)第6版《项目管理知识体系指南PMBOK®指南》把项目管理过程归纳为启动、规划、执行、监控、收尾五大过程组。项目生命周期与项目管理过程组的关系如图1所示,每个阶段重复项目管理5大过程组。阶段结束的标志是阶段性可交付成果的移交。阶段关口是指在阶段结束时将项目的进展与项目本阶段的准出标准或下阶段的准入标准进行对比,根据比较结果作出决策,包括进入下一个阶段、整改后进入下个阶段、结束项目、停留在当前阶段、重复阶段或某个要素等[4]。

图1 项目生命周期与项目管理过程组的关系

项目生命周期定义了项目要完成的工作,可按照要完成的工作划分阶段[4]。如软件项目要完成的工作有需求、设计、编码、测试和部署等。项目生命周期基于技术工作划分,各个阶段的工作产出是技术成果,阶段之间涉及技术工作交接,项目管理过程组基于管理工作划分,其每个过程组的产出是管理工作成果,过程组之间涉及管理工作交接。为了更好地完成项目的技术工作,我们用项目管理过程组管理项目需要完成的工作。

软件工程专业的学生在大二上学期学习了专业必修课《软件工程导论》,已经理解了软件开发生命周期的概念。为了让学生能更好地完成大二下、大三及大四的项目实践类课程,教师应引导学生通过一系列项目管理活动来管理生命周期中各项工作。因此,教师或课程组在制订教学大纲时,可以将项目实践类课程中项目(以下简称“课程项目”)的开发生命周期与项目管理过程联系起来。如果将过程组的输出即过程产物作为课程项目的过程评价指标,教师就能对学生的项目开发过程和过程产物进行阶段性评价和反馈,以便学生能在课程项目的生命周期中不断进行项目改进,最终提交更好的作品。

综上所述,对于课程项目,可以用项目生命周期的项目阶段来定义在项目中要完成的工作,用项目管理过程来管理项目中要完成的工作,通过项目生命周期与项目管理过程组的关系建立起项目实践类课程教学过程与项目管理理论之间的联系[7]。

3 实施项目管理的项目实践类课程教学模式探索

项目相关方可以对项目的目标和结果施加影响[8]。在下面的教学方案设计中,教师作为项目相关方,可以建议学生选择混合型生命周期模型,按照软件工程专业项目实践类课程的特点裁剪项目管理阶段,并定义每个阶段的工作和输出。

3.1 选择生命周期模型

混合型生命周期是预测型生命周期和适应型生命周期的组合[4]。软件工程专业项目实践大多由教师提供选题,不仅有确定的需求,也有学生进行自我挖掘和扩展的需求。学生也可与教师商议自主选题。因此,建议学生选择混合型生命周期模型。

3.2 定义项目阶段

项目可以分解为不同的阶段,这些阶段的名称通常说明了该阶段完成的工作类型[4]。软件项目的生命周期可简化为立项、开发、运维和消亡4个阶段。开发阶段又可以分为需求分析、概要设计、详细设计、编码和测试5个阶段,每个阶段的输出是下一个阶段的输入。分为多个阶段的方式有助于更好地掌控项目管理,同时还提供了评估项目阶段并在后续阶段采取必要的纠正或预防措施的机会[9]。项目阶段的其中一个关键组成部分是阶段审查,对于软件项目而言,还可以选取原型设计、试运行和经验教训等阶段。[4]

在敏捷方法论的指导下,软件项目实践要求学生按两个阶段完成项目实践。先发布0.1版本,最后提交的是1.0版本,两个版本都是可以运行的产品。经裁剪,软件项目实践类课程定义项目阶段如图2所示,即两次迭代。图2中每个阶段结束的标志是阶段性成果的移交,阶段性成果产物均包含在过程组要管理的工作中。

图2 定义项目阶段

3.3 用项目管理过程来管理各项目阶段的工作

项目生命周期定义了要完成的工作,用项目管理过程组管理项目要完成的工作,过程组及要管理的工作见表1。

表1 过程组及其要管理的工作

软件项目实践类课程要求学生在每个阶段、每个步骤都有输出,主要包括需求说明书、原型设计、代码、测试用例、测试报告等技术输出,以及项目管理计划、验收的可交付成果、存档的项目文件等项目管理输出。这些输出便于教师对学生的项目开发过程和过程产物进行阶段性评价和反馈[10]。基于此,教师可对学生的项目进行阶段性指导,以便学生能在课程项目生命周期内不断改进,最终提交更好的项目成果。

4 应用成效

以我校2020级软件工程专业为例,大三上学期开设专业实践课《Java EE框架应用开发项目实践》。为了提高学生在该课程中的项目质量,运用项目管理知识指导2020级软件工程专业3班52名学生的Java EE框架应用开发项目实践。

4.1 教师实施教学过程

学生在课程项目生命周期的各个阶段都需要提交过程产物,有项目计划书(含团队组建、项目定义、敏捷合作章程、迭代计划)、迭代的需求文档、原型设计、概要设计文档、前后端接口文档、代码、部署文档、测试用例、测试报告等。教师通过每个过程组中要管理的工作来检查学生阶段性成果及其移交情况。按照图2中定义的项目阶段,教师在学生项目的每个阶段结束时协助学生将项目的进展与项目本阶段的准出标准或下阶段的准入标准进行对比,根据比较结果作出决策[4]:学生项目是进入下一个阶段,还是整改后进入下一个阶段。

在本次实践教学过程中,教师兼顾项目发起人、项目经理、敏捷专家三重身份。

(1)项目发起人。定义对项目的要求,对项目提供战略性计划和指导,对项目计划进行审批,对项目实施进行审查,确保项目成果满足需求。

(2)项目经理。协助学生制订项目阶段性目标和项目总体控制计划,确定项目阶段性目标的实现,及时决策,确保项目目标实现。

(3)敏捷专家。引导学生合理利用资源、良好合作,解决团队开发中的障碍,协调沟通中的问题,确保学生发挥自身的最大价值。

4.2 学生反馈

在本次实践教学结束后,向2020级软件工程专业3班52名学生收集匿名课程总结。从总结中可以看出,学生对本次实践课程有非常强的参与感。大多数学生认为本次实践教学活动与以往的项目类实践课程不同,过程管理的方式使他们的软件开发技能、项目管理工具使用、文档撰写能力都有了明显的提高。

5 结语

实践教学要充分体现和突出专业特色和专业要求。软件工程专业要求学生掌握一定的软件项目管理知识,在高年级开设相应的软件项目管理课程[11]。将项目管理理论融入实践教学,教师对学生项目的开发过程和过程产物进行指导和评价,而不仅是停留在检查和评分层面,真正发挥了教师的指导作用。

教师在实践教学过程中实施项目管理,能对学生项目进行科学化管理,引导学生更加正确规范地做事;让学生进行群体性思考,变被动为主动,提高学生预测和预防风险的实践能力;让学生有明确的共同目标,从原来的仅关注个人能力转变成相互协助;对学生各个方面的项目工作进行有效管理,促使学生工作有序、成果有效;要求学生工作文档化,文档是相互交流的载体,让学生的思路更加清晰化、逻辑化、一致化、可视化、系统化,从而提高学生的逻辑思维能力和沟通表达能力。

教学实施效果表明:在Java EE框架应用开发项目实践中实施项目管理,不仅提升了学生的项目质量,还能够使学生从个人能力、自我管理向团队协作能力、项目管理方向转变,有利于提高本科高年级学生的就业竞争力[12]。该实践教学方案同样适用于其他围绕项目开展的实践教学课程,可为落实新工科专业新型实践教学方法体系和模式提供参考。

猜你喜欢
生命周期项目管理阶段
全生命周期下呼吸机质量控制
装配式EPC总承包项目管理
关于基础教育阶段实验教学的几点看法
基于大数据分析的集合式EPC总承包项目管理软件技术的应用
项目管理在科研项目管理中的应用
在学前教育阶段,提前抢跑,只能跑得快一时,却跑不快一生。
从生命周期视角看并购保险
未来如何更高效地进行工程项目管理
民用飞机全生命周期KPI的研究与应用
企业生命周期及其管理