Class Notes: Introduction to Agile Methodologies
Date: May 13, 2025
Instructor: Dr. Priya Sharma
1. Overview of Agile Methodologies
Agile methodologies are a set of principles and practices for software
development that emphasize flexibility, collaboration, and customer
satisfaction. Agile approaches prioritize iterative development, where
requirements and solutions evolve through the collaborative effort of self-
organizing and cross-functional teams.
2. Key Principles of Agile
Customer Collaboration: Engage with customers frequently to gather
feedback and ensure the product meets their needs.
Iterative Development: Develop the product in small, incremental cycles,
allowing for continuous improvement and adaptation.
Flexibility: Be open to changing requirements, even late in the
development process, to better meet customer needs.
Self-Organizing Teams: Empower teams to make decisions and manage
their own work, fostering creativity and accountability.
Continuous Improvement: Regularly reflect on processes and practices to
identify areas for improvement and implement changes.
3. Popular Agile Frameworks
Scrum: A framework that uses fixed-length iterations called sprints,
typically lasting 2-4 weeks. Key roles include the Product Owner, Scrum
Master, and Development Team. Scrum ceremonies include Sprint
Planning, Daily Stand-ups, Sprint Reviews, and Retrospectives.
Kanban: A visual workflow management method that uses a Kanban board
to track work items through various stages. It emphasizes continuous
delivery and limiting work in progress (WIP) to improve efficiency.
Lean: Focuses on delivering value to the customer by eliminating waste
and optimizing processes. Lean principles include value stream mapping,
continuous improvement (Kaizen), and just-in-time delivery.
4. Agile Artifacts
Product Backlog: A prioritized list of features, enhancements, and bug
fixes that need to be addressed in the product.
Sprint Backlog: A subset of the product backlog items selected for
development during a sprint.
Increment: The sum of all completed product backlog items at the end of
a sprint, representing a potentially shippable product.
5. Agile Ceremonies
Sprint Planning: A meeting where the team selects product backlog items
to work on during the upcoming sprint and defines the sprint goal.
Daily Stand-up: A short, daily meeting where team members share
updates on their progress, plans for the day, and any obstacles they are
facing.
Sprint Review: A meeting at the end of the sprint where the team
demonstrates the completed work to stakeholders and gathers feedback.
Sprint Retrospective: A meeting where the team reflects on the sprint and
identifies areas for improvement in their processes and practices.
6. Case Study: Implementing Agile in a Software Development Team
Background: A software development team at a mid-sized tech company
decided to adopt Scrum to improve their product delivery process.
Challenges: The team faced challenges such as resistance to change, lack
of experience with agile practices, and difficulty in breaking down large
tasks into manageable user stories.
Solutions: The team received training on Scrum principles, held regular
retrospectives to address issues, and gradually improved their ability to
estimate and plan work.
Outcomes: The team experienced increased collaboration, faster delivery
of features, and higher customer satisfaction.
7. Q&A Session
Q: How do you handle changing requirements in an agile project?
A: Embrace change by maintaining a flexible product backlog and
regularly engaging with customers to gather feedback and adjust
priorities.
Q: What are some common pitfalls when adopting agile methodologies?
A: Common pitfalls include lack of proper training, inadequate stakeholder
involvement, and failure to adapt processes to the team's specific context.
Homework:
Read Chapter 2 of "Agile Estimating and Planning" by Mike Cohn.
Prepare a brief report on the benefits and challenges of using Kanban in a
software development team.
Next Class:
Topic: Advanced Scrum Practices
Date: May 20, 2025