Scrum in the Computer Science Classroom

According to the World Economic Forum’s (WEF) highly recommended meta-study “21st Century Skills”, schools need to prepare students to have a “future-based mindset” with skills such as collaboration, creativity, and adaptability.  Their answer: project-based learning (PBL). While PBL is gaining much speed in schools, how to manage projects can be a challenge: who is doing most of the work? who isn’t participating fully? how do you assess who has done what?

 In the computer science field, one means of project management is the Agile software development paradigm which, among other aspects, implements Scrum, a methodology for dividing work that needs to be completed into sprints, or stories.  In the Scrum environment, the team is considered capable of completing the task on their own. While the team is self-directed and is encouraged to problem-solve independently, there are two clearly defined roles that facilitate the process.  The first is the Scrum Master (in the classroom, this is the teacher), and the Product Owner (the students). The role of the Scrum master is to help the team when there is some impediment to their completion of a task, such as a bug or a design flaw.  The product owner’s/students job (in schools) is to keep the vision of the solution and manage the daily tasks. Scrum has recently been adopted in schools as a way to manage projects in both computer science and non-computer science classrooms.

Scrum meetings, which are short meetings occurring each day the class meets, consist of asking three essential questions:  What did you accomplish since the last scrum? What do you expect to accomplish before the next? and, Is anything blocking you (blocks are solved outside the scrum meeting)?  This level of accountability for students is essential for setting goals, prioritizing project tasks, assigning roles and jobs for team members, and keeping students on track for project completion. In 2016, The University of the Pacific conducted a study on using scrum in three computer science courses.  Their conclusion was that, overall, students found the above benefits to be true and helpful, while a few found the Scrum process to be cumbersome.

I have been using Scrum in my own classroom for several years now with great success.  Students know what they are expected to do and are held accountable to not only me, but to each other.  There are two components that stand out as key to the process. The first is student articulation and presentation of their project status.  This forces them to really pay attention to what they are doing, how their code is working, and gain an understanding of what they need to do next and with what they are struggling.  These are essential skills for their future as software programmers and engineers. The second aspect is teacher feedback. The daily feedback is essential for keeping them on track for successful project completion and for addressing problems quickly.  

While there are many ways to manage project based learning in an educational setting, it makes sense that in a software development course, learning to work in an environment that mimics the “real world” teaches valuable skills, in addition to preparing students for their future.

Works Cited

“Implementing Agile and Scrum in the Classroom.” GDC Vault,

“Scrum in the Classroom | Time for Change (Part 1).” Agile Transformation Experts and Agile Coach in New York City, Amsterdam, Miami and Boston,

Jimenez, Osvaldo, and Daniel Cliburn.  “Scrum in the Undergraduate Computer Science Curriculum.”  Journal of Computing Sciences in Colleges,  Volume 31, Issue 4, April 2016, pp. 108-114.

Amy Fox, 9 – 12 Representative