Agile Development
..OR SOMETHING THAT LOOKS LIKE IT
SCOTT TURNBULL
STURNBU@EMORY.EDU
SOFTWARE ENGINEERING MANAGER
EMORY UNIVERSITY LIBRARIES
The Agile Manifesto
Collaboration by 17 industry leaders in 2001
Emphasis on ‘Light Weight’ methods & personal
Interactions to catch problems early and change
Core Principles:
Individuals and Interactions over processes and tools
Working Software over comprehensive documentation
Customer Collaboration over contract negotiation
Responding to Change over following a plan
http://agilemanifesto.org/
Flavors of Agile Development
Various Techniques with differing process maps
In Reality few people strictly adhere to one method
Our Own Mix and Match borrows from:
Agile Development: Prototypes & Deployed Software
Scrum: Stand-Ups & Story Points
Extreme Programming: Refactoring
Realities of Our Environment:
Little project planning
High number of concurrent projects
High diversity and low complexity of projects
High Complexity and Significant External Workflow Dependency
Breaking It Down and Developing
Project Plan >> Release Plan >> User Story
Project Plan covers Scope and Overall Goals
Release Plan bundles features into logical blocks
User Stories tell WHO can do WHAT and WHY
Storypoints estimate the relative complexity of
satisfying the requirement.
Tools we use:
Wiki’s and Documentation sites – Project/Release Plans
Pivotal Tracker – User Stories/Chores
Iteration – 2 Week breakdown and focus of work.
Iteration Board – Daily Management of Development.
Estimation & Planning
User Stories are the central focus for developers
Each User Story should imply an acceptance test
Complexity is estimated in Story Points
Arbitrary measure of relative complexity
We use modified Fibonacci Sequence (0, 1, 2, 3, 5, 8, 13, 21)
Estimates are collaborative to uncover assumptions
Based on Staffing we estimate how many Story Points we can
accomplish in a 2 week Iteration (Velocity)
Iterations & The Iteration Board
Iterations focus on immediate goals in a release
Identify the most critical work over next 2 weeks
Set expectations on what we’ll be trying to
accomplish
Are a means to monitor the progress of development
and adjust planning if needed
Daily 10 min Stand-Ups keep Everyone In the Loop
Significant difference in how we use iterations here
Discipline In The Process
Version Control (Git/Subversion) is a MUST
Branching and Tagging of Releases
Unit Testing Absolutely Vital
Communication & Released Software
Daily Stand-Ups
Code needs to be frequently Deployed and Hand’s On
Design Globally, Code Locally
Acceptance Testing is important
Criticisms of Agile Development
Feature focus obscures goals and infrastructure.
Staffing and long term planning problems.
A charismatic movement the generate certification or
speaker fees.
Works better for Senior Developers who can operate
with more discretion.
Higher Risk of Scope Creep.
Inadequate handing of non-functional details.
My Own Conclusions
No method excuses you from knowing your business.
Just like software, pick the right tools for the right
job.
Make the process as transparent and avoid ScrumBut.
Define with expected outcomes but iterate through
features.
Why is the most important question you can ask.
Agile Development
TOOLS OF THE TRADE
Pivotal Tracker for Project Management
Iteration Cards
<Project>
<User Story>
<Initials> <Storypointst>
<Project>
<Release Name>
<Target Date>
<Project>
<Description>
<Initials>
Analog, the wave of the future
Reporting and Tracking
Velocity and Where it takes You
Iteration Data for 2011
80
70
60
50
40
30
20
10
0
1/13/12
2/13/12
Total SP Completed:
3/13/12
4/13/12
*AVG Velocity:
5/13/12
# Projects In Dev
6/13/12
Available FTE:
7/13/12
8/13/12
Velocity per FTE: