Agile Handbook PDF
Agile Handbook PDF
Agile Handbook PDF
HANDBOOK
OVERVIEW
WHAT IS THIS?
This handbook is meant to be a quick-starter guide to Agile Project Management. It is meant for
the following people:
This guide is not meant to be the end-all-be-all to agile. Far from it. It is meant to give busy
people an overview of the framework and its benefits in 15 minutes or less. The resources
section lists recommended books and companies that can provide more robust training on how
to implement it.
emerson@gophilosophie.com
415.516.8341
@etaymor
linkedin.com/in/etaymor/
Agile is a way to manage projects. It can be used for virtually anything, but it was founded in
software development. This handbook focuses on agile for software development, but many of
the principles can be expanded to other fields.
Agile breaks down larger projects into small, manageable chunks called iterations. At the end of
each iteration (which generally takes place over a consistent time interval) something of value is
produced. The product produced during each iteration should be able to be put into the world to
gain feedback from users or stakeholders.
Unlike Waterfall project management, which is strictly sequenced: you dont start design until
research is done and you dont start development until the designs are signed off on; agile has
designers, developers and business people working together simultaneously.
Agile realizes that software (and marketing) projects are inherently unpredictable. Over the
course of any project there are likely to be changes. Be it market changes or feature changes as
the product comes to life. Agile embraces this unpredictability. By breaking down projects into
small chunks, it makes it easy to prioritize and add or drop features mid project. Something that
is impossible in traditional waterfall projects.
SPEED TO MARKET
Agile lets you get your concept to your users as quickly as possible. During every sprint an agile
project delivers something of value. At any point, you may determine you want to launch what
has been delivered and start building a user base or testing your hypothesis.
FLEXIBLE
Agile is based on accommodating change. Software projects consistently change. As a product
comes to life or the market expands, you should be able to react and update the product
accordingly. Agile also realizes that great ideas are bound to come mid-project and being locked
into a scope doesnt let you take advantage of these realizations.
RISK MANAGEMENT
Incremental releases means that the product can be used early in the process by stakeholders
and users. This lets you identify issues and feature deficits early in the process. Being adaptable
to change means it isnt a problem to change the scope midway through the project, something
that would be impossible in a waterfall style project.
QUALITY
Agile integrates testing throughout the process. Consistently delivering tested software means
higher overall quality and less time spent on QAing the full application.
RIGHT PRODUCT
Incremental releases let you test your product early and often. Even if you dont release it to the
public, its much easier to locate flaws and things that can be improved when you have an actual
product to play with vs a series of designs.
TRANSPARENCY
Agile lets you see, feel and use a project consistently throughout the project. You dont see
things in compartmentalized silos; you see how things work together.
ITS DIFFERENT
Ive never used agile before and Im scared it will be too hard to get my whole team on board
with it.
Weve heard it before. Too many times. And we realize agile may be new to you and your
company. But while it might take a slight rewiring of how stakeholders think about projects
from the onset-- and how designers and developers are used to working at your firm-- it quickly
becomes apparent that projects consistently run smoother on agile. And better results are
produced.
Plus, you likely can admit that waterfall isnt the perfect process. While it might feel like it is
more under control because everything is mapped out from the beginning, projects undoubtedly
take longer than they need to and cost more than they should. Waterfall also doesnt allow the
flexibility to change things mid-project as new insights come to life.
ITS UNPREDICTABLE
Agile can be unpredictable. But all projects are unpredictable. It is impossible to know exactly
what your end users want. Agile embraces this unpredictability and leverages it to produce
better results.
There are many different flavors of agile. Ultimately, it is up to your team to come up with
the best process for you. Generally they all follow a short life cycle, which repeats during each
iteration. This guide focuses on Scrum, but many of the features are universal.
Scrum projects are broken down into short iterations (generally 1 - 3 weeks) called sprints. The
lifecycle of each sprint includes:
Planning
Execution
Review
Rinse & Repeat
Behind every project is a project backlog. The project backlog is a list of all the product features
generally defined by user stories. User stories define everything potential users want to do on
the site. They are defined for each of the user groups on the site and are structured like:
For example:
As a teacher I want to post test grades so that I can keep track of students.
After all the user stories have been dreamed up, they are ranked in order of priority. Part of this
ranking is also grouping stories together. Some stories will naturally lend themselves to being
built with others, which will expedite the process.
Remember that the project backlog is always fluid and never locked in. The project lead will be
in charge of reprioritizing the backlog between sprints. And if new features are dreamed up or
requested by users, they are encouraged to be added to the backlog. The one exception to the
fluid backlog is during a sprint. While the sprint is in session, it is important to not add features.
That keeps the team focused and makes sure that the project can be properly tracked.
To be able to estimate what can get done per sprint and how long the full project will take, it is
necessary to estimate how long each user story will take. Because one of the major challenges
in development is accurately predicting how long things will take to get done, agile uses relative
estimation.
Features are rated on a 1, 2 or 3 point scale. More precise estimation is more challenging and
ends up less accurate. It is easy to compare things relatively on a scale of 3. And if something is
particularly challenging that you dont think it fits within the 3 point bucket, it should be broken
down into smaller features that can each fit into the respective buckets.
There are a number of ways to handle feature estimation. It can be as simple as just talking
about it or it can be slightly more complex using planning poker.
Its also important to determine the sprint velocity of the team working on the project. That is
how many points the team can complete per sprint. This velocity is averaged over time. And
in typical average time value- the more sprints you do, the estimates and velocity become more
and more accurate. That is to say that in some sprints you may not hit your goal number and
other sprints you may exceed it. Over the course of a standard project, this averages out.
Agile projects are broken down into small, consistent time intervals. These intervals are referred
to as sprints. They can be as short as a few days and generally are no longer than 3 - 4 weeks.
We typically work in 1 - 3 week sprints depending on the extent of the overall project. During
a sprint there is a dedicated team that includes designers, developers and business people
working together.
Before each sprint, there is a sprint planning meeting (often combined with the sprint review
meeting). This meeting determines what the goals are for that sprint. Based on the team
velocity, a set of features are pulled from the top of the backlog. During the sprint, no features
are added and the sprint goals dont change. The only exception to this is if the team finishes
a sprint early. Client communication is generally limited to the daily standup results, but some
firms allow for an open dialog via a chatroom.
Every morning of the sprint the project team gets together for a short (under 15 minute)
meeting. This meeting takes place at the same time every day and includes everyone on the
project. Everyone stands up for the meeting to keep everyone focused and to keep the meeting
short. Often a timer is set so that the meeting does not run long.
These three questions allow for complete transparency. Everyone on the team is in the loop,
and the answers make people accountable for what they say they will deliver. The results of
this meeting are typically shared with the client. This daily communication makes sure that if
something is holding up the team, they can get a response quickly.
At the end of every sprint something of value is produced. Something that theoretically could
be launched. The sprint review meeting brings together the project team and other project
stakeholders like the client to present the work that was completed.
The sprint review always starts with a functional demo. A conversation then takes place on how
it can be improved and if there needs to be any reprioritizing of the project backlog. Then the
team collectively plans out the next sprint.
COMMUNICATION
Any project benefits from good communication. Agile projects are no exception. If you havent
run an agile project before, communication is especially important. Being kept in the loop
about what is ahead of schedule and what is behind schedule can help alleviate concerns with
unpredictability. A transparent process keeps people at ease and lets them focus on what is
important: delivering the best possible product to their users.
DEDICATED TEAMS
Agile works best with a dedicated team of people who are willing and want to collaborate. The
better the collaboration, the better the product.
GOOD PLANNING
For an agile project to succeed, it requires good planning. This doesnt mean planning everything
down to the day or week like in a traditional waterfall project, but it does mean thinking through
the project ahead of time: coming up with a robust project backlog and estimating features as
best you can.
PROJECT BACKLOG
The project backlog contains all of the user stories (or features) for the project ranked by priority.
Each story has an estimated value of 1 to 3 points.
FEATURE ESTIMATION
Feature Estimation is the process of estimating how long each user story will take. You assign
each story a relative point value of 1 to 3 points. If it is likely to take longer than 3 points, you
break it down into smaller chunks.
DAILY STANDUP
Every day at the same time, the entire project team stands up and has a short meeting to
review what was accomplished and what will be worked on.
WATERFALL
Waterfall is a traditional type of project management that is sequenced. For example, once you
complete the designs, you start development.
BURNDOWN CHART
A burndown chart is a graphical chart that is used to show the amount of work left vs time left.
VELOCITY
Sprint velocity is how much work a project team can get done per sprint. It is typically used to
estimate how many features can be accomplished each sprint (based on the feature points)
SCRUMMASTER
The scrummaster is a member of the team that facilitates the meetings. Their goal is to remove
any impediments that the team has.
LEAN STARTUP
theleanstartup.com
Book and website dedicated to Lean thinking. Agile and the Lean methodology complement
each other perfectly
TRELLO
trello.com
A simple online tool to help you manage the project backlog. Trello is like a set of digital post-it
notes that you can easily rearrange.
ASANA
asana.com
Another popular management tool. Asana offers a more thorough feature set than Trello, but
the interface isnt as intuitive.