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