Upload
gervais-riley
View
214
Download
0
Tags:
Embed Size (px)
Citation preview
..or something that looks like it
Scott [email protected]
Software Engineering ManagerEmory University Libraries
Agile Development
The Agile Manifesto
Collaboration by 17 industry leaders in 2001Emphasis 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 StoryProject Plan covers Scope and Overall GoalsRelease Plan bundles features into logical blocksUser Stories tell WHO can do WHAT and WHYStorypoints 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 releaseIdentify the most critical work over next 2 weeksSet expectations on what we’ll be trying to
accomplishAre a means to monitor the progress of
development and adjust planning if neededDaily 10 min Stand-Ups keep Everyone In the
LoopSignificant difference in how we use iterations
here
Discipline In The Process
Version Control (Git/Subversion) is a MUSTBranching and Tagging of ReleasesUnit Testing Absolutely VitalCommunication & 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 Scrum-But.
Define with expected outcomes but iterate through features.
Why is the most important question you can ask.
Tools of the Trade
Agile Development
Pivotal Tracker for Project Management
Iteration Cards
<Project>
<Description>
<Project>
<User Story>
<Initials><Storypointst>
<Initials>
Analog, the wave of the future
Reporting and Tracking
Velocity and Where it takes You