What Is Agile? Agile is a group of software development methodologies Scrum Extreme Programming (XP) Lean Etc. Key Characteristics: Small increments Adaptive.

Slides:



Advertisements
Similar presentations
Iteration Planning.
Advertisements

Walter Bodwell Planigle. An Introduction – Walter Bodwell First did agile at a startup in 1999 Got acquired by BMC in 2000 and spent the next 8 years.
Delivering Enterprise Projects Using Agile Methods Brent Barton May 23, 2006.
Lena Bigelow Business 550 Presentation SCRUM. -A project management process - Embraces iterative and incremental practices -Concentrates on what is important:
What is Agile? Agile is a software methodology based on iterative and incremental development, where requirements and solutions evolve through collaboration.
Agile 101.
ECE44x SCRUM Overview slides adapted from Marty Stepp
Agile Project Management with Scrum
What Is Agile? Agile is a group of software development methodologies Scrum Extreme Programming (XP) Lean Etc. Key Characteristics: Small increments Adaptive.
Walter Bodwell Planigle. An Introduction – Walter Bodwell 18 years in software First did agile at a startup in 1999 Went back to waterfall (after acquisition)
SCRUM John Drew. SCRUM - overview Scrum is a project management discipline that has evolved since the early 1990s to deliver software that meets business.
Scrum. An evolutionary/iterative/incremental/agile software process The main roles in Scrum are: – Scrum team: Team of software developers – Scrum master.
Agile Development.
NAUG NAUG Knowledge Evening – th February 2007.
The Business Analyst Role in Agile Projects
Agile Project Management
Agile development By Sam Chamberlain. First a bit of history..
An Agile View of Process
Introduction to Agile.
Agile Methodologies for Project Management By – Komal Mehta.
© 2010 AT&T Intellectual Property. All rights reserved. AT&T and the AT&T logo are trademarks of AT&T Intellectual Property. Deeper Dive Into: User Stories.
Software Development Landscape
The Agile Primer July 2008 © ThoughtWorks 2008.
What is Scrum Process? Where is it used? How is it better?
Tuesday, June 8 th, Agile Development-Successful Delivery & Implementing Across the Enterprise.
Copyright David Churchville - XP and Agile Planning David Churchville ExtremePlanner Software XP Fishbowl.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Release and Iteration Planning September 13, 2008.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Agile Assessment Gadi Lifshitz, Ayelet Kroskin, Barak Yagour, Yael Dubinsky.
© 2012 About Me Doing agile since 1999 Start ups / Enterprises Planigle - Consulting and Training Qcue – VP, Engineering.
AP-1 5. Project Management. AP-2 Software Failure Software fails at a significant rate What is failure? Not delivering it on time is an estimation failure.
THE AGILE MENTALITY CHAPTER Topics  Why Use Agile and Scrum?  Agile Development –Manifesto for Agile Software Development  Scrum Methodology.
Dr. Nguyen Hai Quan.  Why SCRUM?  What is SCRUM?  Some terms  SCRUM Meetings  Sprint  Estimation  Product backlog  Sprint backlog  Whiteboard.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Agile Information Management Development. Agile Project Management Characteristics  Acceptance and even welcome of changing requirements  Incremental.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Copyright © by Mark J. Sebern Software Engineering Process I SE 2800.
January 24, 2009 Agile Product Management Making Things Happen Walter Bodwell Planigle.
SCRUM.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Agile 101. Feasibility Study SDLC – What is it? Systems Development Life Cycle: The most commonly used, and generally accepted, project management approach..
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
The Agile Manifesto Some thought starters for Ogilvy on how to work with Agile and SCRUM approaches to managing projects.
Introduction to Agile. Introduction Who is this guy?
Managing Agile Software Development Teams Using Scrum AKA: Wrangling Developers for Fun and Profit!
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
The Scrum Framework Presented by Somnath Ghosh Scrum Practitioner 24 hours weeks.
Barnes & Noble Alonda Morgan. Agile UX Agile.
Embedded Systems Software Engineering
Agile Project Management and the yin & yang of
Scrum.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Agile Training – Agile Overview
Agile Scrum Management
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Agile Software Development Brian Moseley.
By: By: Agile Scrum Master Online Training.
Approaches to Systems Development
Rapid software development
What do you need to know about XP?
Johanna Rothman Agile Team Measurements Chapter 12
How to Successfully Implement an Agile Project
Summarizing Our Models to Date
Agile Development – a new way of software development?
Scrum in Action.
Agile Development.
Presentation transcript:

What Is Agile? Agile is a group of software development methodologies Scrum Extreme Programming (XP) Lean Etc. Key Characteristics: Small increments Adaptive to change Collaborative

Principles Attack the most important thing Keep it simple Stay releasable Work as a team Get feedback and respond to it Defer decisions until the last responsible moment

Why Do It? It results in better software Higher productivity (you get what you need quicker) Higher quality More customer satisfaction More visibility Better morale

Roles Product Owner Scrum Master Team Member

Product Owner Prioritizes the backlog Communicates what is important … and what is not Is a proxy for the customer

Scrum Master Responsible for the process Facilitates agile meetings Helps to remove road blocks

Team Member Signs up for work Asks questions Collaborates with others Communicates progress / blocking issues Makes it happen

What Does It Look Like? Backlog Release Release Planning Iterations (1-4 weeks long) Iteration Planning Daily standup Demo Iteration Retrospective Release Retrospective

