Craig Smith & Paul King Agile Tool Hacking Taking Your Agile Development Tools To The Next...

Preview:

DESCRIPTION

 

Citation preview

Agile Tool Hacking: Taking Your Agile DevelopmentTools To The Next Level

Craig Smith

Suncorp

Dr Paul King

ASERT

Welcome

Overview

Images: http://1.bp.blogspot.com/_FNT-_PKRcfs/R-uigRW64pI/AAAAAAAAA7M/iLGM-vOzlRM/s400/vegemite.jpg

http://www.sciencenews.net.au/images/kangaroo-and-baby-joey1.jpg http://www.vtxpress.com/tripleheader-fluke-rigs/knife.jpg I

http://www.sail-world.com/photos/Alt_AustraliaII.jpg\ http://geology.com/world/map/map-of-australia.gif

According to the

Compact Oxford

Dictionary:

Tool (noun)

1. a device or implement used to carry out a particular function.

2. a thing used to help perform a job.

3. a person used by another.

Image: http://i.ehow.com/images/GlobalPhoto/Articles/2065416/dictionary_Full.jpg

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

Agile Manifesto on Tools…

Image http://i.pbase.com/g3/64/559164/2/55171028.Pictures0588047R103315.jpg http://www.design-industry.com.au/en/wp-content/uploads/2007/07/fridge_01_400x400.jpg

Refridgerators vs Radiators

Refridgerators vs RadiatorsImage http://3.bp.blogspot.com/_qUcuMWvDsac/SLP8WaIAawI/AAAAAAAAA7U/OC_RU-BlB0M/s400/IMG_2682.jpg

Image Beck, Kent – Extreme Programming Explained: Embrace Change

XP Practices over Tooling

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

Scrum Practices over Tooling

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

Tools Usage Timeline

Image http://www.appart.com/Blog/image.axd?picture=2009%2F6%2Fmacgyver.jpg

ToolsHacking

ThinkSimple!

Image http://www.collider.com/uploads/imageGallery/A_Team/the_a-team_nbc_tv_show_image__1_.jpg

ToolsHacking

GreatTeam

Images http://www.concordion.org/image/example/online-shop/StoryCard.png

http://www.ugleah.com/img/2009/burndown_chart.gif

Storycards & iteration management

Storycards:

Promise for a conversation

INVEST

Defect tracking

Iteration / Release / Project tracking:

Prioritised backlog

Iteration story wall

Burn-up & burn down charts

Metrics / Velocity

Estimation

Images http://www.selfishprogramming.com/wp-content/uploads/2008/10/building-kanban-board.jpg

http://ssmirnov.files.wordpress.com/2009/02/still-life.jpg

Stories&

Iterations

The ManualWay

Example Storycards & iteration management tools

Open Source / Free:

XPlanner: http://www.xplanner.org

Agilefant: http://www.agilefant.org

IceScrum: http://www.icescrum.org

Agilo: http://www.agile42.com/cms/pages/agilo/

Commercial:

Jira + GreenHopperhttp://www.atlassian.com/software/jira/http://www.atlassian.com/greenhopper/

Mingle: http://studios.thoughtworks.com/

mingle-agile-project-management

VersionOne: http://www.versionone.com/

Rally: http://www.rallydev.com

Beginner

Start with a

manual story wall

(index cards, markers

& stickies)

Keep manual BVC’s

& burn charts

Breakdown stories &

estimates (INVEST)

Intermediate

Introduce tool if:

Team members / stakeholders remote

Reporting requirements

Easier stats / BVC

Keep a manual wall

of relevant level

Manual planning poker

Advanced

Connect tools eg.

IDE, VCS

Extend tool with

0wn / community /

commercial plugins

Electronic estimation

& planning

Iteration Tool Maturity

Agilo

Mingle

Jira + GreenHopper

Hacking Jira: know the features

Hacking tool integration

Hacking planning poker

Collaboration

Team:

Daily Scrum / Standup

Retrospective

Kickoff / Demo / Showcase

Collective team ownership

Pair Programming

Output:

Project Documentation

Email / telephone / IM

Images http://fabiopereira.me/blog/wp-content/uploads/2008/11/walldc93a7f3-

