Scrum and Agile
Scrum and Agile
319
the role of the Scrum Master with all sprint planning and review support Agile development (GitHub, online project management
meetings taking place during the class time in the second half of tools, etc.), and following through with iterative development, re-
the semester. planning and re-estimation as needed, until the final product is
ready for the final presentation to the client at the end of the term.
As a part of a required formal senior Software Engineering Crucial to the success of the course are weekly deliverables and
course, all students in our program are introduced to Scrum in a 3- weekly meetings with the team TA—these keep the projects on
hour long LEGO-based simulation [5], which prepares them for track.
an agile course project that focuses on short iterations with
evolving requirements. The third course in the sequence is a fourth-year course, in which
the student teams participate in a large open-source project hosted
2.3 Chun Wai Liew on GitHub. If there is enough interest, we can elaborate on this
At Lafayette College students take a second year course in which course and the use of Agile methods in it during the panel.
we teach the fundamentals of software engineering and students
learn about the basic tools and techniques involved in developing 3. CHALLENGES
group projects [3]. This course serves two purposes in our The panelists are also planning to have an open discussion
curriculum. Firstly, it teaches the students about the software focusing on lessons learned, challenges, and their possible
development tools that they will need in the upper level courses -- solutions:
software repositories, time management/planning/scheduling
tools, weekly status and bug reporting tools. Secondly, they learn Why should we teach Scrum/Agile?
the basics of the agile process - (1) repeated short iterations, (2) What are the biggest obstacles to adopting Scrum/Agile
unit testing from the beginning, (3) interleaving of specification in teaching Software Engineering?
development, prototyping and design.
How to fit Scrum process into a class schedule? (daily
For our students, this is (a) their first group development project, meetings are usually impossible)
and (b) their first "medium-sized" project. They learn how to keep
the projects on track (most of the time) and also how to coordinate Who plays the roles of the Scrum Master and Product
their activities as a group. This experience allows us to have richer Owner?
projects in the upper level courses and also to offer a capstone
software engineering course with external clients. Are two courses necessary to introduce Scrum/Agile?
Can the approach work if the students only have one
We also have a second software engineering course (the capstone) experience? What carries over from the first course to
where students apply the scrum/agile methodology that they have the second?
learned on a project with external (to the college) clients.
What aspects of the Scrum/Agile process are most
2.4 Anya Tafliovich difficult for the students to master?
At the University of Toronto Scarborough, we have a sequence of Is there a difference in teaching Scrum/Agile to
three courses that involve aspects of Agile software development, first/second year students as opposed to fourth year
to various degrees. The first in the sequence is a second-year students?
course described above. The students who complete this course
have had experience with a 6-7 weeks long team project, in which 4. REFERENCES
they follow a fairly rigidly prescribed Scrum-like simplified [1] Campbell, J. and Tafliovich, A. 2015. An experience report:
development process. They are familiar with the ideas of source using mobile development to teach software design. In
control (subversion), iterative development (prescribed project Proceedings of the 46th ACM Technical Symposium on
phases), backlogs (feature lists for each phase, prescribed by the Computer Science Education (SIGCSE '15). 506-511.
instructor), and the different kinds of meetings involved.
[2] Keith, C. 2010. Agile Game Development with Scrum.
The second course in the sequence is a third-year Introduction to Addison Wesley.
Software Engineering course. In this course the students are
[3] Liew, C. W. 2005. Teaching software development skills
introduced (in lecture) to all aspects of Agile development; we
early in the curriculum through software engineering. In
look at Scrum and XP in detail. The course has a 10-week long
Proceedings of the 10th Annual SIGCSE Conference on
team project, in which the students have hands-on practice with
Innovation and Technology in Computer Science Education
all aspects of Agile development. We do not follow either Scrum
(ITiCSE '05). ACM, New York, NY, USA, 133-137.
or XP religiously, as we found this to be counter-productive in a
course setting. Instead, we have developed an Agile hybrid [4] Manifesto for Agile Software Development. 2001.
process suitable for third-year computer science student teams, in http://www.agilemanifesto.org/
a large class (we expect over 20 teams in the coming term). We [5] Paasivaara, M., Heikkilä, V., Lassenius, C. and Toivola, T.
bring in a real client, with a real need for software. The client is 2014. Teaching students scrum using LEGO blocks.
non-technical (a member of a different department), which gives In Companion Proceedings of the 36th International
the students practice with the challenges of requirements Conference on Software Engineering (ICSE ‘14). ACM, 382-
gathering. The students practice writing user stories, producing 391.
release plans and iteration plans, using state-of-the-art tools that
320