Skip to main content

Agile Project Management

Overview

  • History of Agile

  • Introduction to Scrum

  • Core roles that make up a Scrum team

  • Best practices for Scrum

Agile Introduction

Agile emphasizes on the following principles:

  • Being able to move quickly and easily

  • Flexibility and the willingness and ability to change and adapt

It embodies "agility" and is based on the Agile Manifesto.

The Manifesto is a collection of four values and 12 principles that define the mindset that all Agile teams should adopt.

Agile vs Waterfall

  • Agile was created in response to the strict linear process of Waterfall.

  • Agile embraces the reality that the world, customer markets, and users are uncertain and unpredictable.

  • Agile aims to get customer feedback more quickly.

  • Working with an agile mindset means always finding ways to work more efficiently by focusing on streamlining the process without reducing product quality or value.

  • Agile aims to reduce waste.

Four values of the Agile Manifesto

  • Individuals and interactions over processes and tools

  • Working software over documentation

  • Customer collaboration over contract negotiation

  • Responding to change over following a plan

12 principles of the Agile Manifesto

The 12 principles are categorized into 4 themes, which are:

  • Value Delivery: Delivering the work as quickly as possible in order to get feedback and mitigate time risk.

    • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

    • Deliver working software frequently, from couple of weeks to a couple of months, with a preference for the shorter timescale.

    • Working software is the primary measure of progress.

    • Simplicity - the art of maximizing the amount of work not done - is essential.

    • Continuous attention to technical excellence and good design enhances agility.

  • Business collaboration: Collaborating with your customers helps the team get critical business information immediately, allowing them to adjust and adapt to any new information instantly.

    • Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

    • Business people and developers must work together daily throughout the project.

  • Team Dynamics and Culture: Create an effective team culture that is inclusive, supportive and empowering.

    • 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 the development team is face-to-face conversation.

    • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

    • The best architectures, requirements, and designs emerge from self-organizing teams.

  • Retrospectives and Continuous Learning:

    • At regular intervals, the team reflects on how to become more effetive, then tunes and adjusts its behavior accordingly.

Adopting an Agile mindset

VUCA: An accronym that defines the conditions that affect organizations in a changing and complex world.

  • Volatility: Rate of change and churn in a business or situation.

  • Uncertainity: The lack of predictability or high potential of surprise.

  • Complexity: The high number of interrelated forces, issues, organizations, and factors that would influence the project.

  • Ambiguity: Refers to the possibility of misunderstanding the conditions and root causes of events or circumstances.

Scrum

Product backlog: The central artifact in Scrum, where all possible ideas, deliverables, features, or tasks are captured for the team to work on.

Sprint: A time-boxed iteration in Scrum where work is done.

Daily Scrum: A meeting of 15 or fewer minutes every day of the Sprint.

Scrum Master:

  • Responsible for ensuring the team lives by Agile values and principles.

  • Responsible for ensuring the team follows the processes and practices that the team agreed to.

  • Responsible for sharing information to the larger project team.

  • Responsible for helping the team focus on doing their best work.

Product Owner:

  • Responsible for maximizing the value of the product and the work of the team.

  • Responsible for the inventory of work and final say on how to prioritize the work.

Development Team:

  • Resposible for how a team will deliver that product.

Kanban, XP, and Lean

Kanban:

  • Provides transparent and visual feedback.

  • Ensures the project team only accepts a sustainable amount of in progress work.

Work-in-Progress (WIP) Limit: Tasks are limited to what the team can currently handle during a certain amount of time.

XP:

  • Aims to improve product quality and the ability to respond to changing customer needs.

  • Takes best practices for the development process to "extreme" levels.

  • Leverage practices like: Pair Programming, CI/CD, Avoid Big Design Up Front, Write Tests not Requirements.

Scrum

Agile is the foundational philosophy and mindset, while Scrum is a framework that materializes or brings that philosophy to life.

3 Scrum Pillars

  • Transparency: The team is open and honest about what they are doing and why.

  • Inspection: The team is accountable for their work and the quality of their work.

  • Adaptation: The team is able to adapt to changing circumstances and new challenges.