2d9d-4525-8301-d40ad993e66f.jpg

http://www.idea.gov.uk/idk/aio/8172457

Collaboration

The ManualWay

Example Collaboration Tools

Open Source / Free:

MediaWiki: http://www.mediawiki.org

Open Atrium: http://openatrium.com/

Google Docs: http://docs.google.com

Skype: http://www.skype.com

Eclipse Communications Framework(D0cShare): http://www.eclipse.org/ecf/

Commercial:

Confluence: http://www.atlassian.com/

software/confluence/

SharePoint / Office Communicator:http://sharepoint.microsoft.com

PBWorks: http://pbworks.com

Beginner

Basic agile / XP / Scrum:Daily scrum / standup,

retrospective,kickoff / demo /

showcase

Basic wiki / shared document environment

Digital camera /whiteboard

Intermediate

Combined kickoff /retrospective for

small projects

Advanced XP techniques: pair

programming, teamownership

Intranet / CMScapability

Wiki gardening

Advanced

Connect tools eg.

iteration management,build tools

Extend tool with

0wn / community /

commercial plugins

Distributedcollaboration

Collaboration Tool Maturity

Confluence

SharePoint

Eclipse DocShare

IntelliJ Code Consultant

Hacking Wiki + Iteration Mgmt

Hacking Distributed Retros

Hacking Intranets (Atrium)

Development

Environments

Developers:

Pragmatic programmers

Continuous improvement

Efficient / repeatable

Outcomes:

Co-location

Productive hardware

Consistent environments

Scripted machine builds

Environment testingImage http://imgs.xkcd.com/comics/compiling.png

http://api.ning.com/files/mc-

mk7rMBrQx2Jpql3boKhn9N2cHmubcFN6hyDrikT8FIz-

2EhEwcbpzSWjqQ8VdjxBVgOTgSs31-

sL2oBoifORkpQ680Iu0/appleiphonesdklogo.jpg

DevelopmentEnvironments

The ManualWay

Image http://www.xtrasens.com/support/manual/install%20flow.png

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

Example Environment Tools

Open Source / Free:

VirtualBox: http://www.virtualbox.org

NSIS: http://nsis.sourceforge.net

Linux distributions (various) http://www.linux.org

http://distrowatch.com

Commercial:

VMWare: http://www.vmware.com

Cloud computing optionshttp://code.google.com/appengine/

http://aws.amazon.com/ec2/http://github.com

Beginner

Instructions for

building environments

manually / consistently

Plan for pragmaticprogrammer techniques

Manual tests forchecking environments

Co-located team

Intermediate

Automated builds forapplication environments

Automated environment

tests on demand

Required hardware / software

Physical environmentrenovations

Advanced

Automated build for

developer machines

Testers, team membersusing similar environment

Consider cloudcomputing opportunities

Zero cubicles, pairing stations, breakout /

team area

Environment Tool Maturity

VMWare

Google App Engine

Physical Environment

Hacking Dev. Machine Builds

Hacking Corporate SOE

Development Tools

Developers:

Craftsmanship / clean code

Quality non-negotiable

Tool Types:

Integrated DevelopmentEnvironment (IDE)

Database SQL clients

Version control

Web Service / SOAP tools

File & operating system tools

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

http://cybernetnews.com/wp-content/uploads/2007/07/hacker.jpg

Image http://www.domainlanguage.com/_library/images_people_working/designing_at_whiteboard.jpg

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

h/06_Red_Green_Refactor.JPG

DevelopmentEnvironments

The ManualWay

Example Development Tools

Open Source / Free:

IDE’s (multiple language support)

Eclipse: http://www.eclipse.org

NetBeans: http://www.netbeans.org

SharpDevelop: http://www.icsharpcode.net

RadRails: http://www.aptana.com/rails

Visual Studio Express:

http://www.microsoft.com/express/

Database Clients

DBVisualizer: http://www.dbvis.com/

SQuirreL: http://squirrel-sql.sourceforge.net

Web Service / SOAP Tools

soapUI: http://www.soapui.org

Example Development Tools

Open Source / Free:

Version Control Systems

Subversion: http://subversion.tigris.org

