You are on page 1of 41

Project Management

Project Management

Objective
At the conclusion the audience will have a better understanding of the term agile in context with development projects.

Project Management

What is AGILE?
Agile is a method that uses continuous stakeholder feedback to deliver high quality code through use cases and a series of short time-boxed development iterations.

Project Management
What is Agile? Agile is not a methodology, but is a conceptual framework for undertaking software engineering projects.
Agile Manifesto (2001 Agile Alliance, 17 key individuals) Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
Agile Principles (agilemanifesto.org/principles.html)
1 2 3 4 5 6 7 8 9 10 11 12 Our highest priority is to satisfy the customer through early and continuous delivery of valuable software Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale Business people and developers must work together daily during the project Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation Working software is the primary measure of progress Agile processes promote sustainable development. Sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to tech. excellence and good design enhances agility Simplicity--the art of maximizing the amount of work not done--is essential The best architectures, requirements, and designs emerge from self-organizing teams At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly Adaptive Dynamic Systems Development Method (DSDM) Feature Driven Development Open-UP Scrum

Agile Models

Key Attributes
Based on values of simplicity/communication/feedback/courage Start with simple solution, add complexity through refactoring Frequent feedback through unit, integration and acceptance testing Four development phases: coding, testing, listening, designing Daily 15-minute Scrum to discuss work for the day Divide projects into 30-day Sprints Backlog of requirements to be addressed in each Sprint Retrospect at end of Sprint to review progress / revise backlog

eXtreme Programming (XP)

Simplified Rational Unified Process (RUP): reduced no. of disciplines Uses RUPs four phases: inception, elaboration, construction, transition Key mechanisms: frequent delivery; reflective improvement; close communication with personal safety; access to expert users; automated testing; frequent integration; and configuration management Repeating cycles: speculate, collaborate, learn Provides for continuous learning / adaptation to changing project state Three primary phases: pre-project, project life-cycle , post-project Project life-cycle phase consists of feasibility study, business study, functional model iteration, design/build iteration, and implementation Key mechanisms: more value on design then the code is the design; model-driven; develop feature list; and plan, design, build by feature

Crystal

Project Management

Agile Adoption Challenges


Potential pitfalls:
Resistance to collaboration Waterfall culture Low-trust environment

Unwillingness to change
Rigid management hierarchy Little development experience Lack of automated tool support

Very expensive to redeploy the system. Significant dependencies on new hardware development. They feel they are doing a good job with non-agile approaches.

Project Management
Agile (or Rapid) techniques have been used for decades, to resolve key challenges that adversely impact solution development projects
Key Challenges
Requirements are dynamic and difficult to lock down

Common Agile techniques


BUSINESS participation as a project team member Joint requirements, design and prototyping sessions Use of visual modelling and prototyping tools Documentation of results vs. targets Team elaboration of requirements with flexible scope change Iterative approach allowing key components to be developed to address Ill know it when I see it mentality Prioritization of requirements based on business objectives Time boxing to fixed dates and fixed cost Incremental delivery of highest priority project components first Decomposition of large initiatives into multiple releases Small, dedicated, co-located teams in teaming environment Lean process framework and limited documentation Architects participate and direct lead developers High risk proof of concepts are performed early in the project Right skills are dedicated to the project team

Deliver business value more quickly

Reduce risk of adopting new technologies

Project Management

Why Are Organizations Adopting Agile Strategies?


Dr. Dobbs Journal (DDJ) 2008 Project Success Survey: Agile teams have an average success rate of 70% compared with 66% for traditional/waterfall teams Agile teams produce higher quality work, are quicker to deliver, are more likely to deliver the right functionality, and more likely to provide greater ROI than traditional teams Detailed results online at www.ambysoft.com/surveys/
4.9 5.0

Quality 0.4

2.3

Functionality

6.0 5.6 1.8 2.7 3.0 0.8 4.4 4.0 0.8 0.8 3.9 Agile Iterative Traditional Ad-Hoc

