Professional Documents
Culture Documents
Agile project management is a method of project management that focuses on taking small, iterative
actions to complete tasks. Short-term development cycles are used to complete the incremental
elements of a project. Instead of top-down administration and sticking to a defined strategy, the
approach emphasises speedy delivery, adaptability, and cooperation.
Compare this to more standard project management methods. In most cases, traditional project
management follows a linear path. After the previous stage is completed, the next step is moved on
to planning, designing, implementing, and closing.
Planning, Monitoring and Adapting:
Agile Planning Stages:
1. Product Vision – [revised once a year] a document created by product owner describing
what the product is, who will and why use it, and how the product supports company
strategy
2. Product Roadmap – [revised twice a year] a document created by product owner describing
the high-level product requirements, timeframes for deliverables, prioritization and
estimations, it is a visual overview of all the releases and major components
can be in the form of story maps – a diagram indicating the sequences of
backbone, walking skeleton and optional features to be released over time
then the features to be release in the 1st, 2nd, 3rd, etc. releases can be
mapped out
3. Release Plan – [revised twice / four times a year] a document created by product owner
describing the high-level timeline for product releases (features with higher values are given
higher priority in the releases)
4. Sprint Plan / Iteration Plan – [revised once a month / an iteration] a document created by
product owner, scrum master and development team describing sprint goals and
requirements and how those requirements will be completed
5. Daily Stand-up / Daily Scrum – [daily for 15 minutes] a meeting to be attended by project
team and stakeholders to discuss on what was completed yesterday, what will be done
today, and any roadblocks found
6. Sprint Review – [monthly, at least an hour, for scrum] a meeting at the end of each sprint to
demonstrate the working product/deliverable to stakeholders for feedback/acceptance
7. Sprint Retrospective – [monthly, at least an hour, for scrum] a meeting at the end of each
sprint to discuss on product and process improvements, at least one area is picked to focus
on continuous improvement
Agile Monitoring:
1. Unlike the “monitoring and control” of traditional project management to avoid deviation
from the plan, Agile monitoring is more about inspection for values and processes for the
project, every release, every sprint and every day
2. Agile monitoring involves Agile metrics/measurements, variances, and burn-up and burn-
down charts, change management, forecasting, continuous improvements, retrospectives,
quality control, frequent validation and verifications and other related activities
Agile Adapting:
1. Agile adapting is essentially making changes to the project, product and processes for
implementing changes which customers value most
2. Agile adapting involves process tailoring, continuous integration, adaptive leadership, soft
skills negotiations, delivering business value, revised vendor management, change
management
used in Kanban to visualizes and identify trends and bottlenecks / waste of the project
plot the features (completed, WIP and total) against time
visualize the Little’s Law in the WIP portion
CFD can be plotted in more details by plotting the activities completed by individuals / teams
the slope indicates the rate of progress
a declining slope indicates bottleneck (below the widening band)
changes to most of the variables in an organization usually have only small impacts on global
performance
need to find out the few variables that bring about significant changes
question 3 of daily stand up / daily Scrum addresses this theory by asking for any roadblocks
that impediment progress
Time-boxing
Release Planning
release planning is the meeting to plan the project schedule at a strategic level for delivering
an increment of product value to the customers (can be date driven or feature driven)
consists of multiple iterations
make use of team velocity and story maps (group user stories into backbone, walking
skeleton and additional elements) to plan the release
Iteration Planning
is the meeting to plan and commit which user stories / backlog (usually with highest priority)
to be turned into potentially shippable working software for the iteration based on the
velocity of the team
iteration 0 is the work before the actual development work begins
technical and architectural setup
gathering initial requirements into the backlog, etc.
iteration H is the hardening iteration to test and prepare the software for launch
Steps of the Iteration Planning meeting
Customer to pick product backlog items with highest priority (or the team to select
backlog items from among the release backlog thru discussion with customer – the
Product Owner has the final say in Scrum)
Development Team to determine the tasks needed (as sprint backlog in Scrum)
Team Members to choose the tasks through self-organization and estimate the time
needed to compete the tasks (select the tasks themselves)
Repeat until the capacities of all Team Members are full
Typical Agenda for Iteration Planning
Opening
Product Vision and Roadmap
Development status, state of architecture, results of previous iterations
Iteration name and theme
Velocity in previous iterations / estimated velocity
Iteration time-box (dates, working days)
Team capacity
Issues and concerns
Review and update definition of Done
Stories / items from the backlog to consider
Tasking out
New issues and concerns
Dependencies and assumptions
Commit
Communication and logistics plan
Parking Lot
Action Items / Plan
Retrospect the meeting
Closing
Iteration Planning vs Release Planning
Iteration planning involves schedule development at lower/detail level about tasks and
time
Release planning involves schedule development at high level about features and
iterations
Burn up Chart
Process Tailoring
amend the Agile methodology to better fit the project environment since every project is
different in terms of team size, nature, resources, criticality, etc.
e.g., at the end of each iteration, review meetings will be done to understand what can be
improved by doing things differently. We can try to implement the changes in the next
iteration to test.
Kanban is tailoring-friendly while Scrum is not
as a rule of thumb, it is recommended to implement the Agile methodologies out-of-the-box
for the first few iterations before making changes / process tailoring so that the values of
standard Agile methods are better understood before making changes.
relationship between different processes for Agile methodologies must be thoroughly
understood before attempting to make changes
Shu-Ha-Ri model (by Alistar Cockburn) – originates from Japanese Noh theatre
Agile estimation is about evaluating the effort required to complete each work item listed in the
prioritized backlog, which, in turn, helps improve sprint planning. Estimates can be hard to grasp.
How should a company know the amount of time it will take to complete a product backlog item so
far in advance? How can they account for unforeseen impediments that arise? This is where Agile
estimation techniques come to the rescue.
From Agile project cost estimations to how long it will take to deliver, estimations are part of the
daily grind. The project is likely to go off track without accurate estimations in terms of budget and
time.
If a business does not spend time conducting accurate estimations, their product would get delayed
exponentially, which, in turn, can increase the chances of them getting outcompeted.
A rule of thumb for making accurate estimations is to put effort into strategizing around the right
Agile estimation techniques rather than making random guesses. Therefore, familiarizing themselves
with agile story estimation techniques should be a top priority of a business looking to develop a
new product. Agile estimation is the process for estimating the effort required to complete a
prioritized task in the product backlog. This effort is usually measured with respect to the time it will
take to complete that task, which, in turn, leads to accurate sprint planning.
This is the most important question. If you miss with users, you will build the wrong solution. All
further analyses will rely on defined user roles, so be very careful with this first step.
Typical questions:
Each user in the system has specific goals. One user role will use system not very frequently to solve
just a few problems, while another user role will use system about 2 hours per day and resolve many
complex problems. Why will user use this system? What problems will it solve?
Typical questions:
What I (as a user ___) want to achieve with help of the system?
Each user has common behavioural patterns. For example, Manager comes at work and start
checking yesterday results. Or Frequent Flyer wants to optimize travel expenses for the next month.
Or Salesperson having a call with existing unhappy customer. Or Resource Manager handles requests
on additional developers for 3 projects simultaneously. All these are typical usage patterns. This is
the best starting point for functional solution. You clearly see the real problems, you understand
them well, you have all you need to be creative and invent simple, effective and elegant solution.
Typical questions:
What are the typical user behaviours (daily, specific situations, etc.)?
This is just a logical continuation of previous step, but maybe the most complex step. Here you think
how to solve exact problem, discuss the solution, jump to steps 5-6, refine the solution, write down
it and move to the next usage pattern.
Typical questions:
This and next steps usually performed together with step 4. Usually, it is hard to invent great
solution without tracking user paths and sketching some UI (User Interface) areas. In fact, it is better
to stay off UI as far as you can. In discussions replace all phrases like “Then User clicks Leads link in
the top menu and sees leads list” with “Then User sees leads list.” Concentrate on information user
need on each step, not on links and clicks. Good navigation path looks like this:
User:
Typical questions:
6. Create UI Mock-ups
UI mock-ups are great to have a quick look at possible users/system interaction. Dashboard sketches
are perfect. Forget about cool tools like Visio, Dreamweaver or any other UI prototyping tool.
Dashboard sketches are the fastest, easiest and exciting thing to work with. You will group around
dashboard with markers in hands and discuss where to place system settings link with great
enthusiasm. Everyone can draw with a marker, but it is just not possible with computer. With marker
in hand everyone feels that s/he can improve this UI and bring in cool ideas. Here is the place where
team spirit rises! Draw UI sketch, take a photo on digital camera and put all photos in a single shared
space.
7. Polish UI Elements
There is always a possibility to make things better, to improve something here and there. It is a good
attitude. You should think about UI details of most important features that will be implemented right
after the project start. But be careful, don’t spend much time on UI perfection, likely it will change
during development anyway. And never polish UI for features that will be implemented in 3+
months ahead of current date, with great possibility it will be a waste of time.
Typical questions:
Scrum uses Value-based Prioritization as one of the core principles that drives the structure and
functionality of the entire Scrum framework. It benefits projects through adaptability and iterative
development of the product or service. More significantly, Scrum aims at delivering a valuable
product or service to the customer on an early and continuous basis.
Once the Product Owner has received the business requirements from the customer and written
these down in the form of workable User Stories, he or she works with the customer and sponsor to
understand which business requirements provide maximum business value. The Product Owner
must understand what the customer wants and values in order to arrange the Prioritized Product
Backlog Items (User Stories) by relative importance. Sometimes, a customer may mandate all User
Stories to be of high priority. While this might be true, even a list of high-priority User Stories needs
to be prioritized within the list itself. Prioritizing a backlog involves determining the criticality of each
User Story. High-value requirements are identified and moved to the top of the Prioritized Product
Backlog. The processes in which the principle of Value-based Prioritization is put into practice are
Create Prioritized Product Backlog and Groom Prioritized Product Backlog.
Simultaneously, the Product Owner must work with the Scrum Team to understand the project risks
and uncertainty as they may have negative consequences associated with them. This should be
considered while prioritizing User Stories on a value-based approach (refer to the Risk chapter for
more information). The Scrum Team also alerts the Product Owner of any dependencies that arise
out of implementation. These dependencies must be considered during prioritization. Prioritization
may be based on a subjective estimate of the projected business value or profitability, or it can be
based on results and analysis of the market using tools including, but not limited to, customer
interviews, surveys, and financial models and analytical techniques.
The Product Owner must translate the inputs and needs of the project stakeholders to create the
Prioritized Product Backlog. Hence, while prioritizing the User Stories in the Prioritized Product
Backlog, the following three factors are considered: -
1. Value
2. Risk or uncertainty
3. Dependencies
Thus, prioritization results in deliverable’s that satisfies the requirements of the customer with the
objective of delivering the maximum business value in the least amount of time.
Risk Management in Agile
A risk is defined as any factor that could impact outcome of a project positively or negatively and risk
management is the practice of identifying them and taking precautionary steps to manage them
The main difference is that in agile projects, risk management is done throughout the project
lifecycle as opposed to traditional models where a major portion of risk management is done
upfront.
In Agile projects, the team must be trained in the risk management and build-in focus on thinking
about risks in all the Agile/Scrum ceremonies:
1.Product Backlog - Product owner need to consider risk as a consideration for prioritizing user
stories and breaking down the ones over a certain size into smaller stories
2. Sprint planning - Team can only accept the work they are confident about delivering
Below are the ways and approaches to incorporate risk monitoring and control in Agile projects:
3. Daily stand-up meeting - This can become a forum of raising issues and risks as the team can think
about the question on what is blocking or likely to block their planned deliverable
4. Sprint Reviews – Regular product demos ensures less risk of delivering the wrong product. In
Sprint reviews, stakeholders can be informed of possible blockers and opportunity to highlight
mitigation activities
5. Sprint retrospective – Focus on what can be done better, and the idea of continual improvement
will ensure risks are unveiled
In general, risk management in an Agile approach offers more mitigation options than traditional
waterfall model:
1. Schedule variation which generally is the biggest risk in projects is managed in Agile by way of
having feedback loops
2. Frequent changes in requirements or scope creep is an integral part of the agile scrum process
and the changes go into product backlog for prioritization
3. Team and customer are synchronized on the need and constant exposure to customer minimizes
the risk of not building the product to the need