Top Banner
Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012
47

Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Mar 28, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Agile Projects

Making working software as a team

Bruce Scharlau, University of Aberdeen, 2012

Page 2: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Projects have a life cycle

What are the parts of the life cycle for projects in general?

Bruce Scharlau, University of Aberdeen, 2012

Page 3: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Projects have a process model

Bruce Scharlau, University of Aberdeen, 2012http://www.slideshare.net/wasitova/pmbok-and-scrum-best-of-both-worlds

Page 4: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

There are diverging views about software development

Big bang vs salami tactics

Manufacturing vs product development

Bruce Scharlau, University of Aberdeen, 2012

Page 5: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Software projects often fail

Bruce Scharlau, University of Aberdeen, 2012http://www.infoq.com/articles/Interview-Johnson-Standish-CHAOS

Challenged means over budget, incomplete, late

Page 6: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Lots of delay in software projects

Bruce Scharlau, University of Aberdeen, 2012

The project due in 12 months will arrive after 22 months, bit late if it was for specific event

Page 7: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Delays cost money

Bruce Scharlau, University of Aberdeen, 2012

Page 8: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

There are different methodologies used for software development

Bruce Scharlau, University of Aberdeen, 2012

http://jeffsutherland.com/PracticalRoadmapMunich20091020.pdf

Page 9: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

It doesn’t have to be like that

• Incremental and iterative delivery means ship part of application early and get feedback

• Firm can use and learn, and refine ideas

• Firm can start gaining income from product

Bruce Scharlau, University of Aberdeen, 2012

Page 10: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Important to do project right

Often it doesn’t work out correctly… lots of failure

We need to build the project ‘right’ as well as ‘build the right project’ – balance to ensure build efficiently, and that build project business needs

Bruce Scharlau, University of Aberdeen, 2012

Page 11: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

What communication is there in waterfall?

Bruce Scharlau, University of Aberdeen, 2012

Page 12: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Waterfall lacks sufficient communication

Documents produced at each stage of the process

Bruce Scharlau, University of Aberdeen, 2012

Always moves forward, and client may not see anything until the end

Page 13: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

You follow regular workflow

Bruce Scharlau, University of Aberdeen, 2012

5 days

All possiblefeatures

Prioritized current work

Page 14: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Communication friendly process models are preferred

Describe the types of features you’d expect to see in a communication friendly project process model

Bruce Scharlau, University of Aberdeen, 2012

Page 15: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

The agile principles cover many aspects of communication

The manifesto has the basics

http://agilemanifesto.org/

These form twelve principles: how many are about communication?

Bruce Scharlau, University of Aberdeen, 2012

Page 16: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Ease of communication means common code base for team

• Use source control with anyone on the team expected to work on any part of the code as required

• Work in pairs whenever possible

Bruce Scharlau, University of Aberdeen, 2012

THERE ARE NO HERO PROGRAMMERSTHERE ARE NO HERO PROGRAMMERS

Page 17: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Agile adds better value than traditional projects

Bruce Scharlau, University of Aberdeen, 2012http://www.versionone.com/Agile101/Agile_Benefits.asp

Page 18: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Agile provides better feedback

Bruce Scharlau, University of Aberdeen, 2012http://www.agilemodeling.com/essays/costOfChange.htm

Page 19: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

You follow regular workflow

Bruce Scharlau, University of Aberdeen, 2012

5 days

All possiblefeatures

Prioritized current work

Page 20: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Ease of communication provides many benefits

• Makes it easier to discuss options

• Makes it easier to decide later in the process

• Means we don’t need to decide when we know little about the product

Bruce Scharlau, University of Aberdeen, 2012

Page 21: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Knowing that can communicate when required allows decisions

to be postponed

• Why decide early on, when the client knows less about the product, when we can postpone the decision until later?

• We don’t have to lock-in choices early, so why should we?

Bruce Scharlau, University of Aberdeen, 2012

Page 22: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Use your real options to procrastinate

deciding to do something is not the same committing yourself to an action

Bruce Scharlau, University of Aberdeen, 2012

When you commit early, then you must know WHY you do so and what the costs will be

Go see lean procrastination blog

http://leanprocrastination.com/blog/

Page 23: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Communication improves position in cone of uncertainty

Bruce Scharlau, University of Aberdeen, 2012

Project estimates improve as we learn more about the project

Page 24: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Seek short project feedback loops

• Look for feedback from coding, integration, client, so that can make corrections as soon as possible

Bruce Scharlau, University of Aberdeen, 2012

Page 25: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Communication enables choice of project priorities

The customer knows what is required for their application and this will be revealed more with each iteration

Bruce Scharlau, University of Aberdeen, 2012

Page 26: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Stand up meetings aid communication

• Daily meetings of all of the team in the morning to determine who’s did what yesterday, what they intend to do today, and what issues are holding them up, which need to be resolved

• Short, 10-15 meetings only: follow up as needed with longer individual meetings

• Let people work on project if not needed for meeting