Money

0.2

Time

Project Management

Being Agile Needs More than a Set of Practices; It Needs a Change in Thinking!
The Old Way
Change Avoidance Plan-driven Prescriptive

The Agile Way


Change Acceptance Empirical Feedback Reactive

Task-oriented
Mistrust Faith in Process and Technology Technology Driving People Abstraction for Understanding Same Time, Same Place

Goal-oriented
Trust Faith in People People Supported by Technology Abstraction for Execution Anywhere, Anytime

The biggest risks for agile adoption are not processes or tools it's fear of change and misunderstanding agile values.

Project Management
The case for Agile with Discipline from the Project Management perspective.
Agile Role of PM We dont need any stinking project managers Planning approach Just-in-time, next iteration focused, architecture and usability often fall through the cracks Many missed due to lack of planning High focus on blocker removal on a daily basis Burn down of effort within an iteration is often the only stakeholder level status provided Agile With Discipline PM is able to empower and shepherd the team, and keeps team focused and productive End-to-end planning for agile technique usage with participation of key specialists Risks are identified and mitigated by proactive, out of the box thinking Daily issue identification and resolution PM is always aware of status, and provides summary to Stakeholders on a weekly basis including a burn down of story completion against the iteration baseline Baseline three iterations, then allow variation of prioritized scope within fixed deadline and budget Traditional PM often becomes an un-empowered project administrator Commit too early to levels of detail that are unknown throughout waterfall phases Too often accepted and reacted to and allowed to adversely impact delivery Issue identification lags the need for the team to have it resolved Something the PM records during their one weekly meeting with the team

Risks

Issues

Status

Scope Mgmt

Goals for 30 day iterations and sprint selected from backlog of requirements

Change to scope = change to deadline and budget

Project Management

Key Messages Overview Position Paper


1. Project Management is still required. 2. Agile Projects must comply with the Business Management System where they operate. 3. Agile Projects requires some type of Project Management System tailored the the existing project management methodology. 4. Agile projects typically form a component or portion of a larger project Requires a light PM system at the Scrum level Most of the PM system resides at the overall project level 5. Existing Agile management methods (e.g., Scrum) form a minimum PM system with many activities of the total PM system residing outside of the Scrum.

10

Project Management

Mainstream Agile Practices


Continuous Integration Test Drive Development (TDD) Refactoring Regular Deployment of Working Software Non-Solo Development Configuration Management Agile Testing Agile Documentation

11

Project Management

Length of Iterations (% respondents)


82% have iterations between 1 and 4 weeks in length:
No Iterations > 8 Weeks 7-8 Weeks 5-6 Weeks 4 Weeks 3 Weeks 2 Weeks 1 Week < 1 Week 3%
Source: Dr Dobbs 2008 Agile Adoption Survey
12

6% 1% 2% 7% 23% 17% 33% 9%

Project Management

Scrum Management Methods Project Overview


1. Scrum has emerged as the predominate method to manage Agile Projects.

2. Scrum has well defined methods to manage code development and test.
3. These methods form a minimum PM system within the Scrum
Minimum planning is required in the form of a Release plan and Iteration Plan. Tracking and Control occurs via Daily Scrum Meeting and Burn down charts. Technical Change Management occurs as a byproduct of Agile. Risk is minimized via frequent stakeholder reviews and input. Issue Management occurs informally and through the Daily Scrum meeting.

13

Project Management
Role of theOverview Project Project Manager in managing the non Agile aspects of the project which is similar to managing a traditional project. However, managing the Agile portions requires some changes in behavior.
1. Overall Project requires a Project Management system and managed by a Project Manager 2. Project Manager must off load or buffer the Scrum from activities that are not related to code development and test to enable the Scrum to be fully Agile 3. If the Project Manager is also the Scrum Master then the role must change from PM of the overall project to Facilitator when working with the Scrum 4. Role of the Scrum Master is different that PM and is defined by the Agile approach as a facilitator and not a manager.

