实战模拟的“软件项目管理”课程实践与考核

时间:2022-10-23 05:59:23

【摘要】“软件项目管理”几乎是所有软件学院的必修课程,这门课程不同于传统的“软件工程”课程,但与PMBOK定义的项目管理也有所不同,它不是抽象的项目管理,而是软件工程项目的项目管理...

实战模拟的“软件项目管理”课程实践与考核

摘要:本文介绍了软件学院“软件项目管理”课程的实践方式与考核方式。该课程实践模拟团队协作完成一个项目,在整个课程实践中,每个学生轮流做一次项目经理,从领导者与被领导者两种角度体会软件项目管理课程实践考核由教师与学生共同完成,为组员分配成绩作为项目经理的一种职权,不仅帮助项目经理能够有一定的管理力度,同时也让同学体会如何正确使用职权。

关键词:软件项目管理;软件工程;课程实践;课程考核方法

中图分类号:G642文献标识码:B

文章编号:1672-5913(2007)05-0026-03

1 引言

“软件项目管理”几乎是所有软件学院的必修课程,这门课程不同于传统的“软件工程”课程,但与PMBOK定义的项目管理也有所不同,它不是抽象的项目管理,而是软件工程项目的项目管理,必须结合软件项目的特点。

由于传统教学主要讲授概念、理论、方法,学生的实践能力较弱,在实践中也不知如何应用所学的理论方法,因此现在教改强调实践能力的培养,学生也急于实践体验,往往又忽视基本概念、理论与方法的学习。但是没有理论指导实践,实践会变得盲目、不系统,会走很多弯路。管理科学的理论是总结许多失败与成功的经验教训之后提炼抽象而来的,真正掌握了理论方法,实践才会更科学、更系统,同时也能避免走弯路。

“软件项目管理”的实践不像软件系统分析设计、数据库设计、面向对象设计等课程那样,让学生完成设计文档及编码实现就可以了。如果学生仅仅提交相关文档,根本无法体会实际的项目管理所涉及的各种问题,如计划、质量管理等,尤其是那些非文档能体现的管理问题,如沟通、人力资源管理等。

为此,我们在教学中,课堂讲授主要采取理论结合案例进行教学,学生在课程实践过程中模拟企业的项目管理,亲自体验项目管理,自己解决问题,并且参与到考核中。

2 软件项目管理案例教学

管理科学的理论大多来自于实践,但却是经过整理、抽象的理论方法。面对这些理论,学生看到的是文字、符号、图表,要将这些文字、符号、图表再用于实践、指导实践却是一件不容易的事情。

管理的课程不结合案例讲解很容易变成空洞的说教,无法引起学生的兴趣,理论方法也难以被学生理解掌握,但完全讲案例又容易变成讲故事、就事论事,曾有学生要求课上全部讲案例分析,但案例分析的基础是理论,如果不讲清楚理论无法系统、科学地分析案例。

因此,课堂教学我们采用理论结合案例的教学方法。授课以理论教学为主,但为了使学生理解、掌握理论方法,所有的理论教学都穿插小案例,而为了使学生对完整的项目管理有一定了解,课上会有一两个大案例分析使学生将所学知识融会贯通。

课上所选案例几乎都是国内的案例,而且大多数是授课教师亲身经历过的案例。事实上,影响一个项目的因素非常多,我们从文献资料上看到的案例描述是不完整的,所以很难对这些案例有真切的体会,在分析讲解时也会牵强,只有对自身经历过的案例,讲解时才能全面、深刻、生动。

此外,我们采取开放式的互动教学。由于每次开课选课人数都在200-300人,无法实时互动,但鼓励学生在课间提问及课后通过邮件提问,这样可以过滤一些绝大多数同学都明白的非常基本的问题,对于对同学都有意义的问题,教师会在课堂上给学生进行讲解。尤其是有多年实习工作经验的同学,会提出非常实际但在许多企业解决得不好或没有解决的问题,教师在课堂上对这些问题给予解答,使其他同学在学习的过程中也能感受到来自企业的实际案例。

3 通过课程实践软件项目管理

理论在抽象的过程中必须抽取部分,落到一个点上,但是实践能够涉及到许多点,而且相互关联影响,远比理论描述复杂得多。如何将理论变成可操作的方法、有效的策略?解决某一问题有许多方法,哪种最合适呢?

亲自实践获取的感悟是最深刻的。读、听所获取的感悟、理解只在表层,必须实践,才能深刻理解所学的理论方法。为了让学生有深刻的体会,必须让学生通过课程实践体会软件项目管理中的问题,利用所学的理论与方法解决这些问题。

课程实践主要是模拟团队开发的组织与管理过程,让学生组成小组,共同协作完成课程实践。课程实践不仅要求学生完成一些文档,还要求学生提交每次任务的组织过程,包括会议记录、问题与解决方案及效果,最后还需要提交一份将整个课程实践过程作为一个实践案例的案例分析。

下面分别从几个方面介绍作业实践的内容、方式与考核。

团队组建:课程实践要求学生自愿组成项目小组,五人一组,小组成员在每次作业中轮流担任项目组长,完成不同任务。小组人员不宜太少,如果太少,组员间协调的复杂度不够;如果太多,对于松散的学生小组而言,协调的难度太大,难以完成课程实践。

团队组建完全由学生自己组队,可以采取招聘的方式。比如,在学院网站上招聘自己需要的组员。一般,有项目经验的同学喜欢组成一个小组,没有项目经验的同学往往组成一个小组,但是由于这些没有项目经验的同学非常认真、投入,反而在实践过程中收获更多,完成作业的质量也更高。

