基于Scrum敏捷开发模型的软件工程实践课程探索

来源 :大学教育 | 被引量 : 0次 | 上传用户:leeyongfan
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘 要]软件工程的工程教育属性决定了其对实践环节要求非常高。针对传统瀑布模型在软件工程实践课程教学中存在的问题,探索使用Scrum敏捷软件开发模型指导学生进行软件项目开发的方法,并根据实际情况在选题、分组、Scrum实践和考核等方面进行改革,有效提高了学生的学习积极性、软件开发能力和软件工程素质等。
  [关键词]软件工程实践 敏捷开发方法 Scrum
  [中图分类号] TP311.5-4;G642 [文献标识码] A [文章编号] 2095-3437(2015)04-0115-03
  软件工程的工程教育属性决定了其对实践环节要求非常高。学生只有真正地去开发一个具有一定规模的软件项目,才能够掌握并加深对软件工程基本理论知识的理解;才能通过具体工程实践熟练使用相应的工具完成需求分析、设计建模、协作开发、测试和评估各个环节,掌握主流的软件开发方法和软件项目管理方法,全面提高软件工程素质和能力,为将来从事软件项目的研发奠定基础。
  软件工程实践课程为软件工程专业学生提供了必不可少的实践环节。目前一般指导学生按瀑布模型进行开发,使学生能够体验到完整的软件开发过程。但学生通常没有项目开发经验,难以一步到位,过多的文档极大地增加了学生的工作量,组内分工不均,往往过多依赖少数优秀学生工作。在教学过程中不同程度地存在重结果轻过程、重技术轻管理、重个人能力轻团队作用的现象。[1]
  软件工程实践课程需要一种能够提高开发效率,适合小团队并能够充分调动团队成员积极性的实践方法。敏捷软件开发方法是一种以人为本、轻文档重产品的软件开发方法,与“非敏捷”方法相比,敏捷软件开发方法强调适度的过程管理、高效的沟通、快速的适应变化能力和紧凑自组织的团队等。Scrum作为敏捷开发方法的一种实践框架,提出了敏捷开发过程的预定义角色和最佳实践方案。笔者近几年在软件工程实践教学中指导学生应用Scrum模型进行项目开发,本文介绍这方面的探索经验。
  一、Scrum敏捷开发方法
  Scrum于1993年由Jeff Sutherland和Ken Schwaber创立,是一种迭代式增量敏捷软件开发框架,为敏捷开发实践提供了具体的行动纲领[2],目前Scrum已在Google、华为等大型软件公司得到广泛应用。如图1所示,Scrum模型需要将整个项目周期划分为多个Sprint(冲刺),Spritn为一个迭代过程,每个Sprint从整个项目的待开发产品Backlog(清单)中选出多个构成Sprint Backlog,迭代完成后则发布一个可交付的软件版本。
  项目参与人员在Scrum模型中被划分为3种角色:产品负责人、Scrum Master和开发团队。产品负责人是客户利益的代表,主要负责确定产品功能、合理安排功能实现优先级以及评估开发团队的工作成果等;Scrum Master作为项目经理同产品负责人紧密工作,确保开发过程按计划进行、排除遇到的困难、保证开发团队的工作效率和成员间的合作不受外界影响;开发团队包括设计人员、开发人员、测试人员等,具体负责按承诺及时完成开发任务,有高度的自我组织能力。
  在Scrum模型中,还包括3个制品和4种会议。[3]3个制品为:①产品Backlog,以用户故事形式表示的产品需求列表,由产品负责人维护具体条目,开发团队估算工作量;②Sprint Backlog,定义了一个Sprint的开发目标,在Sprint过程中不允许发生变更;③燃尽图,公开展示的图表用于记录任务完成情况,直观反映了Sprint的执行过程。4种会议为:①Sprint计划会议,产品负责人向开发团队介绍和分析产品Backlog,开发团队挑选出本次Sprint承诺要完成的条目;②每日站立会议,团队所有成员参加的短会,所有人站立开会,交流项目进展情况;③Sprint评审会议,开发团队向产品负责人和其他相关人员演示产品功能;④Sprint回顾会议,所有人员都要反思这个Sprint,为了进行持续的过程改进。
  二、软件工程实践教学
  由于Scrum模型适用于规模较小的团队,并具有可检查、适应性强、透明性好和学习成本低等优点,适合在软件工程实践课程中指导项目开发。[4] [5]然而,学校环境与软件公司环境有所不同,学生在能力和经验方面与公司员工的也存在差距,课程的主要任务还是培养和锻炼学生。因此,应结合实际教学情况对Scrum模型进行适当调整。
  (一)分组和选题
  首先根据自愿原则把学生分为多个项目组,每组5-7人,划分小组时需考虑沟通效率和学生开发能力等因素。Scrum模型要求团队成员之间密切沟通,而且项目开发更多是在课外时间进行,所以要求学生根据所在宿舍、选课等情况分组,确保小组内部交流顺畅。同时每组应至少安排1-2名软件开发经验较丰富的学生,以保证项目开发的顺利进行。分组后需按Scrum框架给组内学生分派角色,刚开始每个组内软件开发能力最强的学生往往被选为Scrum Master,此处需要纠正的是,Scrum Master更注重管理和协调能力。
  实践题目一般由教师提供,也鼓励项目组向教师推荐,但要征得教师的认可。实践选题的难度不宜太大,最好是开发团队熟悉并感兴趣的领域,课程的目标是体验软件开发的过程,并注重软件的完成质量,要求作品质量能达到与市场上的产品媲美的程度。已有的选题包括:二手交易、网上书店、社交平台、新闻聚合、手机游戏等。
  (二)Scrum实践
  我校软件工程实践课程安排两个月左右的时间,被划分成3个Sprint,每个Sprint约3周。这里介绍其中关键环节的实施情况。
  (1)制订Sprint计划
  项目组通过Sprint计划会议制订工作计划,确定本次Sprint的目标。产品负责人首先需要与客户代表(即教师)充分沟通后,创建整个产品的Backlog,然后在计划会议上向开发团队详细介绍每个条目,并说明完成的优先级。开发团队从产品Backlog挑选出本次Sprint承诺要完成的条目构成Sprint Backlog,并估算完成各个条目所需的工作量,将其分解成具体的开发任务,然后通过自愿领取的方式分派给开发团队的某个成员。由于课堂时间有限,选择一个准备充分的项目组在课上进行展示,其余组在课后完成,并向教师提交会议成果。   (2)每日站立会议
  每日站立会议由项目组的Scrum Master组织,教师旁听,仅在必要时给出意见。按Scrum框架要求,会上每个人必须解释和回答3个问题:昨天完成了什么?今天计划做什么?还需要哪些帮助?会议限定时间少于15分钟,Scrum Master会后根据进展情况相应更新燃尽图。由于每周仅一次课,要求项目组每周至少进行3次站立会议。
  (3)结对编程
  在校学生没有太多的软件开发经验,编程能力参差不齐,所以笔者在教学过程还引入极限编程中的结对编程方法。让两名学生构成一个开发小组,他们之间能够有效交流、相互学习和传递经验,提高整个团队的工作效率。
  (4)Sprint评审及回顾
  在一个Sprint完成后,由开发团队中的测试人员向产品负责人和客户代表(即教师)演示阶段成果,产品负责人和教师给出改进意见。Scrum Master汇报本次Sprint的完成情况,并展示燃尽图,教师进行点评。在Sprint回顾会议上,项目组通过投票的方式选出本次Sprint做得好的3个环节和下次Sprint迫切需要改进的3个问题。
  (5)文档撰写
  敏捷开发方法强调可用的软件重于完备的文档,但并不意味着不写文档。软件工程实践课程要求学生编写适量的文档,这也是培养软件工程能力的一方面。文档撰写按照Scrum的角色进行分配,Scrum Master负责软件开发计划和实施过程文档,产品负责人负责可行性论证报告和需求分析文档,开发团队负责软件设计文档、软件测试文档和安装手册等。
  (三)考核方式
  为使课程考核尽可能客观、公正,在课程验收阶段,每个项目组都要进行公开演示,其余项目组和教师一起对该组进行量化打分,评价内容包括难度、质量、创新和界面四个方面。教员结合演示情况和文档对项目进行综合评价,小组互评占80%,教员评价占20%。其次,Scrum Master要给出组内每个成员的具体业绩系数,然后在项目组总成绩的基础上再确定每个成员的最终成绩。
  三、教学效果
  我们已经在2个学期的软件工程实践课程中使用了Scrum模型,在激发学生学习兴趣、提高软件开发质量等方面取得了较好的效果,主要体现在以下几个方面。
  (1)激发了学生的创造力和主动性。在实践过程中,开发团队是通过自愿领取的方式分派开发任务,每日例会和燃尽图将小组成员的开发进度公开展示出来。后进学生体会到项目压力,努力上进,使项目组内部形成一种良性竞争机制,从而使学生更积极主动地参与项目开发。
  (2)提高了学生的软件工程素质。将项目开发过程拆分为多个Sprint,最终形成一个软件产品,这符合软件开发的基本规律,而且这种“计划、实施、评价、改进”的迭代开发体验对于经验不多的软件工程专业学生来说帮助非常大。一般而言,第一个Sprint效果不会太好,到第三个Sprint基本上每个项目组都有很大改进。
  (3)学生的软件开发能力得到明显增强。在敏捷开发框架下,学生只编写一些重要文档,能够将精力重点放在编码和调试上。通过结对编程,基础差的学生可以向好的学生学习(实践证明相互学习的效果很好),也提供更好的设计质量和代码质量,改善了工作纪律性,。
  (4)评价更加客观公正。由于Scrum透明性好的特点,每位学生的工作完成情况在实践过程中一目了然,所以对学生的评价相对是比较容易的。项目组之间互评的机制也保证了评价的公正性。
  但目前也还存在一些不足,主要体现在:计划制订不尽合理,项目组成员之间的交流还不够积极,课后工作落实不到位,文档作用体现不明显,部分学生因为基础差、自觉性差等原因参与度不高。这些都是我们下一步重点解决的问题。
  四、结语
  Scrum敏捷开发模型具有可检查、适应性强和学习成本低等优点,适用于小规模的软件开发团队。在软件工程实践课程教学中,我们尝试用改进的Scrum模型指导学生进行软件项目开发,能够有效激发学生的积极性和主动性,使其参与开发互动,从而了解软件项目开发过程,提高软件开发能力和软件工程素质,项目完成质量和教学效果有明显改进。
  [ 注 释 ]
  [1] 曾红卫,刘悦,刘炜.软件工程实践教学方法探索[J].计算机工程与科学,2011(A1):15-18.
  [2] Scrum(software development)[J / OL].http://en.wikipedia.org / wiki / Scrum_(software_development), lasted visited ,2014
  -10-20.
  [3] Henrik Kniberg著.李剑译.硝烟中的Scrum和XP——我们如何实施Scrum[M].北京:清华大学出版社.http://infoq.com / cn / minibooks / scrum-xp-from-the-trenches,lasted visited 2014-10-20.
  [4] 林晓宇.基于Scrum敏捷方法的软件工程实践教学探索[J].电脑知识与技术,2011(19):4762-4765.
  [5] 徐海涛,吴昊.基于Scrum和极限编程结合的软件项目实践课程教学改革与实践[J].福建电脑,2013(4):44-46.
  [责任编辑:覃侣冰]