5 Scrum Values

  • Commitment

  • Courage

  • Focus

  • Openness

  • Respect

Scrum Master traits

Promotes and supports the scrum process by helping everyone understand and implement scrum.

Responsibilities include:

  • Coaching team members on Agile and Scrum practices, rules and values.

  • Helping to find ways to manage the Product Backlog.

  • Ensuring the team is on track to deliver the product on time.

  • Helping remove blockers.

Product Owner

Ensure the team is building the right product for the customer.

Responsibilities include:

  • Maximizing the value of the product.

  • Act as voice of the customer.

  • Help the team understand why their work matters within the overall goal and mission of the project.

  • Prioritize the Product Backlog to optimize the team's efforts.

Implementing Scrum

Product Backlog: The single authoritative source for things that a team works on. It contains all of the features, requirements, and activities associated with deliverables to achieve the goal of the project.

  • Living artifact: It is constantly evolving and changing.

  • Owned and adjusted by the product owner.

  • Prioritized list of features.

Writing User Stories

User Stories: Short, simple descriptions of a feature told from the perspective of the user.

Elements of a user story:

  • User

  • Action

  • Benefit

As a user role I want this action so that I can benefit.

Stories should have the following characteristics:

  • Invest

  • Negotiable

  • Valuable

  • Estimable

  • Small

  • Testable

or INVEST

Epic: A group or collection of user stories.

Acceptance Criteria: The checklist you will use to decide whether the user story is done.

Backlog Refinement

Review the product backlog to ensure:

  • It contains the appropriate items, and that nothing new is needed or nothing needs to be removed.

  • That the items are prioritized by the Product Owner, this is also calleed setting the order field

  • That the items at the top of the backlog are ready for delivery with clear acceptance criteria.

  • And that the backlog items include estimates or an informed assessment about how much work a particular backlog item will be.

Estimation: Through estimation we can find out how much work we have ahead of us.

Relative Estimation: Instead of trying to determine exactly how long a task will take, we compare the effort of that task to another task, and that becomes the estimate.

Tip: Use fibonacci numbers to assign story points.

Sprints

Within a sprint, the amount of work is planned based on historical capacity of the team and is made ready for the sprint planning event.

Timeboxes: A timebox is a fixed period of time during which work is done.

Sprints can be anywhere from 1 week to 1 month long, to choose consider:

  • The frequency with which new changes may come in.

  • How much focused time your solution developers need to work on the project.

Sprint planning

The entire scrum team comes together and meets to confirm how much capacity, meaning time and people, are available during this sprint.

Definition of Done: Refers to an agreed upon set of items that must be completed before a user story or backlog item can be considered complete.

Examples:

  • Code or solution itself is reviewed and approved by the team.

  • The product or unit tests are written and pass.

  • Documentation is complete.

  • All user stories are complete.

  • The product owner has approved the work.

Daily Scrum and Sprint Review

Daily Scrum: A 15-minute meeting that happens every day of the sprint to synchronize the team's work and identify any impediments.

Sprint Review: A meeting with the entire Scrum Team where the product is demonstrated in order to determine which aspects are finished and which aren't.

It covers:

  • Exploration of which items should be considered done in the Product Backlog.

  • Demonstrate and inspect the Product.

Product Increment: The sum of all the work completed during the sprint.

Sprint Retrospectives

Sprint Retrospective: A meeting that happens at the end of the sprint to inspect how the sprint went and identify ways to improve. Can last upto 3 hours.

Talk about:

  • What's working or not working for the team regarding the processes, people and tools.

  • What improvements are worth exploring in the next sprint.

  • And what improvements were put in place for the last sprint? Were they effective? Why ?

Things to achieve:

  • Be blameless by creating a safe environment for everyone to share their thoughts, feedback and ideas.

  • Partipation by everyone on the team.

  • Balance on the negative and positive feedback.

  • Take action on the feedback.

Velocity and Burndown Charts

Burndown Chart: A chart that shows the amount of work remaining in a sprint over time.

