Experiences From Agile Projects Great & Small (OSDC 2009)

78
Experiences from Agile Projects Great & Small Craig Smith Suncorp Dr. Paul King ASERT

description

Experiences From Agile Projects Great and Small talk, delivered by Craig Smith and Paul King at the Open Source Developers Conference (OSDC) 2009 in Brisbane.

Transcript of Experiences From Agile Projects Great & Small (OSDC 2009)

Page 1: Experiences From Agile Projects Great & Small (OSDC 2009)

Experiences from Agile ProjectsGreat & Small

Craig SmithSuncorp

Dr. Paul KingASERT

Page 2: Experiences From Agile Projects Great & Small (OSDC 2009)

Welcome…

Page 3: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://blog.theworkinggroup.ca/wp-content/uploads/2009/04/agile-manifesto1.gif

Agile Manifesto

Page 4: Experiences From Agile Projects Great & Small (OSDC 2009)

Agile Pyramid

Practices

Principles

Values

Approach

Image http://media.photobucket.com/image/pyramid%20agile/lalframes/GreatPyramid.jpg

Page 5: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://blogs.conchango.com/Admin/ImageGallery/blogs.conchango.com/Colin.Bird/Scrum%20Overview%20Diagram.png

Scrum Practices

Page 6: Experiences From Agile Projects Great & Small (OSDC 2009)

Image Beck, Kent – Extreme Programming Explained: Embrace Change

XP Practices

Page 7: Experiences From Agile Projects Great & Small (OSDC 2009)

Agile Lifecycle - Concept

5%

Image http://legacy.lclark.edu/faculty/jsmiller/objects/idea_bulb.jpg

Page 8: Experiences From Agile Projects Great & Small (OSDC 2009)

Agile Lifecycle - Initiate

10%

Image http://propertymanagementgroups.com/MonopolyGO.jpg

Page 9: Experiences From Agile Projects Great & Small (OSDC 2009)

Agile Lifecycle - Deliver

Image http://www.xdin.com/Portals/4/Images/develop-n-deliver.JPG

80%

Page 10: Experiences From Agile Projects Great & Small (OSDC 2009)

Agile Lifecycle - Deploy

Image http://www.pcfixexpress.com/images/happy_office.jpg

5%

Page 11: Experiences From Agile Projects Great & Small (OSDC 2009)

Agile Team

Core Team

Extended Team

Project Manager

SupportAnalystOther key

stakeholders

Application Owner

Enterprise Architect

Iteration Manager

Techlead

Infra-structure

Lead

Bus.SME

SoftwareEngineer

Architect

Tester

Business Analyst

ProgramManager

Project Sponsor

Image http://www.befitlifestyle.com/images/CorporateTeamHands.jpg

Page 12: Experiences From Agile Projects Great & Small (OSDC 2009)

Collaboration

Concept Initiate Deliver Deploy

Storycards & iteration management

Development environments

Development tools

Testing

Continuous integration

Deployment

MonitoringImage http://3.bp.blogspot.com/_H0iqHTCqRyo/RfQyLHm8POI/AAAAAAAAABQ/-ZGsV-p-aVs/s400/evolution.jpg

Agile Tools Timeline

Page 13: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://www.flickr.com/photos/87791108@N00/1182442244/

AgileTeam

Practices

Page 14: Experiences From Agile Projects Great & Small (OSDC 2009)

Daily Standup / Scrum

Page 15: Experiences From Agile Projects Great & Small (OSDC 2009)

Daily Sitdown

Image http://frederatorblogs.com/monsters/files/2008/04/conferencecall.jpg/

Page 16: Experiences From Agile Projects Great & Small (OSDC 2009)

Post Standup StandupImage http://www.nogeekspeak.com.au/uploaded_images/image/Geek%20Speak.jpg /

Page 17: Experiences From Agile Projects Great & Small (OSDC 2009)

Iteration Open/Kickoff/Demo

Page 18: Experiences From Agile Projects Great & Small (OSDC 2009)

Combine MeetingsImage http://www.acousticsciences.com/articles/weak-link-chain.JPG

Page 19: Experiences From Agile Projects Great & Small (OSDC 2009)

Retrospective

Page 20: Experiences From Agile Projects Great & Small (OSDC 2009)

Iteration Length / Define DoneImage http://www.xqa.com.ar/visualmanagement

Page 21: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://www.redmolotov.com/images/designs/turn-it-up-to-eleven-tshirt_design.jpg

Software Development

Practices

Page 22: Experiences From Agile Projects Great & Small (OSDC 2009)

Developer Practices

100% code coverage from unit

tests

All production code paired and

test-driven

Minimal design up front but an appreciation

for when such design made sense

Customer focused outcomes

Full continuous integration

Daily pair rotation

Continuous improvement through retrospectives

High levels of automation

Light-weight metrics to monitor progress

Page 23: Experiences From Agile Projects Great & Small (OSDC 2009)

Increase ProductivityBoundary testing

