Agile Project Management



Similar documents
Agile Project Management Mapping the PMBOK Guide to Agile Practices. Michele Sliger

Introduction to Agile Scrum

Scrum for Managers, Zurich March 2010

Introduction to Agile Methods

Business Analysts in an Agile World. Christian Antoine

CSSE 372 Software Project Management: More Agile Project Management

Agile Software Development with Scrum. Jeff Sutherland Gabrielle Benefield

Agile Project Management

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Agile Software Development

D25-2. Agile and Scrum Introduction

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

Digital Transformation of the Enterprise for SMAC: Can Scrum help?

Agile Projects 7. Agile Project Management 21

Capstone Agile Model (CAM)

RISK MANAGMENT ON AN AGILE PROJECT

Introduction to Agile Software Development. EECS 690 Agile Software Development

Agile with XP and Scrum

PMP vs. Scrum Master

Agile QA s Revolutionary Impact on Project Management

CSSE 372 Software Project Management: Managing Agile Projects

Software Life Cycles and Configuration Management

No one has to change. Survival is optional. - W. Edwards Deming - Continue your Beyond Budgeting Journey with help from Agile, Lean and Scrum

Introduction to Agile Software Development

An Introduction to Scrum

Mike Cohn - background

1. CMMI and Scrum TWO BRANCHES OF SOFTWARE DEVELOPMENT

An Agile Project Management Model

Introduction to Agile

Mitigating Risk with Agile Development. Rich Mironov CMO, Enthiosys

The Scrum Guide. The Definitive Guide to Scrum: The Rules of the Game. July Developed and sustained by Ken Schwaber and Jeff Sutherland

Lean Agile Scrum Business Value Development and Delivery using Agility. Brenden McGlinchey Software Done Right, Inc.

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Agile and Secure: Can We Be Both?

Software Requirements and Specification

Distributed Agile Development. Bapiraju Nandury Product Development Manager Bangalore Development Centre

Agile Inspired Risk Mitigation Techniques for Software Development Projects

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

Introduction to Agile and Scrum

A Viable Systems Engineering Approach. Presented by: Dick Carlson

Agile Software Development and Service Science

Atern The latest version of the DSDM approach which makes DSDM appropriate to all types of project.

Introduction to Agile Software Development Process. Software Development Life Cycles

What does it mean to be Agile. Marek Majchrzak, Andrzej Bednarz Wrocław,

"Bezpieczny Projekt"

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes

Course Title: Managing the Agile Product Development Life Cycle

Software processes that are:

Agile in Financial Services A Framework in Focus

Agile Beyond The Team 1

Mastering the Iteration: An Agile White Paper

Testing in the Enterprise using SCRUM Stretching Scrum to Accommodate Legacy & Large- Scale Testing Activity

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson Jyväskylä

Issues in Internet Design and Development

Agile Software Development. Stefan Balbo / Patrick Dolemieux

How Product Management Must Change To Enable the Agile Enterprise

Chapter 1 - Introduction

SWEN - Software Engineering Network Donnerstag 06. Mai. 2010

Agile Project Management: Adapting project behaviors to the software development environment

How To Understand The Limitations Of An Agile Software Development

Getting Agile with Scrum. Mike Cohn - background

INTRODUCTION TO AGILE METHODS

SCRUM BODY OF KNOWLEDGE (SBOK Guide)

Scrum methodology report

Water-Scrum-Fall Agile Reality for Large Organisations. By Manav Mehan Principal Agile consultant

Agile Fundamentals, ROI and Engineering Best Practices. Rich Mironov Principal, Mironov Consulting

PMBOK? You Can Have Both! June 10, Presented by:

How to manage agile development? Rose Pruyne Jack Reed

The traditional project management uses conventional methods in software project management process.

Agile Software Development in the Large

A Software Project Management Innovation (SPM) Methodology: A Novel Method for Agile Software Development

What Does Large Mean? Copyright 2003 by N. Josuttis and J. Eckstein 3. Why is Large an Issue?

History of Agile Methods

