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: