Agile Project Management

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.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
What is Agile? Agile is a software methodology based on iterative and incremental development, where requirements and solutions evolve through collaboration.
Agile 101.
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.
Intro to Scrum. What is Scrum? An answer to traditional “fixed cost / strict requirements” contracts which had very high rates of failure Recognizes the.
NAUG NAUG Knowledge Evening – th February 2007.
The Business Analyst Role in Agile Projects
Agile development By Sam Chamberlain. First a bit of history..
Agile-SCRUM. Introduction to SCRUM Sanil Xavier What is Scrum?
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.
Current Trends in Systems Develpment
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
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.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
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.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
What Is Agile? Agile is a group of software development methodologies Scrum Extreme Programming (XP) Lean Etc. Key Characteristics: Small increments Adaptive.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Presentation from: See Also: scrumreferencecard.com/ScrumReferenceCard.pdf.
Copyright © by Mark J. Sebern Software Engineering Process I SE 2800.
January 24, 2009 Agile Product Management Making Things Happen Walter Bodwell Planigle.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
AGILE - IMPLEMENTATION (C) CLARION TECHNOLOGIES. ability to move quickly and easily…. AGILE MEANING (LITERALLY)
Using Scrum to Improve Teamwork, Communication, Quality and Speed
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.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Scrum.
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Agile Training – Agile Overview
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
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.
Approaches to Systems Development
Summarizing Our Models to Date
Introduction to Agile Blue Ocean Workshops.
Agile Development – a new way of software development?
Scrum in Action.
Agile Development.
Presentation transcript:

Agile Project Management

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

Defining Agility Individuals and interactions over processes and tools Encourage engagement between functional areas Avoid using documents to hand off information Working software over comprehensive documentation Focus on incrementally attacking the problem Stay releasable

Defining Agility Customer collaboration over contract negotiation Prioritize based on business value Work together to ensure that value is maximized Responding to change over following a plan Plan just enough (no more than necessary) Defer to the last responsible moment Stay flexible and leverage what you’ve learned

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 <type of user>, I want <feature> so that <business value>” Good stories meet the INVEST criteria Mike Cohn proposes this form of story naming. Bill Wake came up with the INVEST model.

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.

Why Prioritize?

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? Daily Stand up Meeting Done since last meeting Will do for next meeting Obstacles 24 hours Iteration Iteration Planning Meeting Review Product Backlog Define Iteration Goals Estimate Iteration Backlog Commit 1 week to 1 month Demo Show off what you’ve done Backlog tasks expanded by team Iteration Backlog Potentially Shippable Product Increment Product Backlog As prioritized by Product Owner 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 This is the first level where you actually commit (at the team level). You plan out what you're going to accomplish in the next iteration (a matter of weeks). You get a clear understanding on what done is (acceptance criteria). Kanban has the potential to change thinking on this. Pull as you need. No estimation / commitment.

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

A Typical Iteration Planning Session Discuss Logistics Review iteration goals For each story (in Priority Order): Understand it Task it out Stop when “full” and commit Typical Duration: 1-4 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)

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

Review Iteration Goal(s) At a high level, what are we trying to accomplish this iteration Examples: Improve reporting Improve performance Get ready for beta

Understand the Story Discuss the story Discuss why it is important Elaborate on acceptance criteria/tests Make priority adjustments Break down as needed

Task out the Story Define tasks Estimate the work involved Double check ability to commit Track velocity from iteration to iteration so you can learn from past experience. The Product Owner can help in avoiding less valuable work

Repeat Until the team cannot take on more Split stories as necessary

Commit Everyone agrees the iteration is doable 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 about it 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? High Value What did I do yesterday? What will I do today? What’s blocking me? For the team Quick This is where individuals commit to what they're going to get done in the next day. It helps to ensure that the team is communicating. It encourages collaboration and highlights issues which are blocking the team. Parking Lot

Demo Show off what you got “done” in the iteration Should be from the user’s perspective No slides No code Just working software Communicate and Get Feedback 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 (www.planningpoker.com)

Velocity Now that stories have sizes, you can track how many points you typically get done in an iteration Only count points for stories that get accepted in the 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

Divvying Things Up Your goal is to divvy things up so that teams are working on items of around the same priority If each team able to get 3 blocks in the release, the highlighted stories won’t make it By better distributing stories amongst the teams, look which stories won’t make it Bad Good

Dependencies Approaches (go with the first one you can): Structure the teams so that a single team can solve the problem end to end Do the work within the same iteration Implement the service and then use it Stub out the service and implement it later Make sure the dependent teams (including external ones) are represented at release planning

Release Planning Kick off / Overview Break Out Sessions Review Results On release planning day itself, start with an overview to give everyone a clear picture of what you’re trying to accomplish. Break out into individual teams to do the real work. Get all the disciplines involved. Cross pollinate between teams. Bring it back together at the end so everyone knows / understands the results.

Release Planning Deliverables Plan for each Iteration Assumptions Dependencies Risks Iteration Plan High level stories for each iteration Name based on what the user gets out of that story Estimates for each story (in terms of how many people for that 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? Go through each iteration for each team and discuss: Iteration Stories Assumptions Dependencies Risks Are things synched up across teams? Are you attacking the most important stories? At the end, poll to find out whether the team believes in the result. This is a good time for a fist of five.

After The Meeting Capture the results in your tool of choice Update after each iteration Don’t do it and forget about it. Update frequently to keep everyone on the same page. Backlog should be updated at least once an iteration. Stories mapped to future iterations should be updated as well based on what you’ve learned.

Anti-Goals of Release Planning Release Planning is not a commitment! You are not committing to individual estimates You are not committing to which features will be done You’ll learn more as you go; Priorities will change Those items higher in the priority list have a higher likelihood of being done

Communicating the Future Themes give you room to be flexible We know we’re going to do something in this area We’ll decide as we go how much If a customer is asking about a particular feature, you can get into a discussion of priorities Well, that’s important, but we think this and this are more important, what do you think? Demos are a potential opportunity to get a customer involved Smaller, incremental releases generate feedback on what to dig into in more detail

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

Self Organizing Teams The team members know how they can best contribute They figure out how to divvy the work up / attack the problem The scrum master facilitates and is part of the team

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 Just enough to understand dependencies and mitigate risks Do you need this now? If not, try to reduce or eliminate it 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 Dedicated team members

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 wbodwell@planigle.com Twitter: @wbodwell www.planigle.com www.walterbodwell.com