Agile Development and Version Control
Students implement scrum and sprint methodologies to manage a project, learning to use version control systems like Git.
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
- How do iterative development cycles improve the quality of the final product?
- What are the challenges of merging code from multiple developers simultaneously?
- 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
Why: Students need a foundational understanding of the general phases of software creation before learning specific agile methodologies.
Why: Students must be able to write and understand code to effectively manage and collaborate on projects using version control.
Key Vocabulary
| Scrum | An agile framework for managing complex projects, emphasizing teamwork, accountability, and iterative progress through sprints. |
| Sprint | A 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. |
| Backlog | A prioritized list of features, requirements, and tasks for a project, which is refined and updated throughout the development lifecycle. |
| Git | A distributed version control system used for tracking changes in source code during software development, enabling collaboration and history management. |
| Pull Request | A mechanism in Git platforms like GitHub or GitLab for proposing changes to a codebase, allowing for review and discussion before merging. |
| Merge Conflict | A 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 activitiesSimulation Game: One-Week Sprint Cycle
Divide students into teams of four with a predefined backlog of small coding tasks. Teams hold a sprint planning meeting to assign tasks, run daily 5-minute standups for three class periods, and close with a sprint review and retrospective. The retrospective uses the Start/Stop/Continue format to surface what the team would change in the next sprint.
Collaborative Problem-Solving: Git Branching and Merge Conflict Resolution
Pairs each clone a shared repository and independently make changes to the same file, then attempt to merge their branches. The resulting conflict is intentional , students must read the conflict markers, understand what each side changed, and resolve it manually before the merge can complete. Debrief covers strategies for minimizing future conflicts through communication and branch conventions.
Role Rotation: Scrum Team Roles
Over two class periods, each team member takes a different Scrum role: Product Owner (maintains and prioritizes the backlog), Scrum Master (facilitates standups and removes blockers), and Developer. After each rotation, students write a two-sentence reflection on how the role's perspective differs from the others, building empathy across team functions.
Think-Pair-Share: Commit Message Analysis
Share a real open-source project's Git commit history (appropriately selected for content). Students individually identify three commits with poor messages and three with excellent ones, noting what information the good ones preserve. Pairs discuss what a commit message policy for their team should include, then share recommendations with the class.
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
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.
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?'
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
What is a merge conflict in Git and how do you fix it
What is the difference between Git and GitHub
How does learning Agile through active classroom exercises prepare students for real software teams
More in Social Impacts and Professional Ethics
The Digital Divide and Global Equity
Students investigate how unequal access to technology creates social and economic disparities globally.
2 methodologies
Accessibility and Universal Design
Students evaluate software for universal design and accessibility standards, understanding the importance of inclusive technology.
2 methodologies
Automation, AI, and the Future of Work
Students analyze how robotics and AI are transforming the labor market, researching industries susceptible to automation.
2 methodologies
Intellectual Property, Copyright, and Patents
Students explore the legal frameworks of software licensing, including copyright, patents, and trade secrets.
2 methodologies
Open Source Software and Creative Commons
Students compare proprietary models with open-source movements and creative commons, understanding their impact on software development.
2 methodologies
Privacy, Surveillance, and Digital Rights
Students examine the balance between individual privacy, government surveillance, and corporate data collection in the digital age.
2 methodologies