Skip to content
Agile Development and Version Control
Computer Science · 12th Grade · Social Impacts and Professional Ethics · Weeks 37-45

Agile Development and Version Control

Students implement scrum and sprint methodologies to manage a project, learning to use version control systems like Git.

TL;DR:Active learning works for Agile and version control because both concepts involve hands-on practice with real tools and team dynamics. Students must experience the tension of merging code conflicts or the pressure of a sprint deadline to truly grasp why these practices exist, making abstract workflows concrete and memorable.

Common Core State StandardsCSTA: 3B-AP-18CSTA: 3B-AP-20

About This Topic

Agile development and version control are the two organizational pillars of modern professional software work, and this topic gives 12th-grade students hands-on experience with both. Under CSTA 3B-AP-18 and 3B-AP-20, students are expected to use systematic processes to manage software projects and collaborate effectively , this unit makes those standards concrete by having students actually run a sprint.

Scrum introduces students to structured iteration: a backlog of prioritized tasks, time-boxed sprints (typically one to two weeks), daily standups, sprint reviews, and retrospectives. These practices exist because software development is inherently uncertain, and short feedback loops catch problems before they compound. Git and platforms like GitHub add a technical dimension: branching strategies, pull requests, merge conflict resolution, and commit history as a record of decision-making.

Active learning is natural for this topic because Agile itself is a collaborative practice. Students who run actual standups, assign story points, manage a real backlog, and resolve genuine merge conflicts learn that version control and sprint management are not bureaucratic overhead but tools that make collaboration tractable at scale.

Key Questions

  1. How do iterative development cycles improve the quality of the final product?
  2. What are the challenges of merging code from multiple developers simultaneously?
  3. Explain how team roles can be assigned to maximize the strengths of each member in an agile environment.

Learning Objectives

  • Analyze the impact of iterative development cycles on software quality by comparing initial prototypes to final products.
  • Evaluate the effectiveness of different branching strategies in Git for managing concurrent code development from multiple team members.
  • Design a project backlog and sprint plan that assigns team roles based on individual strengths within an agile framework.
  • Demonstrate the process of resolving merge conflicts in Git, explaining the steps taken to integrate disparate code changes.
  • Critique the outcomes of a sprint retrospective, identifying specific areas for improvement in team collaboration and process.

Before You Start

Introduction to Software Development Lifecycles

Why: Students need a foundational understanding of the general phases of software creation before learning specific agile methodologies.

Basic Programming Concepts and Syntax

Why: Students must be able to write and understand code to effectively manage and collaborate on projects using version control.

Key Vocabulary

ScrumAn agile framework for managing complex projects, emphasizing teamwork, accountability, and iterative progress through sprints.
SprintA fixed, short period (typically 1-4 weeks) during which a specific set of work is completed and made ready for review in an agile project.
BacklogA prioritized list of features, requirements, and tasks for a project, which is refined and updated throughout the development lifecycle.
GitA distributed version control system used for tracking changes in source code during software development, enabling collaboration and history management.
Pull RequestA mechanism in Git platforms like GitHub or GitLab for proposing changes to a codebase, allowing for review and discussion before merging.
Merge ConflictA situation that occurs when Git cannot automatically combine changes from different branches, requiring manual intervention to resolve discrepancies.

Watch Out for These Misconceptions

Common MisconceptionAgile means no planning , you just build and figure it out as you go.

What to Teach Instead

Agile reduces upfront planning in favor of continuous planning, but it requires more discipline than Waterfall in many respects: every sprint needs a clear goal, every task needs to be estimated and committed to, and every retrospective needs honest assessment. The structure is lighter but still rigorous.

Common MisconceptionGit automatically handles merging code from multiple developers , you just push and it works.

What to Teach Instead

Git can auto-merge changes to different parts of the same file, but when two developers edit the same lines, a merge conflict requires manual resolution. Hands-on conflict resolution exercises make this concrete: students who have resolved a real conflict understand why branch conventions and frequent integration matter.

Common MisconceptionVersion control is only necessary for large teams. Small teams or solo developers can just save their files.

What to Teach Instead

Version control is valuable even for individual developers: it provides a complete history of changes, makes it easy to revert mistakes, and enables branching to experiment safely. The habit of committing with meaningful messages is a professional skill that saves significant time when debugging or onboarding collaborators later.

Active Learning Ideas

See all activities

Real-World Connections

  • Software development teams at companies like Google and Microsoft use Scrum and Git daily to build and update complex applications such as operating systems and productivity suites.
  • Game development studios, from large corporations like Nintendo to independent studios, employ agile methodologies and version control to manage the iterative creation of video games, coordinating hundreds of artists, designers, and programmers.
  • Open-source projects, such as the Linux kernel or the Python programming language, rely heavily on Git and collaborative development workflows to allow contributions from a global community of developers.

Assessment Ideas

Quick Check

Present students with a scenario where two developers have made conflicting changes to the same file in Git. Ask them to identify the type of conflict and outline the first three steps they would take to resolve it.

Discussion Prompt

Facilitate a class discussion using the prompt: 'Imagine your team just completed a sprint. What are the key questions you should ask during the sprint retrospective to ensure continuous improvement, and why are these questions important for team health?'

Peer Assessment

After students have submitted their Git commits for a sprint task, have them review a classmate's commit history. Ask them to assess: Is the commit message clear and descriptive? Are there too many changes in one commit? Provide one specific suggestion for improvement.

Frequently Asked Questions

What is Scrum and how does it work in a software team
Scrum is an Agile framework that organizes development into time-boxed iterations called sprints, typically one to four weeks long. Each sprint begins with planning (selecting tasks from the backlog), includes daily standups (brief status syncs), and ends with a review (demonstrating completed work) and retrospective (examining the team's process). A Scrum Master facilitates the process; a Product Owner maintains the backlog.
What is a merge conflict in Git and how do you fix it
A merge conflict occurs when two branches contain changes to the same lines of a file and Git cannot automatically decide which version to keep. Git marks the conflict in the file with special markers showing both versions. The developer must manually edit the file to choose one version or combine them, then stage the resolved file and complete the merge with a commit.
What is the difference between Git and GitHub
Git is the distributed version control system itself , the software that tracks file history, manages branches, and enables merging. GitHub is a cloud-based platform that hosts Git repositories and adds collaboration features: pull requests, code review tools, issue tracking, and CI/CD integrations. Other platforms like GitLab and Bitbucket offer similar features on top of Git.
How does learning Agile through active classroom exercises prepare students for real software teams
Professional Agile teams learn Scrum by doing it , the practices only become intuitive through repetition. Running actual sprint ceremonies in class (standups, reviews, retrospectives) builds the collaboration and communication habits that make Agile work. Students who have lived a sprint cycle understand why the ceremonies exist, not just what they are called.
Edited by Adriana Perusin, Editor-in-Chief, Flip Education