14

Project Management

The overall project with a project management system needs to offload or buffer the Scrum Team from:
1. Business Management System Requirements.
2. Activities not related to code development and unit testing. 3. Executive and Management reporting.

Enable the Scrum team to remain totally Agile.

15

Project Management

Disciplined Agile Teams


1. Produce working software on a regular basis. 2. Do continuous regression testing, and better yet take a Test-Driven Development (TDD) approach. 3. Work closely with their stakeholders, ideally on a daily basis. 4. Are self-organizing, and disciplined teams work within an appropriate governance framework. 5. Regularly reflect, and measure, on how they work together and then act to improve on their findings in a timely manner.

16

Project Management

Agile project teams, when compared to waterfall project teams.


Enjoy higher success rates. Deliver higher quality. Have greater levels of stakeholder satisfaction. Provide better return on investment (ROI).

Deliver systems to market sooner.

17

Project Management

Improvements from using Agile Methods

82%

77%

37%

78%

Source: Dr. Dobbs Agile Community Survey

18

Project Management

Before starting an Project Overview Agile Project, the Project Manager should:
1. Become familiar with AGILE and take some education. 2. Complete specific Agile training for your Company and Business Unit. 3. Read materials on the Agile. 4. Contact other Agile Leaders within your organization, business unit, company, industry and try to get any other guidance.

19

Project Management
Agile Development combines Iterative & Incremental Delivery
Waterfall

Concept

Plan

Develop A/B/C Agile

Qualify

Roll out

Iteration 1 Iteration 2
Concept Integrated & Aligned
Requirements Design Develop/Test User Acceptance Usability Test

Iteration 3
Brands (above Client Id)
Requirements Design Develop/Test User Acceptance Usability Test

Iteration 4
Refine & Add Function
Requirements Design Develop/Test User Acceptance Usability Test

Iteration n
Refine & Add Function
Requirements Design Develop/Test User Acceptance Usability Test

SMB
(Europe & AP)

Rollout
User Acceptance Usability Test

Requirements Design Develop/Test User Acceptance Usability Test

Integration Test with Integration Test with XXX to BBB XXX to AAA

Prepare Education & Communications for Users

20

Project Management
Pre-Concept

Ask about the handout!

Concept Phase prior to Discovery Session


Create High Level Architecture / System Context

Develop Target Operating Model

C O N C E P T

Define Critical Requirements

Define Stakeholders

Create the Vision

Service Offering Questionaire

Define User Roles

Write Initial User Stories

Initial prioritization of user stories

Concept Phase in Discovery Session


Estimate Complexity/ Intensity high priority stories

Confirm Critical Requirements

Confirm User Roles

Write Additional User Stories

Confirm prioritization of user stories

User Story Review

Create Estimate For Release

Plan the release

Plan Iteration 1 and 2

Develop Agile Statement of Work

P L A N , D E V E L O P , Q U A L I F Y

Decide on user stories that can be implemented

Declare Iteration Goal

Decompose Stories into Tasks

Size the tasks in ideal hours

Estimate Iteration burndown

Iteration Planning ( Iteration 1/2 planning is done as part of discovery session)

Write all test cases

Refine Requirements

User Experience Design

Daily scrums

Monitor velocity for iteration and Release

Present the value to the client

Reflect on the process

Update Burndown for Release

Elaborate Business Model (Level 5-7)

Detail Design

Test Driven Development

Monitor Iteration Burndown

Iteration Reflect
Periodic Virtual DCP Report of Delivered Content / Interim Estimates: Cadence Determined at Concept Exit

April 2008
Raleigh

Continuous Integration

System / User Experience Testing

User Acceptance Testing

Iteration Create the Value

21

Project Management

Iterations allow for mid course corrections


Planned Completion