Agile Overview. 30,000 perspective. Juha Salenius CSPO CSM PMI-ACP PMP SCGMIS Workshop January 23 rd, 2013

Agile Software Development and Service Science

Expert Reference Series of White Papers. Intersecting Project Management and Business Analysis

AgileSoftwareDevelopmentandTestingApproachandChallengesinAdvancedDistributedSystems

Role of the Business Analyst in an Agile Project

Agile-Waterfall Hybrid Jessica LaGoy, MS, PMP

Course Title: Planning and Managing Agile Projects

Agile Software Engineering Practice to Improve Project Success

Agile Development Overview

5 Levels of Agile Planning: From Enterprise Product Vision to Team Stand-up

Scrum. SE Presentation. Anurag Dodeja Spring 2010

Agile Project Management

Lean vs. Agile similarities and differences Created by Stephen Barkar -

WHITEPAPER GET MORE WORK DONE: A MANAGER S GUIDE TO MIXING AGILE AND WATERFALL

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

When is Agile the Best Project Management Method? Lana Tylka

Agile Software Development Methodologies and Its Quality Assurance

Applying Lean on Agile Scrum Development Methodology

Agile Notetaker & Scrum Reference. Designed by Axosoft, the creators of OnTime the #1 selling scrum software.

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007

Agile Estimating: My DPS Dissertation

Transcription:

Agile Project Management Overview Fabrizio Morando Application Development Manager martedì 20 novembre 2012

What is Agile? Agile is used to denote the ability of Agile Methods to respond to changing requirement in a controlled but flexible manner Agile methodologies can equip experienced Project Managers with new tools to manage projects that are set in environments of constant change.

Why Agile Agile software developmment is a group of lightweight software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross functional teams. Main elements of agile: o Iterative o Adaptable o Rapid o Cooperative o Quality Driven

Why do we need new Project Management Methods? Information Technology (as well as other industries) are continuously being challenged by emerging technologies and requirements. Traditional Project Management Best Practices suggest that we should lock down requirements and setup a change control system up front. Traditional Project Management practices also tend to refer back to the original requirements (and/or the contract) when enforcing change control.

Close to Certainty Far from Certainty Requirements Project noise level Far from Agreement Complex Anarchy Close to Agreement Simple Technology Source: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile Software Development with Scrum by Ken Schwaber and Mike Beedle.

Traditional Project Management Practices can Lead to. Chaos Junior Project Managers tend to either: allow too much uncontrolled changed to take place (to ensure customer satisfaction) or are too strict in allowing for change (resulting in irate customers).

Traditional Project Management Practices can Lead to. Dramatic Project Underperformance According to the Standish Group s Chaos Reports, only 16 percent of IT projects are successful, the remainder are: Late. Over Budget. Deliver only a fraction of original scope in order to meet budget restrictions. Cancelled.

What Is Different About Agile Methods? They are all about managing the impact of change on a project. They allow change to be introduced into a project in a orderly way that that attempts to maximize the benefits for the sponsor. They control the risks that the change introduces.

What is different about Agile Methods? Iterative and Incremental development that break down development into a number of repeating cycles called Iterations Short iterations are used to keep the feedback flowing (allowing for increased responsiveness to change and reducing the risk of building the wrong thing). Open, Flexible and Extensive design using open standards whenever possible

What is different about Agile Methods? Empowered Teams Experienced specialists are encouraged to work out the detail design on their own. Personal Communication Rather than relying on written documentation to communicate design decisions, technical approaches and other typically documented items, agile method suggest that the team work in the same physical space (colocation). Use of white boards in the work area is encouraged rather than lengthy formal detail design documentation.

The Benefits of Being Agile Reducing Risk The benefits from improved control and improved communication lead to reduced risks. Examples of risks include: Risk of building (or doing) the wrong thing. Did the sponsor get what they asked for but not what they actually wanted? Risk of building the right thing poorly. For example, was the product poorly crafted. Was it thoroughly tested as a part of each iteration? Is the final produce extensible? Risk of being placed into an endless cycle of design updates and reviews due to changing requirements or high levels of complexity