Git: http://git-scm.com

Bazaar: http://bazaar-vcs.org

Mercurial: http://mercurial.selenic.com

File & operating system tools

PowerShell: http://www.microsoft.com/

windowsserver2003/technologies/

management/powershell/default.mspx fish: http://fishshell.org

Cygwin: http://www.cygwin.com

Miscellaneous OS tools

Example Development Tools

Open Source / Free:

Metrics

Checkstyle: http://checkstyle.sourceforge.net

StyleCop: http://code.msdn.microsoft.com/

sourceanalysis

FindBugs: http://findbugs.sourceforge.net

PMD: http://pmd.sourceforge.net

Cobertura: http://cobertura.sourceforge.net

JDepend:http://clarkware.com/software/JDepend.html

Panopticode: http://www.panopticode.org

CodeCity: http://www.inf.unisi.ch/phd/wettel/

codecity.html

Example Development Tools

Commercial:

IDE’s (multiple language support)

IntelliJ IDEA / RubyMine / ReSharper:

http://www.jetbrains.com/

Visual Studio:

http://www.microsoft.com/visualstudio

Web Service / SOAP Tools

Oxygen: http://www.oxygenxml.com/

Metrics

Clover: http://www.atlassian.com/software/

clover

Simian: http://www.redhillconsulting.com.au

Profilers

YourKit: http://www.yourkit.com

Beginner

Usage of IDE with teamagreed setup

Awareness / use of basic tools / metrics

Use of version control

Team understanding ofquality

Intermediate

Mastery of IDE keystrokes / features /

plugins

Team commitment toreact to metrics output

Usage of advancedversion control features

Quality non-negotiable /

clean code

Advanced

Mastery of advanced IDE features / plugin

development

Usage of advanced

metrics tools & features

Usage of distributedversion control

Advanced clean code /software craftsman

Development Tool Maturity

Image http://alagad.com/upload/intellij_tests_21.gif

IntelliJ

Clover

Image http://www.inf.unisi.ch/phd/wettel/codecity-wof.html

Code City

Hacking IDE Plugins

Hacking RYO IDE Plugins

• d

Hacking VCS: FishEye/SVNStat

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

peter_schaub/WindowsLiveWriter/VSTSRangersProjectsWCFLoadTestToo.0Sh

ips_7D80/CLIPART_OF_13165_SM_2.jpg

http://2.bp.blogspot.com/_U08AbEz5lx4/Ra9UkCi4EeI/AAAAAAAAAAY/vLpsqL

3uqE0/s320/swisstoolcsopen.jpg

Testing Tools

Testers:

Automate

Continuous feedback

Bridge communication gaps

Tool types:

Test specification generation

Test execution / record / log

Test user interfaces

Performance test

Test / incident management

Reporting

Image http://tell.fll.purdue.edu/JapanProj/FLClipart/Verbs/understand.gif

http://thedailystandup.com/wp-content/uploads/2008/12/istock_000004776276xsmall.jpg

Testing

The ManualWay

Example Testing Tools

Open Source / Free:

Test Specification – xUnit Tools

JUnit: http://www.junit.org

Nunit: http://www.nunit.org

Test Specification Tools – Expressive/BDD

Spock: http://code.google.com/p/spock/

FitNesse: http://fitnesse.org

Concordion: http://www.concordion.org

Cucumber: http://cukes.info

easyb: http://www.easyb.org

Test Specification Tools – Mocking

NMock: http://www.nmock.org

EasyMock: http://easymock.org

Example Testing Tools

Open Source / Free:

Test Execution / Record / Log / UI

Selenium: http://seleniumhq.org

Watir: http://wtr.rubyforge.org

Tellurium: http://kenai.com/projects/tellurium

WebTest: http://webtest.canoo.com

Performance Test

JMeter: http://jakarta.apache.org/jmeter/

Grinder: http://grinder.sourceforge.net/

Test Management

Radi: http://radi-testdir.sourceforge.net

RTH: http://sourceforge.net/projects/rth/

Example Testing Tools

Commercial:

Test Execution / Record / Log / UI

Twist: http://studios.thoughtworks.com/

twist-agile-test-automation

GreenPepper:http://www.greenpeppersoftware.com/en/

