cs3100 software project management agile approaches

19
CS3100 Software Project Management Agile Approaches

Upload: vincent-higgins

Post on 05-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS3100 Software Project Management Agile Approaches

CS3100Software Project Management

Agile Approaches

Page 2: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 2

Learning Objectives

1. Reflect on Traditional Approaches and their effectiveness in delivering successful projects?

2. Consider Alternative ways of running projects.

3. Understand XP as an example Agile methodology

Page 3: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 3

A Short History of Methodology

In the old days Small systems Adhoc development (No methodologies) Dijkstra (1968)

GOTO Statement Considered Harmful

Then (80s-90s) Large systems BIG methodologies Design up-front Long test-cycles (unpredictable & expensive)

Page 4: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 4

Justification for Methodologies

Late change is costly

Requirements

Analysis

Design

Implem

entation

Testing

Production

Cost

Page 5: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 5

Make changes early

Lots of up-front planning

Nail down requirements early

Waterfall mentality

Page 6: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 6

But does this stop change?

Does a client’s business stop changing?

What if the user wants changes?

How do we deal with this?

Page 7: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 7

More Modern View

Customer requirements change Accept it Be Adaptive

Lightweight (Agile) methodologies Late 90s brought the Agile Alliance

Page 8: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 8

Agile Alliance Manifesto

We are uncovering better ways of developing software by doing it and helping others do it.

Through this work we have come to value:

That is, while there is value in the items on the right, we value the items on the left more.

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Page 9: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 9

eXtreme Programming

- XP is an Agile Methodology

- A set of Core Principles

- Based on Four Values

- If principles are good then:

apply them in their extreme form!

Page 10: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 10

Values

1. Communication

2. Simplicity

3. Feedback

4. Courage

Page 11: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 11

- Regular Stand-up meetings

- Customer always available

Communication

Page 12: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 12

Simplicity

- Do only what is needed now

- Add functionality only as needed

- Don’t assume what is needed later

Page 13: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 13

Feedback

- From tests

- From customer

- From testers

- Feedback drives the process

Page 14: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 14

Courage

- Do what needs doing

- Throw stuff away

- Try alternatives

Page 15: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 15

XP Process

User Stories

Release

PlanningIteration

bugs

iterate

based on J Donvan Wells 2000www.extremeprogramming.org

Small

Releases

approvalAcceptance

Tests

Page 16: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 16

Planning Process Summarised

- User Stories written by customer

- Developers estimate (1-3 weeks)

- Stories scheduled in release plan

- Customer accepts finished story Use acceptance tests to verify stories

- Customer is always available

Monitor project velocity and re-plan!

Page 17: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 17

XP Roles

1. Customer

2. Programmer

3. Coach

4. Tracker

5. Tester

6. Doomsayer

Page 18: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 18

XP Practices1. The Planning Process2. Frequent, Small Releases3. System Metaphor4. Simple Design5. Test Driven Development6. Refactoring7. Pair Programming8. Collective Code Ownership9. Continuous Integration10. Sustainable Pace11. On-site Customer12. Coding Standard

Page 19: CS3100 Software Project Management Agile Approaches

CS3100 Software Project Management Slide 19

Other Agile Flavours

- Lean Development

Based on lean manufacturing

http://www.poppendieck.com/

- SCRUM

Highly Iterative

http://www.controlchaos.com/