Inversion of controlAuto mock creation

Disposable testsAutomate immutability,

cloneability & null checking

Autogenerate random test data

Page 24: Experiences From Agile Projects Great & Small (OSDC 2009)

Collaboration

Page 25: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://imgs.xkcd.com/comics/compiling.png

http://img.dailymail.co.uk/i/pix/2007/07_01/hammerDM0607_468x584.jpg

Developmentenvironments

Page 26: Experiences From Agile Projects Great & Small (OSDC 2009)

Developmenttools

Image http://www.cornetdesign.com/images/bowling_all2s.jpg

http://4.bp.blogspot.com/_9kQQgQD35rY/SaV5p8YBGhI/AAAAAAAAAkg/HOvlhIo7yGI/s1600-

h/06_Red_Green_Refactor.JPG

Page 27: Experiences From Agile Projects Great & Small (OSDC 2009)

Clover

Page 28: Experiences From Agile Projects Great & Small (OSDC 2009)

IDE Plugins

Page 29: Experiences From Agile Projects Great & Small (OSDC 2009)

RYO IDE Plugins

Page 30: Experiences From Agile Projects Great & Small (OSDC 2009)

• d

VCS: FishEye/SVNStat

Page 31: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://blogs.msdn.com/blogfiles/willy-

peter_schaub/WindowsLiveWriter/VSTSRangersProjectsWCFLoadTestToo.0Ships_7D80/CLIPART_OF_13165_SM_2

.jpg

Testingtools

Page 32: Experiences From Agile Projects Great & Small (OSDC 2009)

Selenium

Page 33: Experiences From Agile Projects Great & Small (OSDC 2009)

JMeter

Page 34: Experiences From Agile Projects Great & Small (OSDC 2009)

Continuous integration

Page 35: Experiences From Agile Projects Great & Small (OSDC 2009)

Hudson

Page 36: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://www.serena.com/images/products/dimensions-deploy/deploy-illustration2-286-23.jpg

Deployment tools

Page 37: Experiences From Agile Projects Great & Small (OSDC 2009)

Tableaux

Page 38: Experiences From Agile Projects Great & Small (OSDC 2009)

[...]

<configuration>

<container>

<containerId>tomcat5x</containerId>

<type>remote</type>

</container>

<configuration>

<type>runtime</type>

<properties>

<cargo.remote.username>username</cargo.remote.username>

<cargo.remote.password>password</cargo.remote.password>

</properties>

</configuration>

<deployer>

<type>remote</type>

<deployables>

<deployable>

<groupId>war group id</groupId>

<artifactId>war artifact id</artifactId>

<type>war</type>

<properties>

<context>optional root context</context>

</properties>

<pingURL>opt. url to ping to know deployed</pingURL>

<pingTimeout>opt. timeout (default 20000ms)</pingTimeout>

</deployable>

[...]

> mvn cargo:deploy

Cargo

Page 39: Experiences From Agile Projects Great & Small (OSDC 2009)

Feature: Deployment

In order to use the latest version of testApp

A support officer should be able to

Check that testApp.war has been deployed to the remote machine

Scenario: User deploys

Given app testApp

When I deploy

Then the testApp.war file should be deployed to remote

Cucumber Feature

Cucumber / Capistrano Step Definition[...]

When /^I deploy$/ do

Dir.chdir(@app_dir) do

system "cap deploy:setup"

system "cap deploy"

end

end

Then /^ the testApp.war file should be deployed

to remote$/ do

[...]

Deployment Tests

Page 40: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://www.monitoringsoftwareonline.com/files/QuickSiteImages/computer_plus_magnifying.jpg

Monitoring tools

Page 41: Experiences From Agile Projects Great & Small (OSDC 2009)

Splunk

Page 42: Experiences From Agile Projects Great & Small (OSDC 2009)

Beginner

Collaboration

Development tools

Testing

Intermediate

Storycards & iteration

management

Development environments

Continuous integration

Advanced

Deployment

Monitoring

Tools Maturity

Page 43: Experiences From Agile Projects Great & Small (OSDC 2009)

Project Characteristics

Page 44: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://kenyonreview.org/blog/wp-content/uploads/2008/12/daylight-savings-time.jpg

Project Duration

Page 45: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http:// www.dilbert.com

Project Type

Page 46: Experiences From Agile Projects Great & Small (OSDC 2009)

Resistance

Image http://www.espacelaurent.com/pushback.jpg

Page 47: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://www.community-links.org/linksuk/wp-content/images/kiss.jpg

Design Constraints

Page 48: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://api.ning.com/files/IR6j1-Mhm*VYT3GrA0Sw3H8BN8oNNT0dmyiVrzFELl*K2Jytrg4DWxeivLmwsB-LCSzEcB9YlM-

My5vti1VmjGIRgnFy6rgd/thecubes.jpg

EquipmentTools

Facilities

Page 49: Experiences From Agile Projects Great & Small (OSDC 2009)

Distributed Teams