Squish: http://www.froglogic.com

Integrated

HP Quality Center / QTP / LoadRunner:

https://h10078.www1.hp.com/cda/hpms/

display/main/hpms_home.jsp?zn=bto&cp=1_4011_100__

SpiraTest: http://www.inflectra.com/SpiraTest/

Beginner

Automated developerunit tests

Some automatedacceptance / functional

tests

Developers / testersworking together pluscombined definition of

done

Usage of GUI test robots

Intermediate

Test driven development

BDD / mock testing

Automated regressiontests – new / legacy

All tests run in CI build(unit / acceptance /

functional)

Usage of expressive /DSL testing

Advanced

100% test coverage(unit / acceptance /

functional)

Developer / testerpair programming

Automated performancetesting with functional

test reuse

Risk based testing

Based on Elements of Enterprise CIhttp://www.anthillpro.com/html/resources/elements_of_ci_A4.pdf

Testing Tool Maturity

Quality Center

Selenium

NUnit

Hacking JMeter

Hacking Performance Tests

Hacking Expressive Tests

Image http://www.michaelfransen.com/wp-

content/uploads/2008/02/wheresthebuild-small.jpg

Continuous Integration

Advantages:

Early warning

Consistent test / integrate

Centrepiece for quality

Practices:

Version control / automatedbuild / automated test

Commit early & often

Fast feedback

Visible / audible results

Artefacts

Image http://farm4.static.flickr.com/3122/3121915858_06a783e594.jpg?v=0

http://www.michaelfransen.com/wp-content/uploads/2008/02/wheresthebuild-small.jpg

ContinuousIntegration

The ManualWay

Example Continuous Integration Tools

Open Source / Free:

Continuous Integration Servers

Hudson: https://hudson.dev.java.net

Cruise Control:http://cruisecontrol.sourceforge.net

Build Tools

Ant: http://ant.apache.org

Nant: http://nant.sourceforge.net

Maven: http://maven.apache.org

Gradle: http://www.gradle.org

Example Continuous Integration Tools

Open Source / Free :

Dependency / Repositories

Nexus: http://nexus.sonatype.org

Archiva: http://archiva.apache.org

Ivy: http://ant.apache.org/ivy

Commercial:

Bamboo:http://www.atlassian.com/software/bamboo/

Cruise: http://studios.thoughtworks.com/

cruise-continuous-integration

TeamCity: http://www.jetbrains.com/teamcity

Beginner

Implementation ofcore build steps

Frequent check-in toversion control system

Adequate hardwareto run build

Team commitment tofixing broken builds

Intermediate

Implementation ofcontinuous integrationserver to auto-run build

Dedicated buildmachine

Advanced / refactored /multiple builds

Broken build alerts &team procedures

Advanced

Usage of build clusters /slaves / VM snapshots

Dependency management& internal repository

High frequency check-into version control

system

Builds for environment /project impediments

Continuous Integration Maturity

Hudson

Hudson Plugins

Nexus

Hacking CI Data Migration

Hacking Hudson / Scoreboard

Hudson Swarms

> java -jar swarm-client-jar-with-

dependencies.jar

Plugin Growth

Image http://weblogs.java.net/blog/kohsuke

Jira Plugin

Amazon EC2 Plugin

Continuous Integration Game Plugin

Hacking Hudson Plugins

Image http://www.serena.com/images/products/dimensions-deploy/deploy-

illustration2-286-23.jpg

http://ciadvantage.com/cs/photos/storage/ctd.gif

Deployment Tools

Advantages:

Repeatable from developmentto Production

No “fight night” surprises

Practices:

Automated deployment script

Environment management

Environment tokens

Automated & manual steps

Smoke test / confirmation

Image http://www.thekua.com/rant/wp-content/uploads/2006/03/RetrospectiveTimelineEvents.jpg

http://farm4.static.flickr.com/3645/3340381990_fa9f004e5b.jpg

Deployment

The ManualWay

Example Deployment Tools

Open Source / Free:

Roll your own (scripts / build / CI server)

Cargo: http://cargo.codehaus.org

Capistrano: http://www.capify.org

SmartFrog: http://www.smartfrog.org

