You are on page 1of 11

Equipping PMI Members with Agile Skills and Knowledge

Experience Report : Agile Software Development Case Study


Dave Rose 2012 All rights reserved
PMI Agile Community of Practice
The Agile Community of Practice focuses on delivering knowledge and providing a virtual networking forum for agile
practitioners. This includes anyone interested in, working in, or impacted by developments in the collection of good
practices, principles and techniques in agile project management.
The Community
Enables agile practitioners to contribute and share their knowledge with the global PMI community.
Explores the relationship between agile principles and practices.
Communicates how agile may differ from, or complement the teachings within, PMI's A Guide to the Project
Management Body of Knowledge (PMBOK Guide).
Experience Report Abstract
This Experience Report provides detail of the authors experiences when hired by an eProcurement company to
manage the complete replacement of their Software as a Service (SaaS) document exchange system. The system is
the core platform for the companys entire suite of services provided to their customers.
The existing system had outgrown its original design and the business stakeholders needed it to be replaced to meet
the expectations of their rapidly growing service portfolio. A decision was taken to manage the project using pure
Agile methodology. The author, like many PM's, had dabbled in Agile but had never embraced the full philosophy.
In this report the author describes those tenets where he was a bit skeptical, details from his experiences of seeing
how a pure Agile project could be evolved and delivered. This report follows the progress from start-up through the
first major release and illustrates where the team struggled and had successes. It outlines what worked and where
we there were challenges and what the author learnt from this journey.







Please do visit the PMI Agile Community of Practice site http://agile.vc.pmi.org to raise questions and discuss this
report.

Equipping PMI Members with Agile Skills and Knowledge
Experience Report : Agile Software Development Case Study
Dave Rose 2012 All rights reserved
The Starting Point
The Project
The customers current system had reached its end of life and needed replacing from the ground up. This system
was the company's lifeblood; all of its services were delivered from it. The project was high profile and
considered critical to supporting the company's future. Not only was it a software development project but we
also had to plan the transition of 6,000 customers to the new system.
My Agile Background
When I accepted the project management role, I, like many PMs had dabbled in Agile, embracing this concept or
that one; basically cherry picking what I thought would work best for any particular project. For this white paper I
wanted to start by creating a baseline of my knowledge and Agile perceptions, then compare this at the end of
the project to what worked, what didnt, and what I learned. For the baseline, I used the Agile manifesto and
rated myself. The tilde indicates partial usage, the X meant I avoided it, and the check mark, I already embraced
it.
Principles My
Experience
Welcome changing requirements, even late in development. Agile processes harness
change for the customer's competitive advantage.
X
Deliver working software frequently, from a couple of weeks to a couple of months, with a
preference to the shorter timescale.
~
Business people and developers must work together daily throughout the project.
~
Build projects around motivated individuals.
~
Give them the environment and support they need, and trust them to get the job done.
~
Working software is the primary measure of progress.
~
Agile processes promote sustainable development. The sponsors, developers, and users
should be able to maintain a constant pace indefinitely.
~
Continuous attention to technical excellence and good design enhances agility.
~
Simplicity--the art of maximizing the amount of work not done--is essential.

The best architectures, requirements, and designs emerge from self-organizing teams.
X
At regular intervals, the team reflects on how to become more effective, then tunes and
adjusts its behaviour accordingly.
~
The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation.
~

Three things of note from this table:
a) I, like many PMs, wanted to control scope change keep a firm hand on it so it doesnt interfere with
delivery.
b) I preferred consulting with senior team members and assigning tasks jointly; self-directed task selection
worried me.
c) On the other hand I did believe in simplicity; the KISS principle kept many a project on track.