The Benefits of Being Agile Relief from continual design revisions -- Agile Methods are of the most benefit when applied to projects where the requirements are either unclear or evolving

The Benefits of Being Agile Improved Control Agile methods allow the Project Manager to their control over the project in high change environment. Utilizing less rigid, yet structured agile methodologies, control is through a number of mechanisms.

The Benefits of Being Agile (Improved Control) Frequent delivery of working code allows progress to be objectively measured. Early and frequent stakeholder feedback allows the Project Manager to redirect project priorities when needed to ensure that real value is delivered. Misunderstandings are cleared up early in the project life-cycle. The sponsor is able to end the project earlier than scheduled and still receive value.

The Benefits of Being Agile (Improved Control) Short daily meetings allow team members to share both successes and problems with each other. Each team member should share: What they have just completed (so that team members working on dependent tasks are notified). What are they going to work on next (allows other team members to contribute information that may be helpful to the task). Issues that are slowing down or halting their progress (so that other team members and/or the Project Manager can provide assistance).

Waterfall (traditional) way to plan a software project. Analyze the problem Design the solution Implement the code (Execution) Test the code Deploy the code. Done

Agile method of planning a software development project. Initial Analysis Initial Design (When problems are identified they are pushed back into the analysis step, to improve it). Initial coding, push back identified design problems back. Perform another iteration of design to improve it. Initial Testing. Identified problems are feed back into another iteration of coding. Integration and deployment. Feedback any problems you encounter into the process. A system of incremental/continuous improvement.

Sequential vs. overlapping development Requirements Design Code Test Rather than doing all of one thing at a time......agile teams do a little of everything all the time Source: The New New Product Development Game by Takeuchi and Nonaka. Harvard Business Review, January 1986.

Agile methods are all about incremental progress Working incrementally allows the most critical portions of the product to be delivered earlier. Working incrementally can help reduce risk by receiving stakeholder feedback in increments rather than at the end. Working incrementally allows project teams to continuously make small corrections along the way. Each incremental corrections contributes to the overall quality of the entire project.

Agile Sweat Spots Dedicated developers Experienced developers Small collocated teams Automated Regression testing Easy to access users.

Waterfall vs. Agile Money for information (waterfall) Money for flexibility (agile)

Agile Documentation A document is any artifact external to source code whose purpose is to convey information in a persistent manner.

Reasons to Create Documentation Project stakeholders require it (a Business decision with costs and benefits associated with it) To define a contract model (to define how your system and an external one interact with each other). Typically required when an external resource controls an IT resource your system requires (e.g. DB, Application or IT service)

Reasons to Create Documentation To support communication with an external group (e.g. a non-colocated group). If it will assist you in thinking something through.

When is Documentation Agile Generally when it is Good Enough, but no more. This of course is subjective. When it maximizes stakeholder investment. When the documentation contains just enough information to fulfill its purpose (and no more). Is purpose driven. If you are not clear about the purpose you are creating the document, you should not be doing so. When it contains information that is Less Likely to change.

When is Documentation Agile When the documentation contains critical information not readily available. When the documents have a specific customer and facilitate the work efforts of that customer. When the documents are sufficiently indexed, accurate, consistent and detailed.

UN APPROCCIO VALUE-UP AL SOFTWARE DEVELOPMENT Work-down Value-up Plan Task 1 Task 2 Task 3 Task 4 L approccio Work-Down è la scomposizione del progetto in task e successivo smarcamento degli stessi Nelle metodologie Value-up si da priorità al valore aggiunto prodotto ad ogni iteration piuttosto che ai task completati

Why working software Working software encourages feedback when users can see and touch the product they can immediately tell if it is what they want Working software helps a team gauge its progress work shown to be complete allows for real progress to be identified Working software allows product to be shipped early if desired the opion to ship early can be very valuable to your customer to allow for markets that change rapidly

The Agile Manifesto a statement of values Individuals and interactions Working software Customer collaboration Responding to change over over over over Process and tools Comprehensive documentation Contract negotiation Following a plan Source: www.agilemanifesto.org