选题:团队组建完成之后,每个小组通过讨论选择一个虚拟或实际的软件项目,以此项目展开整个课程实践。课程实践中途不允许更换项目,这样,学生在选择项目时就要认真分析讨论。

作业内容:课程实践要求提交五份作业,相当于完成五次任务。五次任务分别是针对所选项目完成以下工作:

(1)立项报告:对所选项目进行技术、市场、经济等各个方面的可行性分析,重点是确定项目的目标、范围、关键技术等。立项报告是项目管理的纲要性指导文件。

(2)工作量估算:这是项目管理的的基础,项目的计划、任务的分配、成本等都依赖于工作量估算。作业要求利用课程讲授的估算方法,先对项目规模进行估算,在规模估算的基础上,利用课程讲授的估算方法进行工作量估算。

(3)项目计划:项目计划包括过程计划、资源计划、文档计划、风险计划、质量计划、人力资源计划及进度等多项计划,要求学生在工作量估算的基础上制定计划。

(4)任务分配:是在工作量估算和项目计划的基础上,将任务进行合理分解,并且在一定的时间约束下分配给每个组员。

(5)十大风险清单:每次作业分为两部分,一部分是提交上述文档,一部分是提交作业过程记录文档,包括会议记录、所遇问题及解决方法等。

轮岗:为了使每个同学都能够深切体会到项目管理中的各种问题,要求每个同学都做一次项目经理,在其他作业中担任组员。在做项目经理的过程中,每个学生体会收获都不一样,每个同学遇到的问题也都不一样。当遇到问题时,学生可以向教师咨询,但是教师不参与解决问题,完全由同学自己解决问题。

这种方式使学生真正体会了团队沟通协作。许多问题来自于沟通,而沟通带来的问题往往与人的性格有关,而非技术或能力,这使许多同学意识到沟通的重要性,也意识到自身素质在团队合作中的重要性。

通过角色的轮换,使学生体会项目经理的职责与权利,体会组织、领导一个团队协同工作的各种问题,同时也学习如何被领导,如何与他人合作共同完成一项任务,使学生从领导者与被领导者两种角度体会软件项目管理。同时,每次作业也都训练学生完成软件项目管理中的重要工作,如立项、项目计划、软件估算、风险管理等。

考核方式:教师在收到作业后,给每个小组打分,这个分数是项目组的成绩,也是项目经理的成绩。然后,将成绩发给同学,由项目经理给每个组员打分。项目经理根据组员在本次作业中的表现给组员分配成绩,遵循的原则是小组平均成绩不超过小组成绩。

为组员分配成绩作为项目经理的一种职权,不仅帮助项目经理在整个任务执行中能够有一定的管理力度,同时也让同学体会如何正确使用职权。当小组成员对项目经理的成绩分配有异议时,可以向教师提出申诉,由教师经过调查进行协调,或给予仲裁。

教师对小组作业考核的指标包括所提交文档的质量、过程文档的质量、解决问题的方法、以及提交作业的时间等。项目经理对小组成员的考核标准包括工作量、完成任务的质量等。

作业讲评:教师会对每份作业批注,明确指出哪部分完成得好,哪部分存在不足,应该如何改进。在下次课堂上,教师会讲评优秀作业和完成质量较差的作业,让学生知道差距,从实例中学习如何改进。

4 课程实践效果分析

“软件项目管理”课程经过近十轮的教学,课程实践也在不断改进中。但无论怎样改进,课程实践的效果很大程度上取决于学生的投入。一些小组为了完成作业经常一起讨论到凌晨一两点,他们在考核时也很认真,项目经理会认真根据每个小组成员的工作给予合理的成绩,这些学生反映通过课程实践真正体会了软件项目管理。而一些小组却可能每次作业委托一个同学完成,最后的成绩每个人都是平均成绩,这些学生大多数是工作繁忙的在职学生,他们由于工作繁忙难以投入大量时间与精力。

在课程结束时提交的课程实践案例分析中,学生收获最大的是对于沟通管理的理解,以及作为项目经理的问题解决能力的重要性的认识。当然,也实际训练了作业所要求掌握的知识与方法。

本课程实践没有要求学生提交项目的需求分析文档、设计文档、代码等,但要完成工作量估算,至少要完成需求分析。无论如何,没有要求学生实现软件系统,学生还不能完全体会到软件项目管理中的问题,尤其是与技术、开发相关的问题。所以,经过几次课程实践之后,本课程的课程实践与分析设计课程的作业结合起来,要求两门课程的项目小组一样,用同一个项目完成所有作业。这样,学生就可以在课程实践中完整体会软件项目管理。

参考文献:

[1] [美] 斯蒂夫・迈克康奈尔.快速软件开发[M].北京:电子工业出版社.

[2] [美] 斯蒂夫・迈克康奈尔..微软项目求生法则[M].北京:.机械工业出版社.

[3] [美] 爱德华・.尤登.死亡之旅超常规软件项目的开发实践[M].北京:电子工业出版社.

[4] [美] 罗伯特・格拉斯.软件开发的滑铁卢重大失控项目的经验与教训[M].北京:电子工业出版社.

收稿日期:2006-11-14

作者简介:康一梅,女,1994年中科院自动化所博士毕业,曾在北京金益康、北京亚讯数码、北京首创前锋等公司任研发中心总经理、技术总监等职。先后为中科院软件学院、北航软件学院讲授《软件项目管理》、《系统分析设计》等课程,现为北航软件学院嵌入式软件专业主任。

上一篇:多媒体技术课程案例教学法探索与实践 下一篇:基于BEEP协议的安全组件间的通信技术