我会如此迅速地抛弃瀑布。
尽管对于实际构建软件系统而言,这是一个有缺陷的模型,但在生命周期的每个阶段提供良好实践指导的教学模型也不错。无论您应用于项目的过程模型如何,您仍将执行需求工程,系统架构和设计,实施,测试,发布和维护(包括重构和增强)。区别在于这些阶段的组织和执行方式,但是所有活动仍在进行。
我认为在项目中间从瀑布到Scrum的过渡不是最好的主意。Scrum成功的关键是一个长期运行的项目。前三到五个冲刺是团队以一定的速度适应,学习过程并进行团队发展。尽管您正在完成这些动作,但那时还不是真的Scrum。此外,尝试创建专门基于Scrum的课程可能不是一个好主意,因为Scrum并不是万灵丹–最好教最佳实践,而不是单一的方法。在员工队伍中,并非所有项目都将使用Scrum。实际上,在某些环境中,Scrum会对项目的成功有害。
您已经在学术环境中发现了Scrum的问题,其中有些很难适当解决。
在您的不兼容列表中,没有问题是估算很困难。是的。但是,要更好地进行估算的唯一方法就是估算并比较实际值与估算值。学生应及早使用各种方式(故事点,代码的源代码行,小时,页面,工时)来估计规模,时间和精力,以便他们在毕业和进入劳动力市场后有更多的准备。
既可以从教授的角度又可以从学生的角度解决文件需求。精益方法告诉我们,没有为团队或客户增加价值的文档是浪费的(在时间和成本方面)。但是,出于各种目的,需要一些文档来实现学生和教授(客户/客户)的某些目标。总体而言,这听起来像是一个机会来教授过程定制和定量项目管理(即使在敏捷方法中也有作用)。
关于Scrum会议和日程安排,我想到了两个想法。首先,这表明Scrum可能不是在学术环境中使用的最佳过程。对于软件项目,没有唯一的“最佳流程模型”,其中包括进度,人员配备,可见性和开发团队的经验(其中包括其他因素)。
总体而言,我建议您在单一方法上强调良好做法,流程定制和流程改进。这将使您对参加课程的每个人都最有效,并使他们了解各种过程方法,并了解在给定条件下的最佳实践。
由于您正在努力构建大学课程,因此,我将对我所在大学的软件工程课程如何融合在一起进行高层次的概述。
这是一个介绍性的软件工程,以瀑布模型进行了整个项目,每个阶段的讲座对应于进行该阶段活动的不同方式。团队以相同的速度完成了各个阶段。对于那些没有团队开发软件经验的人来说,拥有明确定义的边界非常适合教学模型。在整个课程中,参考了其他方法,包括各种敏捷方法(Scrum,XP),Rational Unified Process,螺旋模型-关于它们的优缺点。
在活动方面,有专门的课程来讨论需求工程,架构和设计(两门课程-一门课程侧重于使用面向对象方法的详细设计,一门课程侧重于系统体系结构),许多课程着眼于设计和实现各种系统类别(实时和嵌入式系统,企业系统,并发系统,分布式系统等)以及软件测试。
还有三门专门针对软件过程的课程。软件工程过程和项目管理,专注于针对多种方法来管理软件项目的最佳实践。第二个过程课程讲授测量,度量和过程改进(强调CMMI,六个Sigma和精益)。最后,有一门过程课程使用使用Scrum方法进行的项目来教授敏捷软件开发(讨论了Scrum,Extreme Programming,Crystal,DSDM)。
顶点项目是为赞助公司执行的一个为期四分之二的项目,完全由学生项目团队负责,在赞助商和教职顾问的指导下进行。在发起人规定的任何限制范围内,如何进行项目的各个方面都取决于学生。唯一的大学规定的截止日期是项目中期(10周)的临时演示,最后的最终演示,以及临近结束时的四方海报演示。其他一切都取决于赞助商和团队的同意。