Commercial:

Tableaux: http://www.incanica.com

IBM Rational Suite:http://www-01.ibm.com/software/rational/

BMC BladeLogic: http://www.bmc.com/

products/offering/bmc-bladelogic-application-release-manager.html

Beginner

Documented manualdeployment & rollback

process / checklist

Documented manualsmoke tests

Automated helperscripts

Intermediate

Fully scripteddeployment & rollback

where applicable

Roll your own basicdeployment to testenvironments using

CI server

Repeatable build for“go-live” processes

Advanced

Usage of deploymenttool (roll your own /

open source / commercial)

Repeatable deploymentto all environments

(tokenized)

Automated productiondeployment (push

button or automatic)

Based on Elements of Enterprise CIhttp://www.anthillpro.com/html/resources/elements_of_ci_A4.pdf

Deployment Tool Maturity

Tableaux

Tableaux Tokens

Tableaux Deployment

#/bin/bash

SCRIPT_DIR=`dirname $0`

. $SCRIPT_DIR/setup.sh

HOST=$1

PORT=$2

ACTION=$3

URLS=("gi/underwriting/ncd/calculator?brand=wally"

"gi/underwriting/ncd/service/ws/GiNcdService?wsdl")

[ "${ACTION}" == "Test Installation" ] && {

echo "Running test of the installation";

TMPFILE=/tmp/wgetresult.$$

for i in "${URLS[@]}"; do

echo wget --no-proxy http://${HOST}:${PORT}/${i} >$TMPFILE 2>&1

wget --no-proxy http://${HOST}:${PORT}/${i} >$TMPFILE 2>&1

RESULT=`grep '200 OK' $TMPFILE`

echo RESULT is [ $RESULT ]

if [ -z "$RESULT" ] ; then

echo "ERROR: NCD ${i} did not start"

exit 1

else

echo "SUCCESS: NCD ${i} started OK"

fi

rm $TMPFILE

done;

exit 0;

}

Hacking Manual Scripts

[...]

<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

Hacking RYO Cargo

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

[...]

Hacking Deployment Tests

Image

http://www.monitoringsoftwareonline.com/files/QuickSiteImages/computer_plus_

magnifying.jpg

http://www.kace.com/img/content/screenshots/1000/reporting-dashboard.png

Monitoring Tools

Advantages:

Visible status of assets

Pro-active maintenance

Practices:

Environment monitoring

Process confirmation

Fault monitoring

Configuration monitoring

Security monitoring

Accounting monitoring

Log monitoringImage http://www.kace.com/img/content/screenshots/1000/reporting-dashboard.png

Image http://upload.wikimedia.org/wikipedia/commons/5/52/Unix-process-list.png

http://www.petri.co.il/images/virtual_vmware_files_explained_03.jpg

http://trubke.net/_nw/1/17916.png

Monitoring

The ManualWay

Example Monitoring Tools

Open Source / Free:

Roll your own (scripts / CI server)

Cacti: http://www.cacti.net

Zabbix: http://www.zabbix.com

Nagios: http://www.nagios.org

Monit: http://mmonit.com/monit/

Commercial:

Splunk: http://www.splunk.com

IBM Tivoli: http://www.ibm.com/software/tivoli

Hyperic: http://www.hyperic.com

NetIQ: http://www.netiq.com

Beginner

Base level / centralisedmonitoring on critical

components(eg. hardware, operating

system, web server,database)

Useful logs (logginglevels, log rolling, known

support procedures)

Ad-hoc usage of tools / procedures for

reactive support

Intermediate

Roll your own basicmonitoring for

processes / logs /environments atapplication level

Refactored logs(central location, redundant detailsfixed / removed)

Ad-hoc usage of tools / procedures for

proactive support

Advanced

Usage of monitoringtools at all levels

including applicationlevel

Monitoring alert process

Visual display ofmonitoring tool / status

Monitoring of advanceditems (eg. configuration,

accounting)

Monitoring Tool Maturity

Tivoli

Cacti

Splunk

Hacking RYO Visual Monitoring

2009-07-14 17:10:00,028 [ERROR,au.com.suncorp.ldocs.web.AbstractAction] Unhandled exception caught in action: null