其他文献
[摘 要]学风建设是提高大学办学声誉、核心竞争力和人才培养质量的重要保障。本文在对河套学院在校生学习态度、学习目标、学习纪律等方面进行问卷调查的基础上,深入分析其学风现状及存在问题的原因,提出加强学风建设的建议,对营造良好的学习氛围具有重要指导作用。  [关键词]大学生 学风状况 学风建设  [中图分类号] G640 [文献标识码] A [文章编号] 2095-3437(2015)04-0106-
期刊
[摘 要]从事物流工作的人认为现代物流最需要的是专业类人才。在物流工程专业教学过程中,要引导、鼓励学生参与一些专业外的培训与实践,考取一些证照,这不但能拓宽学生的视野,也能培养学生的沟通能力和吃苦耐劳精神;鼓励学生参与校内外实践活动,如公关策划大赛、物流设计大赛、计算机实践大赛、教师科研等,锻炼学生的问题分析、归纳与解决能力,文字表达能力,团队协同意识与沟通能力,提升他们的综合素养。  [关键词]
期刊
[摘 要]热带地区具有热量充足、气候复杂和生物多样等特点,因此热带农业的发展和学科建设也具有鲜明的地域特色。以海南省级精品课程“观赏花卉学”为例,可以对学科发展现状、教学内容与方法、教材和教学网站建设以及实践教学基地等方面进行探索。实践结果表明:热带特色农业学科建设应建立起适合本地区的教学体系和教材,教学内容应“立足热带,兼顾其他地区”;同时充分利用热带地区的气候优势开展户外实践,结合多媒体网站学
期刊
[摘 要]正确认识高校青年教师群体的思想动态、工作状况及生活现状,并不断改进相关工作,是促进青年教师健康发展的关键所在。通过对北京化工大学青年教师思想政治、职业道德、教学、科研和生活状况等方面的调查和分析,可以较深入地解读和剖析青年教师的思想政治状况及问题,为进一步加强和改进青年教师工作提供依据。  [关键词]青年教师 思想政治 调查研究  [中图分类号] G641 [文献标识码] A [文章编号
期刊
[摘 要]大学生实习实践是高校教育的重要环节,对于提高工科大学生动手能力、专业技能、交际能力等都起到了重要作用。如何做好大学生顶岗实习的指导工作成为高校高度重视的一个话题。针对目前工科大学生实习过程中出现的行动意识薄弱、定位不准确等问题,首先要引导学生转变观念、提高认识,其次是加强队伍建设、发挥作用,再次是真诚关怀、抓好细节,同时加强校企的沟通。只有各方面形成合力,才能提高大学生顶岗实习的实际效果
期刊
[摘 要]为充分发挥实验室的教学平台作用,更好地实现徐州工程学院应用型人才培养的目标,对我校给排水科学与工程专业实验室目前存在的部分实验仪器混杂、区域功能不明确、实验室专职教师匮乏、实验室利用率低等问题进行分析并提出了相应的对策,以期早日将该实验室建设成为功能明确的开放型实验室,使其成为培养学生实践能力与创新能力的良好平台。  [关键词]给排水科学与工程 实验室 教学 应用型人才  [中图分类号]
期刊
[摘 要]生态学在解决当今社会重大问题上具有很强的科学先导性,正在逐渐成为生态建设和生态文明建设乃至实现人类可持续发展的导航学科。为提高大学生的实践能力及综合素质,以广西大学林学院生态学专业为例,提出结合区域生态环境特点的实践教学方式,通过整合和优化实践教学体系、导师制指导下的创新实践活动、结合科研生产项目开展毕业实习、开展专题社会实践活动等实践教学培养模式,培养和提高学生的基本实验技能、解决实际
期刊
[摘 要]土木工程专业是当前最受欢迎的专业之一,也是就业市场需求量最大的专业之一。做好土木工程专业企业生产实习工作是建设土木工程专业,培养应用型人才的关键。中国矿业大学银川学院探索出了一种自主分散实习模式,对土木工程专业实习有一定的参考价值。  [关键词]土木工程专业 企业生产实习 自主分散实习  [中图分类号] G642.44 [文献标识码] A [文章编号] 2095-3437(2015)04
期刊
[摘 要]建设创新型国家和创新型大学,对材料类专业人才培养提出了更高要求。提升高等工程教育质量是培养创新型工程技术人员的基础。工程教育专业认证是促进高校人才培养质量提升的重要保证。基于“以学生为中心”、“目标导向”和“持续改进”的工程教育认证理念,以“信息技术与电子材料”课程为载体,探索该课程持续改进中的教学举措,可以阐述工程教育认证背景下,在材料学科专业课双语教学环节中实践工程教育认证理念的改革
期刊
[摘 要]为提高理工科大学生学业水平,营造高校良好的学术氛围,在借鉴国内外高校经验的基础上,笔者及其团队针对高校理工科传统困难课程开设补充教学(Supplemental Instruction)课程。在实践过程中通过数据分析发现,以补充教学为平台的理工科大学生学业辅导体系,对于提升大学生的学业成绩、学习技巧和综合能力有着显著的效果。  [关键词]补充教学 大学生 学业辅导  [中图分类号] G64
期刊