Going through SCRUM Iterative and adaptive Customer can see quickly at what stage the development is Every 2-4 week there s a potentially shippabile product increment Feedback is given routinely and often Plans are in short durations (iterations) so change can be implemented quicker Wasted development is reduced Prioritized features developed as mandatory

What does Agile look like?

Survey of Agile Methods Dynamic System Development Method (Dane Faulkner) Adaptive Software Development (Jim Highsmith) Crystal (Alistair Cockburn) SCRUM (Ken Schwaber) XP (Kent Beck) Lean Software Development (Mary Poppendieck) Feature Driven Development (Jeff DeLuca) Agile RUP

A Generalized Agile Process Release Iteration 1 Iteration 2 Iteration 3 Iteration Backlog Feature 1 Feature 2 Feature 3a Feature 3b Feature 4a Feature 4b Feature 5 Feature 4c Feature 6 Feature 7 Feature 8 Feature 9.

An Agile Iteration

What project management paradigms are we breaking?

What Paradigms Are We Breaking? Agile Development Process Waterfall Development Iterative Development Measure of Success Conformance to Plan Culture Command-and-Control Design Big Design Up Front QA Tool Support Iterative and Incremental Development Parallel Development Acceptance Test Driven Development Response to Change Leadership /Collaborative Continuous Big Test on Backend Continuous Highly specific Fully Integrated

New Measures of Success Agile Development Process Measure of Success Waterfall Development Iterative Development Iterative and Incremental Development Conformance to Plan Critical Path ------------------------Work Breakdown Structure ----------------------------------------% Complete of tasks -------------Serial functions -------------------Procedural process ----------------Fixed scope ------------------------- Acceptance Test Driven Development Parallel Development Response to Change Critical Chain Feature Breakdown Structure # of Features accepted Parallel functions Empirical time boxes Fixed time and resources

Culture of Discipline and Collaboration Agile Development Process Culture Waterfall Development Iterative Development Iterative and Incremental Development Command-and-Control Culture of sign-offs ----------------High-level plans = Roll-up of detailed plans -----------------------Detailed Planning early -----------Protect the Project Scope ---------Demonstrate at End ----------------Weekly PM meetings -------------- Parallel Development Acceptance Test Driven Development Leadership /Collaborative Culture of learning Gross estimates of backlog create the high-level plans Detailed Planning in chunks Protect the Iteration Scope Demonstrate every Iteration Daily Stand-up meetings

Continuous Design & Test Agile Development Process Waterfall Development Design Big Design Up Front QA Iterative Development Iterative and Incremental Development Big Test on Backend Parallel Development Acceptance Test Driven Development Continuous Continuous Contract with Customer ---------- Partner with Customer Big Design sign off --------------- LPM Design Decisions Dreaded Integration phase ------- Continuous Integration Never miss Dev. Cmpt date ----- Never break the build Work in big phases --------------- Work in small chunks Testing squeezed ----------------- Low Features squeezed

Agile Project Tooling Agile Development Process Tool Support Waterfall Development Iterative Development Iterative and Incremental Development Highly specific Focus on Individuals ------------Optimize the parts ---------------Integrate with batch update ----Manage large inventories -------Un-integrated with the WBS ---Visibility through manual PM report ------------------------------- Parallel Development Acceptance Test Driven Development Fully Integrated Focus on the team Optimize the whole Tight integration Manage rapid throughput Manage the FBS Real-time visibility up, down and across the team

Benefits from Implementing Agile 1. Deliver benefits early (First Iteration is demonstrable) 2. Avoid significant rework by only doing just-in-time detailed design 3. Avoid dead-end design decisions by managing with LPM decisions and trade-off matrix 4. Raise quality by moving testing forward in the process 5. Become responsive by supporting scope adjustments every iteration 6. Become reliable by instituting regular heartbeats to the team 7. Increase estimating accuracy by working in small chunks 8. Decrease risk by always having working software 9. Increase throughput via real-time visibility 10. Increase team moral by dropping the death marches.

Thank You