Zone of success
Increasing Knowledge Actual Completion

Start

Planned Path Actual Path

As Knowledge increases Leaders use iterations to guide project towards enhanced goal

22

Project Management

Closing thoughts about Projects


The more desperate the situation the more optimistic the progress report. Nothing is impossible for the person who doesnt have to do it. If at first you dont succeed, rename the project Everyone wants a strong project manager - until they get him. The worst project managers sleep at night. Projects dont fail in the end; they fail at conception.

Source: Znet
23

Project Management

Agile Manifesto for Agile Software Development


We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.

http://agilemanifesto.org

24

Project Management

Principles behind the Agile Manifesto


We follow these principles:
Our highest priority is to satisfy the customerthrough early and continuous deliveryof valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility.

Simplicity--the art of maximizing the amount of work not done--is essential.


The best architectures, requirements, and designs emerge from self-organizing teams.

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its
behavior accordingly.

The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

http://agilemanifesto.org/principles.html

25

Project Management

26

Project Management

The SCRUM Process

NOTE: Sprint and Iteration are used interchangeably and mean the same thing

Project Management

Project Management

Pigs and Chickens

Project Management
SCRUM Roles

Project Management
SCRUMS Key Artifacts

Project Management
Key Meetings
Sprint Planning Meeting
Hosted by ScrumMaster Attended by all Input: Product backlog, existing product, business and technology conditions 1. Select highest priority items in Backlog; declare the sprint goals

Daily Scrum
Hosted by ScrumMaster

2.

Team turns selected items into Sprint Backlog

Attended by development team


Same time every day Answer 1. What did you do yesterday? What will you do today? Whats In your way?

Output: Sprint Goal, Sprint Backlog

Sprint Review Meeting


Hosted by ScrumMaster Attended by all Informal, 4 hour, informational Team demos increment All Discuss Hold reflection Announce next Sprint Planning Meeting

NOT status for the ScrumMaster BUT Commitments in front of peers

2. 3.

Team updates Sprint Backlog Scrum Master updates Blocks List

Project Management
The SCRUM Process

Project Management

Daily Scrums
Daily 15 minute status meeting:

Same place and time every day;


Meeting room; Chickens and pigs; Three questions; What have you done since last meeting? What will you do before next meeting? What is in your way? Impediments; and

Decisions

Project Management

Scrum Masters
Responsible for: 1. Removing the barriers between development and the customer so the customer directly drives development; 2. Teaching the customer how to maximize ROI and meet their objectives through Scrum; 3. Improving the lives of the development team by facilitating creativity and empowerment; 4. Improving the productivity of the development team in any way possible; and, 5. Improving the engineering practices and tools so each increment of functionality is potentially shippable.
A Scrum Master is always driving towards conformance to VALUE, not conformance to PLAN.

Project Management

Done ?!

Project Management

Definition of Done
At the end of each iteration: No Sev 1s or Sev 2s No Sev 3s or Sev 4s the team has not agreed to Code is unit tested, function tested, system tested, performance tested, tested end-to-end, and included in appropriate green threads A meaningful stakeholder review has been conducted

Can this really be done? This puts a high premium on: Valuable, maintained, nested automation Appropriate code coverage (e.g. 80%) True test-driven development Avoiding technical debt Continuous integration (e.g. Cruise Control) Really understanding what quality code looks like

Project Management

Technical Debt

Bug Backlog

Time Iterative Waterfall

Project Management
Nokia Checklist You know youre not iterative when
Iterations are longer than 6 weeks. They are not time-boxed. Team tries to finish all specification before programming. Iteration doesnt result in workable code. Iterations dont include testing.

You know you do not use Scrum when


The team doesnt know who the product owner is. Your product backlog doesnt contain estimates.

You cannot generate a release burn-down chart and you dont know your velocity.
There is a project manager in the project who is interfering with the team (not the Scrum Master).

Project Management

Project Management

41