Velocity: The amount of work a team can complete in a sprint.

Dos and Don'ts for velocity:

  • Do: Be careful when sharing velocity with external stakeholders.

  • Don't: Use velocity as a performance metric.

  • Don't: Use velocity as a comprison metric.

  • Do: Proceed with caution when using velocity to predict future sprints.

Maximizing value-driven delivery

Value can mean different things for each customer based on what they expect the product to accomplish.

  • Build the right thing.

  • Build the thing right.

  • Run the thing right.

Value Roadmap

  • An agile way of mapping out the product development process.

  • Can be used on all types of businesses.

  • A guide that demonstrates

    • Where to go

    • How to get there

    • What to accomplish along the way

  • Helps the team explain the vision of the product.

  • Used to identify important milestones.

Product Vision: A description of the product that describes the problem it solves and the value it provides.

Product Roadmap: A high-level plan that describes the features and functionality that will be delivered over a period of time.

Release Plan: Contains estimates for the work that will be done in a release and when each release will be delivered.

  • Release goal

  • List of backlog items

  • Estimated Release Date

  • Other relevant dates that impact the release

Facilitating Organizational Change

Understanding organizational culture and the change management process is crucial when introducing new ways of working.

Organizational Culture: The shared values, beliefs, and assumptions that influence how people behave in an organization.

Change Management: The process of planning and supporting individuals and organizations in making organizational change.

Create a sense of ownership:

  • Find an executive sponsor who also feels a sense of ownership for the change.

  • Having buy-in from someone at the top increases your chances of successfully driving change.

Create a sense of urgency:

  • Ask questions about what's working and what's not working right now.

    • What is preventing us from providing the best possible experience for our customers?

    • What is allowing our competitors to outpace us?

    • How can we help our teams become more productive and support their work?

Coaching an Agile team

  • Design the "plays" with the team

  • Provide feedback

  • Celebrate and learn with the team

Managing

  • Onboarding and orienting new team members

  • Conducting meetings

  • Delegating tasks and assignments

  • Monitoring progress and performance against those tasks

  • Making high-level decisions

Coaching

  • Motivate

  • Support

  • Encourage and appreciate

Agile team Challenges

  • Value delivery

    • Issues

      • Missing expected delivery dates

      • Burned out team members

      • Too many WIPs

    • Solutions

      • More demos of the solutions

      • Use retrospectives to identify and address issues

      • Make sure that everyone understands what "done" means

      • Focus on only a few user stories per Sprint

  • Business Collaboration

    • Issues

      • You might notice that the team is overwhelmed with critical feedback or change requests.

      • "Us vs. Them" mentality between the team doing the work and management.

    • Solutions

      • Addressing critical feedback and change requests by doing more demos

      • Conducting a solution design Sprint

      • Ensuring changes to the backlog are introduced only in between Sprints

  • Team dynamics and Culture

    • Issues

      • Low team morale

      • Lots of conflict

      • Low conflict

    • Solutions

      • Run a team brainstorm session

      • Change up workflows

      • Take a training course

  • Retrospectives

Agile Coaching challenges

  • Managing a stable product roadmap

    • Challenges

      • Product Ambition: Product leadership is overly ambitious about what the team can realistically deliver.

        • Agree upfront how to handle new opportunities and ideas.

        • Setup regular roadmap reviews with the entire team.

        • Promote sharing knowledge between the product owner and development team.

      • Product Assumptions: Initial assumptions made when the product was conceived may not be valid.

        • Document the assumptions and make them transparent.

        • Check assumptions against unbiased user research.

  • Incomplete implementation of Scrum

    • Issues

      • Loss of clear roles and Responsibilities

      • Tempted to skip some events or blend them to save time

      • Not providing the team with the Scrum coaching they need

    • Solutions

      • Implement scrum completely

      • Make sure roles are well defined and properly fulfilled

  • Experiencing a lack of stability within the team

    • Issues

      • Changes in team composition
    • Solutions

      • Have a quick onboarding process

      • Use pair Programming

      • Have shorter sprints