Agile Development ..or something that looks like it

advertisement
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:
Download