Equipping PMI Members with Agile Skills and Knowledge
Experience Report : Agile Software Development Case Study
Dave Rose 2012 All rights reserved
The Environment
Agile was new to the company. This project and the Agile methodology was being inserted into an existing
system of processes and behaviours that often acted in conflict with our project:
Product managers did not want to compete to have their initiatives developed. They all had their own
development teams to carry out their wishes. The big challenge here was that all of these products were
delivered from one system; one shared software base. This led to:
o Major code merge challenges at deployment time
o Rework due to poor communication between teams
o Inconsistent development standards
Their project management methodology was mostly Waterfall with a smattering of Agile. This meant:
o Business Analysts gather requirements and document them as stories
o Developers create functionality based on the requirements
o Testing was performed by a QA group that was independent of the development team. They had
to be scheduled to test, and often werent available until sometimes, weeks later. This lead to
many issues as the developers had moved onto other projects while waiting; code management,
having to refresh their memory on what had been developed, etc.

Project Initiation
As mentioned in the abstract, the project did not start in an Agile manner. Before any development took place, the
executive wanted to know the scope, budget and timelines. The company could not use much of its existing
resources so new resources would need to be brought in. For this phase, 2 BAs and 2 project managers were hired.
They:
Met with the business units and created requirements for the new system
Estimated resources and budget to deliver
Created charters, budgets, schedules
Did a formal presentation to steering committee & executive for approval
This phase lasted 2.5 months and generated copious volumes of documentation.

Research & Proof of Concept Phase
Once the project was approved, we went into a 5 month research and PoC phase. This was necessary due to a lot of
new technology being employed, where we had little or no experience. While we believed all of these new
technologies would work together as expected, we needed to be sure. To that extent we:
Did a small Proof of Concept project using the new GUI tools
Did a vertical spike of all the technologies to prove them out

As the PoC was progressing satisfactorily, we began the planning for the first development phase. This is where
wed go Agile in a serious way. As a team, we created high-level functional stories, adding estimate points to them,
and then meet with the executive to determine business priorities and what could be expected when. We had a rift in
initial expectations on when the first phase could be completed. The development team felt that based on their
estimates, the delivery dates wanted by the executive could not be achieved. Since all we had were gross estimates
at that time, it was agreed that wed do 3 iterations and then determine our actual velocity. Based on this we would
set our milestone dates using more empirical data.

Stories were organized and prioritized into iterations to take us to the first major milestone, a production release that
would allow us to prove out the back-end with a pilot customer.

We recruited a top-notch team, co-locating them in one large space. This includes BAs, Developers, QA and the
PM. Key business stakeholders and infrastructure were close at hand.

Many of us had limited Agile experience. Jonathan Rasmusson, a local Agile guru, was available and looking to get
back into development. He agreed to join our team as technical and Agile practice lead. He took us through his Agile
boot camp and we incorporated our learnings into our project.

Equipping PMI Members with Agile Skills and Knowledge
Experience Report : Agile Software Development Case Study
Dave Rose 2012 All rights reserved
One of these learnings was the Inception Deck. My take on the Inception Deck is its a user friendly charter. It has
much the same content as a charter but it is more versatile on communicating expectations both upward and
downward. It really helps the team understand the big picture of why you are doing the project; what benefit it has to
the business; as well as things that directly impact them; how the team will work together, schedule, etc. You can
even select slides based on the audience.

Release Planning
Releases were based on specific functionality that would enable either new customer onboarding or existing
customer transitioning.

Our Release Planning involved:

Breaking the major milestones into releases
Determining iterations for the release
Selecting relevant stories
Prioritizing stories for the first iteration

We went with 2-week iterations. This was sufficiently long enough to get useful functionality developed, but short
enough to stay highly focused.

Development Iterations
Two avenues of work go on during an iteration:
We start with the Preparation Iteration. BAs and senior developers flesh out the selected stories add
requirements, mock-ups, test scenarios, etc.
Once the stories are ready for development, they move into a Development Iteration. This iteration includes
development & functional testing. We want stories tested immediately after development so the code is still
fresh in the developers mind.
While the developers work on the stories in this iteration, The BAs work on the next iterations stories.
For this process to be successful, you must have the right mix of BAs, developers, and QA.


In more detail the iterations look something like this:



Equipping PMI Members with Agile Skills and Knowledge
Experience Report : Agile Software Development Case Study
Dave Rose 2012 All rights reserved
Preparation Iteration


Day 1 Review high level stories as a team
Review included BAs, Sr Devs & PM
Pick stories for iteration
Do a walk-through to ensure all know what is expected
Review estimates based on discussion

Day 2 7 Iteration Prep
BAs get detailed requirements into stories
Sr Devs review any technical design impacts

Day 8 Final Review
Use the same team as for Day 1
BAs review stories in detail
Any omissions are noted
Stories re-estimated to ensure nothing has significantly changed

Day 9-10
Final story preparation
QA scenarios added


Equipping PMI Members with Agile Skills and Knowledge
Experience Report : Agile Software Development Case Study
Dave Rose 2012 All rights reserved
Development Iteration

Day (-1) Team Review
A retrospective meeting occurs to review what was accomplished during the last iteration, what happened
that was notable, (both positive and negative), and the stories to be developed in the next iteration.

Day 1 Development Starts
Stories are placed on the Cork Kanban Board ready for development. Developers pick up stories based on
their interest / knowledge / expertise

Day 2 8 Development Phase
Continue picking up stories and completing their development. QA develops test cases and tests stories as
they are completed.

Day 9 10 QA Clean-up
QA finishes testing while Developers fix bugs. Developers look at stories for next iteration


Equipping PMI Members with Agile Skills and Knowledge
Experience Report : Agile Software Development Case Study
Dave Rose 2012 All rights reserved
Ideal Development Cycle
If you can achieve the following workflow, you have created a sustainable development stream. Everyone is working
at an optimum rate and you can achieve the ability to deliver new functionality into Production after every iteration.

Yeah but!
It is challenging to do. Even if you have the right team balance of BAs, developers, and QA, you can have break-ins
from Production issues, vacations, illness and so on. Then you can get something more like this! This is what
happened to us:

This chart shows the impact of your QA team being distracted by Production issues for the entire first iteration. They
dont get started until the second, and not only that we are short QA resources. The Developers are done creating
functionality on schedule but QA is way behind them. Now you have a forced lull where you cant create new
functionality until QA catches up. Why? You cant keep adding untested code to the system because QA never
catches up and you can never release.
Equipping PMI Members with Agile Skills and Knowledge
Experience Report : Agile Software Development Case Study
Dave Rose 2012 All rights reserved
Team Communication
SCRUMS held every day to review what each team member did the day before, what they will be doing
that day and if they have any issues
Communication Wall We used all the walls around our collocated space to help with communication
Kanban Board has lanes for each phase of a storys development

Release Plan displays primary functionality in the release, the iteration schedule, and even
includes the expected business benefit. It reminds team members every day what we are doing
and why.

Customer Migration As customers moved onto the new system, we listed them on the wall. It
reinforced that this was a working system with customers using it daily
What has been done Every iteration, every story card was put up on the wall. We had hundreds
and hundreds. This showed what we had accomplished to the team as well as anyone who
wandered back into the team space.
Equipping PMI Members with Agile Skills and Knowledge
Experience Report : Agile Software Development Case Study
Dave Rose 2012 All rights reserved

Retrospectives
What have we done?
Demos developers showed what they did that iteration
Described functionality that could not be demoed was discussed
What is next?
Review the upcoming stories
What went well?
Acknowledge improvements
What can we approve?
Develop solutions as a team

Project Management in an Agile World
Agile does not mean that the project requires no management. Even the best-intentioned team can lose direction
and drift dangerously off course without a project manager reviewing progress constantly. To ensure a steady course
I used the following tools:
SCRUMs listen to daily reports, identify any follow up actions (technical challenges, progress).
Was imbedded in the team area keep your ears open for issues that may need your attention
Weekly status reports reporting up to management and stakeholders
Monthly performance reports budget & deliverable tracking & variance



Equipping PMI Members with Agile Skills and Knowledge
Experience Report : Agile Software Development Case Study
Dave Rose 2012 All rights reserved


