Agile Project Management

🏃‍♂️Agile Project Management Unit 1 – Intro to Agile Project Management

Agile project management revolutionizes software development by prioritizing flexibility, collaboration, and rapid delivery. It emphasizes iterative progress, customer satisfaction, and adaptability to change, contrasting sharply with traditional linear approaches. Key principles include continuous delivery, welcoming changing requirements, and fostering close teamwork. Agile frameworks like Scrum and Kanban, along with specific roles and planning techniques, help teams implement these values effectively in their projects.

What's Agile All About?

  • Agile is an iterative approach to project management and software development that helps teams deliver value to customers faster and with fewer headaches
  • Focuses on delivering working software incrementally rather than all at once at the end of a project
  • Emphasizes collaboration, flexibility, and rapid response to change over following a rigid, predefined plan
  • Prioritizes individuals and interactions, working software, customer collaboration, and responding to change
  • Aims to deliver high-quality software that meets customer needs through adaptive planning, early delivery, and continuous improvement
  • Encourages face-to-face communication and collaboration among team members and stakeholders
  • Promotes sustainable development practices that enable teams to maintain a constant pace indefinitely

Key Agile Principles and Values

  • Customer satisfaction through early and continuous delivery of valuable software is a top priority
  • Welcome changing requirements, even late in development, and harness change for the customer's competitive advantage
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale
  • Business people and developers must work together daily throughout the project
  • Build projects around motivated individuals, give them the environment and support they need, and trust them to get the job done
  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation
  • Working software is the primary measure of progress
  • Agile processes promote sustainable development, enabling sponsors, developers, and users to maintain a constant pace indefinitely
  • Continuous attention to technical excellence and good design enhances agility
  • Simplicity, the art of maximizing the amount of work not done, is essential
  • The best architectures, requirements, and designs emerge from self-organizing teams
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly

Agile vs Traditional Project Management

  • Agile is iterative and incremental, while traditional project management (waterfall) is linear and sequential
  • Agile emphasizes flexibility and adaptability, while traditional project management follows a fixed plan
  • Agile delivers working software in short iterations (sprints), while traditional project management delivers the entire project at the end
  • Agile involves close collaboration between the development team and the customer, while traditional project management often keeps them separate
  • Agile embraces change and allows for requirements to evolve, while traditional project management aims to avoid changes to the initial plan
  • Agile focuses on delivering value to the customer, while traditional project management focuses on delivering the project on time, within budget, and to the original specifications
  • Agile relies on self-organizing, cross-functional teams, while traditional project management has a hierarchical structure with defined roles and responsibilities
  • Scrum
    • Iterative and incremental framework for managing complex projects
    • Consists of roles (Product Owner, Scrum Master, Development Team), events (Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective), and artifacts (Product Backlog, Sprint Backlog, Increment)
  • Kanban
    • Visual system for managing work as it moves through a process
    • Focuses on visualizing workflow, limiting work in progress, managing flow, making process policies explicit, and continuously improving
  • Extreme Programming (XP)
    • Emphasizes frequent releases, continuous integration, pair programming, test-driven development, and close customer collaboration
  • Lean Software Development
    • Applies lean manufacturing principles to software development
    • Focuses on eliminating waste, amplifying learning, deciding as late as possible, delivering as fast as possible, empowering the team, building integrity, and seeing the whole
  • Crystal
    • Family of lightweight, adaptable methodologies that emphasize people, communication, and flexibility
    • Includes Crystal Clear, Crystal Yellow, Crystal Orange, and others, based on project size and criticality

Roles in Agile Teams

  • Product Owner
    • Represents the stakeholders and is responsible for maximizing the value of the product
    • Defines and prioritizes the Product Backlog, ensures that the team understands the items in the backlog, and makes the final decision on what gets built
  • Scrum Master
    • Facilitates the Scrum process and helps the team adhere to Scrum theory, practices, and rules
    • Removes impediments to the team's progress, coaches the team on self-organization and cross-functionality, and shields the team from external interferences
  • Development Team
    • Consists of professionals who do the work of delivering a potentially releasable Increment of "Done" product at the end of each Sprint
    • Self-organizing, cross-functional, and accountable for delivering the product
  • Stakeholders
    • Individuals or groups who have an interest in the project's outcome (customers, users, sponsors, executives, etc.)
    • Provide input, feedback, and support throughout the project

Agile Planning and Estimation Techniques

  • User Stories
    • Short, simple descriptions of a feature told from the perspective of the person who desires the new capability, usually a user or customer
    • Typically follow the format: "As a [type of user], I want [some goal] so that [some reason]"
  • Story Points
    • Relative unit of measure used to estimate the overall effort required to fully implement a product backlog item or any other piece of work
    • Assigned based on factors such as complexity, uncertainty, and effort, rather than actual time
  • Planning Poker
    • Consensus-based estimation technique used to estimate the relative size of user stories or tasks
    • Each team member has a deck of cards with values (usually Fibonacci sequence) and simultaneously selects a card representing their estimate for a given item
  • Velocity
    • Measure of the amount of work a team can complete in a single sprint, usually calculated in story points
    • Used to predict how much work the team can complete in future sprints and to plan accordingly
  • Release Planning
    • Process of creating a high-level plan that defines which features will be delivered in each release and when those releases will occur
    • Considers factors such as business priorities, dependencies, team capacity, and technical constraints

Agile Meetings and Ceremonies

  • Sprint Planning
    • Meeting at the beginning of each sprint where the team collaborates to define the sprint goal and select items from the product backlog to work on during the sprint
  • Daily Scrum (Stand-up)
    • Short, time-boxed meeting (usually 15 minutes) held every day at the same time and place
    • Each team member answers three questions: What did I do yesterday? What will I do today? Are there any impediments in my way?
  • Sprint Review
    • Meeting at the end of each sprint where the team demonstrates the work they have completed to stakeholders and gathers feedback
  • Sprint Retrospective
    • Meeting at the end of each sprint where the team reflects on their process, identifies areas for improvement, and creates a plan to implement those improvements in the next sprint
  • Backlog Refinement (Grooming)
    • Ongoing process where the team collaborates with the Product Owner to review, refine, and prioritize items in the product backlog
    • Helps ensure that the backlog remains up-to-date, relevant, and understood by all team members

Tools and Software for Agile Projects

  • Jira
    • Popular issue tracking and project management tool that supports agile methodologies like Scrum and Kanban
    • Provides features for creating and managing user stories, sprints, backlogs, and reports
  • Trello
    • Visual collaboration tool that uses boards, lists, and cards to organize and prioritize projects
    • Suitable for teams using Kanban or other agile methodologies
  • Asana
    • Web and mobile application designed to help teams organize, track, and manage their work
    • Supports agile practices through features like task lists, Kanban boards, and custom fields
  • Slack
    • Cloud-based team collaboration and communication platform
    • Integrates with many agile project management tools and supports real-time messaging, file sharing, and video conferencing
  • GitHub
    • Web-based version control and collaboration platform for software development
    • Supports agile practices through features like issue tracking, pull requests, and continuous integration/continuous deployment (CI/CD)
  • Zoom
    • Video conferencing and online meeting platform
    • Facilitates remote collaboration and communication for agile teams, especially during events like daily stand-ups, sprint planning, and retrospectives


© 2024 Fiveable Inc. All rights reserved.
AP® and SAT® are trademarks registered by the College Board, which is not affiliated with, and does not endorse this website.

© 2024 Fiveable Inc. All rights reserved.
AP® and SAT® are trademarks registered by the College Board, which is not affiliated with, and does not endorse this website.