Bruce Scharlau, University of Aberdeen, 2012

Page 27: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Pair programming aids communication

• Two people work together at ONE computer to program a feature, or task

• One person types, while the other catches typos, suggests algorithms to make the code work, asks questions

• This is proven to work better than two people working separately and joining code together later.

Bruce Scharlau, University of Aberdeen, 2012

Page 28: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

TDD and BDD confirms that communication is ok

• The client writes tests that the team use to confirm the program does what it should. These guide the team in development.

• Use Cucumber to clarify with the client what is needed and then can use RSpec for more testing underneath

Bruce Scharlau, University of Aberdeen, 2012

Page 29: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Continuous integration is a form of communication

CI is the process of using a tool to download the group source code and building the project to see that it passes its tests and runs as expected.

Assumes that everyone is submitting their code regularly to the group repository

Bruce Scharlau, University of Aberdeen, 2012

Page 30: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Use PDCA cycle for development

Bruce Scharlau, University of Aberdeen, 2012

Page 31: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Can also be seen as lean startup

Bruce Scharlau, University of Aberdeen, 2012

http

://t

hele

anst

artu

p.co

m/p

rinc

iple

s

Page 32: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Follow the TDD principles

Bruce Scharlau, University of Aberdeen, 2012http://en.wikipedia.org/wiki/File:Test-driven_development.PNG

Page 33: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Use red, green, refactor to code

Bruce Scharlau, University of Aberdeen, 2012http://patrickwilsonwelsh.com/?p=619

1. Write a little test

3. Get test to pass 2. Stub out code.Watch test fail

4. Refactor

Cycle time < 10 minutes

Make it green, then make it clean

Page 34: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

As <a user type> I’d like to <do x> because <reason>

Stories cover basic requirements and we supplement them with specifics

Bruce Scharlau, University of Aberdeen, 2012

Page 35: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

User stories provide basic requirements

Page 36: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Stories are ranked by business priority and risk

Page 37: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Use burndown charts to measure progress

Page 38: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Evo process model provides clear communication of objectives

Bruce Scharlau, University of Aberdeen, 2012

Evo checks that the application has clear business objectives and determines how to measure them along an appropriate scale to know whether the application is helping to meet desired organisation goals.

Page 39: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

IET is precise means to communicate priorities

Bruce Scharlau, University of Aberdeen, 2012

  Design Ideas  Objectives #1 #2 #3 Total

Increase Market Share (12% -> 25%) 0% 0% 0% 0%

Increase Monetary Donations ($2.4m -> $3.0m) 0% 0% 0% 0%

Increase Time Donations (2,400 hrs -> 3,200 hrs) 0% 0% 0% 0%

Total Impact 0% 0% 0%

Costs (thousands)        

Hardware / Software $1 $1 $1 $3

Development Effort $0 $0 $0 $0

Total Costs $1 $1 $1 $3

Performance to Cost Ratio 0.00 0.00 0.00

IET = Impact estimation tableIET = Impact estimation table

Page 40: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Lean and Kanban principles ensure we only do what is

needed• Limit the work in progress

• Delay decisions until last possible moment

• Minimize disruption at hand-offs

• Make workflow visible

Bruce Scharlau, University of Aberdeen, 2012

Page 41: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Limit work in progress (WIP)Limit tasks per stage speeds up delivery

Bruce Scharlau, University of Aberdeen, 2012

Only this many tasks per stage

Page 42: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Too many tasks creates a queue of work

• If you shuffle too many tasks for team members everything slows down, and – Feedback loops lengthen– Work takes longer– There is more work in progress– The quality goes down

Bruce Scharlau, University of Aberdeen, 2012

Page 43: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Minimize disruptions at hand-offs

Bruce Scharlau, University of Aberdeen, 2012

Provide work for next stage in suitable format

For example, build to test to deploy hand-offs

Improve throughput by focusing on ‘done’ after sprint

Improve throughput by focusing on ‘ready’ before sprint

Page 44: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Focus on preparation and completion

Bruce Scharlau, University of Aberdeen, 2012

© Jeff Sutherland 1993-2009

http://jeffsutherland.com/PracticalRoadmapMunich20091020.pdf

Page 45: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Make workflow visible with kanban

Bruce Scharlau, University of Aberdeen, 2012

Seeing the work in hand aids issue resolution

Shows:• Stuck

work• Priorities• Who’s

busy• Problems

Page 46: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

We’ll use mixture of evo and lean

Bruce Scharlau, University of Aberdeen, 2012

Use stories to gather minimum features

Use evo (IET) to determine implementation

Use kanban board to limit and see WIP

Automate testing and continuous build

Work in weekly iterations (stages)

Page 47: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012.

Build incrementally per greatest need at the time

• Small slices of functionality with working software at end of cycle

• Build with tests so you know it all works

• Track progress to see what’s left

• Provide release for people to use and offer feedback

• Review your process regularly to improve it

Bruce Scharlau, University of Aberdeen, 2012