java.lang.NullPointerException

at au.com.suncorp.ldocs.web.RetrieveSADSAction.retrieveRtf(RetrieveSADSAction.java:98)

at au.com.suncorp.ldocs.web.RetrieveSADSAction.executePost(RetrieveSADSAction.java:59)

at au.com.suncorp.ldocs.web.AbstractAction.performIt(AbstractAction.java:66)

at au.com.suncorp.ldocs.web.AbstractAction.performPost(AbstractAction.java:60)

at com.thoughtworks.web.AbstractAction.execute(AbstractAction.java:58)

at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)

at com.thoughtworks.web.struts.CustomRequestProcessor.process(CustomRequestProcessor.java:159)

at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)

at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)

at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)

at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)

at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)

at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6356)

at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)

at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)

at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3635)

at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)

at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)

at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

2009-07-14 17:10:00,028 [INFO ,com.thoughtworks.web.struts.CustomRequestProcessor] END REQUEST

2009-07-14 17:10:02,841 [INFO ,com.thoughtworks.web.struts.CustomRequestProcessor] Processing a 'GET' for path '/ChibaSADS'

2009-07-14 17:10:02,841 [INFO ,com.thoughtworks.web.struts.CustomRequestProcessor] BEGIN REQUEST

2009-07-14 17:10:02,841 [INFO ,com.thoughtworks.command.Command] BEGIN COMMAND au.com.suncorp.ldocs.command.DocumentGenerationServiceCommand

2009-07-14 17:10:02,856 [INFO ,com.thoughtworks.dgs.server.dbaccess.DatabaseQueryManager] [START] FETCH EFFECTIVE TEMPLATE

2009-07-14 17:10:02,856 [INFO ,com.thoughtworks.dgs.server.dbaccess.DatabaseQueryManager] [START] FETCH TEMPLATE VERSION

2009-07-14 17:10:03,544 [INFO ,com.thoughtworks.dgs.server.dbaccess.DatabaseQueryManager] [END] FETCH TEMPLATE VERSION

2009-07-14 17:10:03,544 [INFO ,com.thoughtworks.dgs.server.dbaccess.DatabaseQueryManager] [END] FETCH EFFECTIVE TEMPLATE

2009-07-14 17:10:03,544 [INFO ,com.thoughtworks.dgs.server.dbaccess.DatabaseQueryManager] [START] DEEPEN THE QUERY

Hacking Log Files

Image http://jenn98.com/bugs/images/bugs-elmer-daffy.jpg

Wrap Up:

Plan your tools &

approach

Image http://jellyflux.files.wordpress.com/2008/11/woman-surrounded-by-robots.jpg

Wrap Up:

Manual first

Image http://33epua.blu.livefilestore.com/y1pF8NaSRUp9Ge4uyvRJLXucalRXqNYGecfm2RUe_VN8Es7rSSe7N-

WaQdBnHbgYc8jAr3O_NiZ_P4ZMzhh9vo7Ag/Project2.jpg

Wrap Up:

Refactorprocesses &

tools

Image http://www.dilbert.com

Wrap Up:

Learn from retrospectives

Image http://www.cartoonstudio.co.uk/images/kmeters/ABBwaste.jpg

Wrap Up:

Eliminate waste

Beginner

Collaboration

Development tools

Testing

Intermediate

Storycards & iteration

management

Development environments

Continuous integration

Advanced

Deployment

Monitoring

Wrap Up: Tools Maturity

Image http://jira.atlassian.com/secure/attachment/16943/macgyver.gif

Wrap Up:

Think like Macgyver

Wrap Up:

Act like an A-Team

Image http://www.popartuk.com/g/l/lgpp31670+i-love-it-when-a-plan-comes-together-weenicons-a-team-poster.jpg

Want More Information?

Craig Smithhttp://www.suncorp.com.au

http://www.agileacademy.com.au

craig.smith@suncorp.com.au@smithcdau

Dr. Paul Kinghttp://www.asert.com.aupaulk@asert.com.au@paulk_asert

Download this presentation at:http://www.agile2009.org/node/2840http://www.agileacademy.com.au/knowledgehub/downloads

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.

Recommended