agile projects making working software as a team bruce scharlau, university of aberdeen, 2012
TRANSCRIPT
![Page 1: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/35.jpg)
User stories provide basic requirements
![Page 36: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/36.jpg)
Stories are ranked by business priority and risk
![Page 37: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/37.jpg)
Use burndown charts to measure progress
![Page 38: Agile Projects Making working software as a team Bruce Scharlau, University of Aberdeen, 2012](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/38.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/39.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/40.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5515d884550346cf6f8b4990/html5/thumbnails/47.jpg)
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