The Backlog A ranked list of stories What is a story? A scenario that we must do work to implement which results in business value Typically in the form of: “As a, I want so that ” Good stories meet the INVEST criteria

Example Post a Job As a recruiter I want to be able to post a job to the web site so that I can generate interest in the position.

Prioritization Doesn’t Stop The product owner re-prioritizes after each iteration We’ve learned more about the business Let’s take advantage of that The further down the list something is, the less defined it will be and the less important it is to prioritize precisely

What Does an Iteration Look Like? 1 week to 1 month 24 hours Product Backlog As prioritized by Product Owner Iteration Backlog Backlog tasks expanded by team Potentially Shippable Product Increment Daily Stand up Meeting Done since last meeting Will do for next meeting Obstacles Iteration Iteration Planning Meeting Review Product Backlog Define Iteration Goals Estimate Iteration Backlog Commit Demo Show off what you’ve done Retrospective Inspect and Adapt Vision and Release Plan

Iteration Planning Define scope as a team Define a clear understanding of “done” Plan just enough that you can commit

Before you Start Well Groomed Product Backlog Prioritized Estimated Iteration Theme/Goal Estimated Prioritized

A Typical Iteration Planning Session Review Iteration Goals Discuss Logistics Understand the Stories Task out the stories Commit Typical Duration: 3-8 hours Attendees: Product owner Scrum master Delivery team Materials: Stories (cards or online) Task planning material (cards, whiteboard, online) Planning/estimation materials (e.g. planning poker cards)

Review Iteration Goals Product Owner Explain the Goal (theme) Make priority adjustments based on feedback from delivery team Delivery Team ASK QUESTIONS Understand the Goal, not just the desired features

Discuss Logistics Review Historical Velocity Review Team Availability Holidays / Vacations Meetings L3 Support, outside commitment, etc Review the Definition of Done

Understand the Stories Product Owner Explain the Story Explain the “Why” (“as a I so that ”) Break down stories as needed Elaborate on acceptance criteria/tests Make priority adjustments based on feedback from delivery team Delivery Team Understand the story Understand and question the acceptance criteria (how will you build a test for each? What about…) Validate the size/implementability

Task out the Stories Define tasks Team members sign up for tasks Estimate the task work Validate capacity again

Commit Everyone agrees the iteration is doable No really…EVERYONE agrees Use disagreement and uneasiness in team members to drive out hidden risks, tasks, and issues Drive agreement with a fist of five Absolutely, no question I think this is good and will make it happen I can support this I’m uneasy about this and think we need to talk it out some more Let’s continue discussing this idea in the parking lot

Managing your Tasks

Daily Standup What did I do yesterday? What will I do today? What’s blocking me? Quick High Value

Demo Show off what you got “done” in the iteration Should be from the user’s perspective No slides No code Just working software If a customer could attend your demo, you’re doing it right

Retrospective Review the process over the last iteration What went well? What went poorly? How can we do things better? Take the top 1-3 items and make sure you make progress on them in the next iteration Improve

Estimating Identify a medium sized story that is well understood; call it a 5 Now estimate other stories relative to that Is it about the same, ½ as difficult, twice as difficult? Use Fibonacci numbers: 1, 2, 3, 5, 8, 13, 21 If bigger than that or if too hard to estimate, split the story Tackle as a team; Planning poker can help (

Velocity Now that stories have sizes, you can track how many points you typically get done in an iteration You can now use this to predict future completion rates

Structuring Teams It is preferable to have each team have the ability to complete its work by itself In other words, instead of a team per component, have teams with members who have knowledge of each component that will need to change to deliver something

Release Planning Kick off / Overview Break Out Sessions Review Results

Release Planning Deliverables Plan for each Iteration Assumptions Dependencies Risks

Release Planning Wrap Up Go through each iteration for each team Are things synched up across teams? Are you attacking the most important stories? Does the team believe in the results?

After The Meeting Capture the results in your tool of choice Update after each iteration

Anti-Goals of Release Planning Release Planning is not a commitment!

Committing Move towards themes Commit to no more than 50% No longer in or out but relative priority

Tracking the Release

Managing Risk Waterfall Agile Time, scope and resources “fixed” Changing one affects the others as well as quality Manage the plan Try to minimize change Time, resources and quality fixed Changing time or resources affects scope Manage the priorities Change as you learn more

Life in an Iteration Once in an iteration, scope is fixed Do the work in small increments Work closely with others It isn’t done until it is really done If it doesn’t add value, don’t do it (or minimize) Leave decisions to the last responsible moment It is a team effort

Feedback is key Do a little Get feedback Respond to feedback by doing a little more Automation helps decrease time to get feedback Nightly/continuous build Unit tests Acceptance tests

Agile Documentation Keep to the minimal responsible amount of doc No more than you need at any point in time Everything should add value If not, try to reduce or eliminate it Streamline so that the iteration is not interrupted Wiki’s work well for collaborative design

Management Is Not Enough! Engineering practices must change Avoid specialization Keep design simple and refactor as needed (YAGNI) Create good automated regression tests Integrate frequently Peer review Consider Test Driven Development (or Behavior Driven Development) Pair Programming Co-location

Staying Releasable Goal: Could release after any iteration Reality: Ability to do this will evolve over time Staying releasable gives you the ability to more easily change direction / take on new things It also tends to improve quality And predictability

Definition of Done You need to define for your environment Definition will evolve over time Example: Unit tests written and passed Acceptance tests automated and passed User facing documentation written Checked in to the build

Questions? Walter Bodwell Planigle