Agile Actually Employed
So how well did we do? How much of the Agile manifesto did we implement?



Principles Our Reality
Welcome changing requirements, even late in
development. Agile processes harness change
for the customer's competitive advantage.
We only locked down the current iteration. Next iteration was
left open until ready to develop
Deliver working software frequently, from a couple of weeks to a
couple of months, with a preference to the shorter timescale.
Releases varied in length but monthly was preferred. Had
challenges getting them into Prod.
Business people and developers must work together daily
throughout the project.
Limited access to Bus Reps. BAs imbedded in the team.
They met weekly with the business
Build projects around motivated individuals. Had a highly skilled, senior team with mix of employees &
contractors
Give them the environment and support they need, and trust
them to get the job done.
All were co-located. Added pairing stations. Gave them
significant freedom to interpret requirements.
Working software is the primary measure of progress. True but other groups still wanted their traditional deliverables
CBT creation required locked down screens weeks before
the release
Agile processes promote sustainable development. The
sponsors, developers, and users should be able to maintain a
constant pace indefinitely.
Once a rhythm is attained, maintain it.
We struggled with this due to external impacts formal QA,
CBTs, existing production deployment processes
Continuous attention to technical excellence and good design
enhances agility.
Have the best team you can afford.
Simplicity--the art of maximizing the amount of work not done--is
essential.
Focus on delivering just what brings immediate business
value.
The best architectures, requirements, and designs emerge from
self-organizing teams.
This does work team dug out technical issues and addressed
them on the fly.
At regular intervals, the team reflects on how to become more
effective, then tunes and adjusts its behaviour accordingly.
Retrospectives every 2 weeks.
The most efficient and effective method of conveying
information to and within a development team is face-to-face
conversation.
Focused on conversations over documentation. Team was co-
located.
Equipping PMI Members with Agile Skills and Knowledge
Experience Report : Agile Software Development Case Study
Dave Rose 2012 All rights reserved

Successes and Challenges
Successes Challenges / Opportunities
Team Functioning - self organizing, professional, really owned
the responsibility of developing a high quality system
Misaligned resourcing not enough QA to keep up with
demands; caused large drag on entire team
Focus on best return on time spent just in time requirements,
build only what is absolutely required
QA Effectiveness formal QA process caused the largest
amount of frustration & ineffectiveness; good example of a
non-agile approach causing friction.
Delivery got right stuff into Production Executive alignment
Agility change to meet companys priorities Detailed requirements gathering at beginning
Time for refactoring
An evolving database design will work
Handled key technology change midcourse replaced
Silverlight with HTML


What Did I learn?
Every project generates learnings. Since I had limited Agile experience before this project I learned a lot! Here are a
few of my key learnings:
1. Give up control! Your team does not need to be spoon-fed.
2. Increase your trust that your team will do the right things
3. You can still monitor and manage but it is in a different way you can let the team be self-organizing but
monitor progress closely. Include the team in any management decisions so they really own the resulting
actions.
4. Going Agile is not like flicking a light switch; it is an evolution.
5. There will be clashes with other groups that operate in more traditional ways. You must find a way to bridge
those gaps in methods and expectations. Generally, excellent communication plus joint decision making
where cross team impacts are felt reduce tension and improve the relationship.
6. Learn, adjust, learn some more.

About the Author
Dave Rose has been a Project Manager for over 20 years. He started managing the implementation of turnkey
medical office systems in 1990 and has progressed to managing software development and infrastructure projects in
a wide range of businesses and environments. Dave has developed expertise in managing the development of web-
based systems including SaaS and portal based solutions. His PM approach has evolved from waterfall through
hybrid RUP, Scrum, and Agile techniques to the focused Agile methodology employed on this project. He has a BSc
Computer Science from the University of Manitoba and his PMP designation from PMI.
Copyright
This material has been reproduced with the permission of the copyright owner. Unauthorized publication of this
material is strictly prohibited. For permission to re-produce this material, please contact any listed author.

You might also like