An evolving view of project management

Post on 08-May-2015

68 views 0 download

description

A lecture given to Aston University Computer Science students on 5th November 2013.

transcript

An Evolving View of Project Management

Anthony Jones

Thanks for inviting me

Thanks for inviting me

Scope

• Discussion at level of “process models”

– Structured and agile methods of project management (PM)

• Based on my own experience and research

EFFECTIVE PROJECT MANAGEMENT

User Developer

User Developer

Business Client

User Developer

Business Client

(solution price – costs) * effectiveness = PROFIT

User Developer

Business Client

$

(solution price – costs) * effectiveness = PROFIT

User Developer

Business Client

Project Management

$

Effective project management

• Project management does not provide value by itself

• Project management influences the effectiveness of an existing system to amplify success

• Establishing and maintaining project management costs both time and money

• Effective project management represents a good return on investment (ROI)

* effectiveness

Project Management

KEY POINTS

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.

Manifesto for Agile software development

Individuals and interactions

over processes and tools

Project management methods...

Comprehensive packages? Or flexible tools?

Key points

• Project management is people management

• Software development methods as tools

• Favour explicit pragmatic application based on people, culture, context and goals

BUILDING YOUR PROJECT MANAGEMENT TOOLBOX

Which project management method?

Select project management tools based on TEAM MATURITY

Team maturity

• Roy Osherove – Teams have varying levels

of maturity

• Chaotic Stage – (most teams)

• Mid-Life stage • Mature stage

• I’m expanding Roy’s idea...

Instructed team SCRUM

• Newly formed, less experienced teams

• Needs support and control to be effective

• Hierarchical roles in “service model”

– Product Owner, Scrum Master, Developers

• Limited and supported decision making

• Regular reviews

Mature team MIXED METHODS

• More experienced team, strong relationships

• Needs steering and coaching to be effective

• Peer roles based on suitability

– Including leadership roles

• Decisions primarily based on discussion, convincing others and reaching a consensus

• Regular discussions

Mature team MIXED METHODS

Free team NOTHING!

• Very experienced, highly trusted teams

• Needs culture and community to be effective

• No distinctive roles

– Developers adopt roles according to suitability

• Actions based on everyone doing what they feel is the right thing for the business

The Valve handbook for new employees

Free team NOTHING!

• Fred George

– Programmer Anarchy

Programmer Anarchy

• Stand ups

• Unit tests

• Story narratives

• Acceptance tests

• Retrospectives

• Refactoring

• Estimates

• Patterns

• Iterations

• Continuous integration

• Mandatory pairing

Agile best practices not used:

Copyright © 2011 by Forward Internet Group, Ltd 10

Programmer Anarchy

• Customer ✓

• Project manager X

• Business analyst X

• Developer ✓

• Quality assurance / tester X

• Manager of programmers X

Copyright © 2011 by Forward Internet Group, Ltd 10

Agile roles used:

Key points

• Project management is people management

• Software development methods as tools

• Favour explicit pragmatic application based on people, culture, context and goals

ESTIMATION AS AN OPTIONAL TOOL

If there is time...

Estimation in project management

• Certain project management methods require the developers to estimate the complexity of a task or the time required to complete it

• Estimates may be used to prioritise work, to establish deadlines and release dates

• Is this an effective tool?

DEADLINES BASED ON ESTIMATES We don’t do this...

Estimate or guess?

• Depends on availability of relevant knowledge

• Task = known work + unknown work

Developer

3 days + ? days

Project Management

Erm...

Estimate or guess?

• Unknown work

– Learning

– Problem solving

– Emergent complexity

• Can you really estimate these?

• For familiar tasks these may be constrained unknowns that may be given a rough estimate

Estimate or guess?

• Depends on availability of relevant knowledge

• Task = known work + unknown work

Developer

3 days + around

2 days

Around 5 days

Project Management

Estimate or guess?

• Unknown work

– Learning

– Problem solving

– Emergent complexity

• Can you really estimate these?

Estimate or guess?

• Unknown work

– Learning

– Problem solving

– Emergent complexity

• Can you really estimate these?

Rubik’s Cube

Four stages of competence

• You don’t know what you don’t know!

Estimate or guess?

• Padding is a common tactic

• Task = known work + unknown work

Developer

3 days + ? days

Project Management

Erm...

Estimate or guess?

• Padding is a common tactic

• Task = known work + unknown work

Developer

(3 days + around 2 days) * 3

Project Management

Around 15 days?

Developer Project Management

User

Estimate or guess?

Around 15 days?

Developer Project Management

User

Estimate or guess?

$!?*&

Be careful when setting user expectations

More honest communication?

Can we agree on releases based on dates or features, but acknowledge that doing both is much harder?

... Ok.

User Project Management

ESTIMATION AS A USEFUL TOOL We do estimate sometimes...

Not having an estimate

Not having an estimate is a useful sign of uncertainty, risk or training opportunities

Developer Project Management

I don’t know

Ok.

Having different estimates

Developer

3 days

Developer

Around 8 days?

Having different estimates is another useful sign of uncertainty, risk or training opportunities

Estimates and even guesses can be useful for prioritisation

Developer

Task A is smaller than

Task B

Let’s do Task A

first

Project Management

Key points

• Project management is people management

• Software development methods as tools

• Favour explicit pragmatic application based on people, culture, context and goals

THANKS FOR LISTENING