Image http://www.geos.ed.ac.uk/homes/tcrowley/earth.jpg

Page 50: Experiences From Agile Projects Great & Small (OSDC 2009)

Distributed Pairing: DocShare

Page 51: Experiences From Agile Projects Great & Small (OSDC 2009)

Distributed Pairing: Virtual Dev

Page 52: Experiences From Agile Projects Great & Small (OSDC 2009)

Collaboration: Story Walls

Page 53: Experiences From Agile Projects Great & Small (OSDC 2009)

Virtual Collaboration: XPlanner

Page 54: Experiences From Agile Projects Great & Small (OSDC 2009)

Virtual Collaboration: Jira

Page 55: Experiences From Agile Projects Great & Small (OSDC 2009)

Virtual Collaboration: Agilo

Page 56: Experiences From Agile Projects Great & Small (OSDC 2009)

Virtual Collaboration: Confluence

Page 57: Experiences From Agile Projects Great & Small (OSDC 2009)

Distributed Retrospectives

Page 58: Experiences From Agile Projects Great & Small (OSDC 2009)

Virtual Planning poker

Page 59: Experiences From Agile Projects Great & Small (OSDC 2009)

Facilities

Page 60: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://i.telegraph.co.uk/telegraph/multimedia/archive/00998/Tesco-bread_998381c.jpg

People&

Roles

Page 61: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://www.vimeo.com/user1195135/videos

Influence (@waterfalldave)

Page 62: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://www.flickr.com/photos/10916984@N03/998818127/

Agile Coach / Experience

Page 63: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://tulsatimeapr.files.wordpress.com/2009/09/customer-service.jpg

Co-Located Customer

Page 64: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://www.agile-software-development.com/2007/03/what-if-my-agile-development-colleagues.html

Embracing The Wider Team

Page 65: Experiences From Agile Projects Great & Small (OSDC 2009)

Wider Team: Test / QA

Image http://tucowsinc.com/news/wp-content/uploads/2007/03/qa-analyst.jpg

Page 66: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://www.stellman-greene.com/blog/wp-content/uploads/2007/08/business-analyst.png

Wider Team: Business Analyst

Page 67: Experiences From Agile Projects Great & Small (OSDC 2009)

Wider Team: Infrastructure

Image http://incredimazing.com/static/media/2009/03/15/a236aad0d04d6fe/So_You_Want_To_Be_A_Network_Engineer.jpg

Page 68: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://www.icef.com/uploads/pics/berlin_2007_training_03.JPG

Wider Team: Change Manager

Page 69: Experiences From Agile Projects Great & Small (OSDC 2009)

Wider Team: Usability

Image http://www.infodesign.com.au/images/usabtest.gif

Page 70: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://www.ekidnaworld.com/media/image/explore_characters_pickme_05-01-2009-10-19-37_large.jpg

Attracting Quality Staff

Page 71: Experiences From Agile Projects Great & Small (OSDC 2009)

Third Party Vendors

Image http://www.investmentz.co.in/ImagesAsit/VendorsL.jpg

Page 72: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://www.freefoto.com/images/04/33/04_33_13---Euro-Coins_web.jpg

Change

Page 73: Experiences From Agile Projects Great & Small (OSDC 2009)

Bottom Up

Image http://www.xqa.com.ar/visualmanagementImage http://home.pacbell.net/fantomdj/dk/donkey_kong_barrel.gif

Page 74: Experiences From Agile Projects Great & Small (OSDC 2009)

Top Down

Image http://www.xqa.com.ar/visualmanagementImage http://www.greenenergyinvestors.com/index.php?act=Print&client=printer&f=2&t=2991

Page 75: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://www.sourcejuice.com/wp-content/uploads/2008/03/share-expertise1.jpg

Share & learn from

experiences

Page 76: Experiences From Agile Projects Great & Small (OSDC 2009)

Image http://www.northshorecity.govt.nz/SiteCollectionImages/Services/Transport/Public%20Transport/transit-lane-sign.jpg

That’sTime...

Page 77: Experiences From Agile Projects Great & Small (OSDC 2009)

Want More Information?

Craig Smithhttp://www.suncorp.com.auhttp://[email protected]@smithcdau

Dr. Paul Kinghttp://[email protected]@paulk_asert

Page 78: Experiences From Agile Projects Great & Small (OSDC 2009)

Acknowledgments

Suncorp is one of Australia and New Zealand's largest diversified financial services providers, supplying banking, insurance and wealth management products to around 7

million customers through well-established and recognised brands such as AAMI, Australian Pensioners Insurance Agency, Shannons, Vero, Asteron and Tyndall, as well as

Suncorp and GIO. Today, Suncorp is Australia's fifth largest bank and second largest domestic general

insurance group, with over 16,000 staff. Suncorp has representation in 450 offices, branches and agencies

throughout Australia and New Zealand.

ASERT is one of Australia’s leading suppliers of development services, mentoring and training in Agile,

Web Services, Web Applications, Java, Groovy and Grails.