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