+ All Categories
Home > Technology > Optimize Your Team for Tough Times

Optimize Your Team for Tough Times

Date post: 25-Dec-2014
Category:
Upload: tz-martin
View: 844 times
Download: 0 times
Share this document with a friend
Description:
Slides from this week's talk on Optimizing Your Team using Agile techniques.
49
Team Wide Tune-ups Optimize Your Team for Tough Times by Jared Richardson
Transcript
Page 1: Optimize Your Team for Tough Times

Team Wide Tune-upsOptimize Your Team for Tough Times

by Jared Richardson

Page 2: Optimize Your Team for Tough Times
Page 3: Optimize Your Team for Tough Times

Lift 100 Pounds?

Page 4: Optimize Your Team for Tough Times

Lift 200 Pounds?

Page 5: Optimize Your Team for Tough Times

Lift 500 Pounds?

Page 6: Optimize Your Team for Tough Times

Maybe All of Us?

• Lever

• Pulley

• Block and tackle

flickr.com/photos/_pixelmaniac_/2149556620/

Page 7: Optimize Your Team for Tough Times

Need to Leverage

• Time

• Money

• Staff

• Expertise

Page 8: Optimize Your Team for Tough Times

Need to Leverage?

Everything!

Page 9: Optimize Your Team for Tough Times

Focus

• Specific areas

• Exact problems

• Usable solutions

http://flickr.com/photos/spacepleb/1505372433/

Page 10: Optimize Your Team for Tough Times

Feedback Loop

• Smaller

• Easier

• Faster

Page 11: Optimize Your Team for Tough Times

Fast Feedback

• Creates change

• Enables learning

• Connects cause and effect

Page 12: Optimize Your Team for Tough Times

Plan

• Find an area

• Tighten the feedback

Page 13: Optimize Your Team for Tough Times

Focus Areas

• Requirements

• Execution

• Testing

• Deployment

• Maintenance

Page 14: Optimize Your Team for Tough Times

Requirements Issues

• Too many

• Too few

• Moving target

• Vague

Page 15: Optimize Your Team for Tough Times

Requirements Feedback Loops

• Time boxed iterations

• Top 10 list

• Very specific month

• Very vague year

Page 16: Optimize Your Team for Tough Times

Time Boxed Iteration

• 1 to 4 weeks

• “Finished” tasks

• Demo

• 10 tasks in 10 days

• Get the customer to prioritize

http://flickr.com/photos/bozarth/187224341/

Page 17: Optimize Your Team for Tough Times

Iterations Catch…

• Undefined requirements

• Problem teams

• Black hole task

• Any problems

• Compresses everything

Page 18: Optimize Your Team for Tough Times

Execution/Coding Issues

• Can’t finish

• Buggy

• Brittle

• Cool features

• Infrastructure

Page 19: Optimize Your Team for Tough Times

Coding Feedback Loops

• Continuous integration

• Test automation

• Daily meetings

• Peer code reviews

• Time boxed iterations

Page 20: Optimize Your Team for Tough Times

Continuous Integration

• Code is checked in

• Code is compiled

• Tests are run

Page 21: Optimize Your Team for Tough Times

Continuous Integration

• No weekly/nightly builds

• Code tested NOW

• Problems caught quickly

• Especially functional

Page 22: Optimize Your Team for Tough Times

CI Catches…

• Failure to add a file

• Out of date local libraries/code

• Code collisions

• Functional breaks

Page 23: Optimize Your Team for Tough Times

Test Automation

• Scriptable

• Self-verifying

• Simple (Unit)

• Package level (API)

• Integration (Acceptance)

Page 24: Optimize Your Team for Tough Times

Test Automation Catches..

• Functional breaks

• Broken refactoring

• Collateral damage

• Ignorance

Page 25: Optimize Your Team for Tough Times

DefectDrivenTesting

• Find a bug…

• Add a test

• Jazz

Page 26: Optimize Your Team for Tough Times

Where’s Your Test Coverage?

• On the bugs

• Incremental change

• Automate as needed

Page 27: Optimize Your Team for Tough Times

Daily Meetings

• 1 to 3 minutes per person

• 3 questions

• Re-direct

• Re-task

• Peer pressure

Page 28: Optimize Your Team for Tough Times

Daily Meetings Catch…

• Wasted work

• Misunderstanding

• Off track

• Knowledge silos

http://flickr.com/photos/mcmorr/1126312308/

Page 29: Optimize Your Team for Tough Times

Peer Code Review

• Finish one task

• Find a co-worker

• Get a review

• Repeat until done

Page 30: Optimize Your Team for Tough Times

PCR Catches…

• Your bugs

• Their bugs

• Knowledge silos

• Rewriting code

• Hacks

http://flickr.com/photos/gtstuff/3215232741/

Page 31: Optimize Your Team for Tough Times

Iterations Catch…

• Mired down developers

• “Almost done” features

• Unestimated features

• Uncommitted code

Page 32: Optimize Your Team for Tough Times

Testing Issues

• Too slow

• Misses problems

• Expensive

• New eyes

Page 33: Optimize Your Team for Tough Times

Testing Feedback Loops

• Automated testing

• Continuous integration

• Static code analysis tools

Page 34: Optimize Your Team for Tough Times

Testing Feedback Loops

• Eliminates click-thru testing

• Runs 24x7

• Repeatable

• Reliable

• Controlled environment

• Free up human testers to think

Page 35: Optimize Your Team for Tough Times

Deployment Issues

• By hand

• Hit or miss

• Manual

• Difficult

• Stupid users

Page 36: Optimize Your Team for Tough Times

Deployment Feedback Loops

• Scripted deployments

• Continuous integration

• Automated integration tests

Page 37: Optimize Your Team for Tough Times

Scripted Deployments

• Capistrano

• Database migrations

• Runs locally

• Runs on production

• Runs on test

Page 38: Optimize Your Team for Tough Times

Deployment Loops Catch…

• Bugs in installers

• Bugs in code

• Performance issues

• Intermittent issues

Page 39: Optimize Your Team for Tough Times

Maintenance Issues

• Biggest expense

• Brittle

• Difficult

• Expensive

• Frustrating

• Learning curve

Page 40: Optimize Your Team for Tough Times

Maintenance Loops

• Automated tests

• Continuous integration

• Static code analysis

Page 41: Optimize Your Team for Tough Times

Maintenance Loops Catch…

• Assumptions

• Misunderstandings

• Breaks

• Collateral damage

Page 42: Optimize Your Team for Tough Times

Need to Optimize?

• Find an area

• Tighten the feedback loop

Page 43: Optimize Your Team for Tough Times

Focus Areas

• Requirements

• Execution

• Testing

• Deployment

• Maintenance

Page 44: Optimize Your Team for Tough Times

Where to Start?

• Take a picture

• Fresh perspective

http://flickr.com/photos/dsevilla/249202834/

Page 45: Optimize Your Team for Tough Times

Onsite Assessments

• Tune-up

• Overhaul

• Direction

• Strategy

Page 46: Optimize Your Team for Tough Times

Fresh perspective

Page 47: Optimize Your Team for Tough Times

Onsite Training

• Test automation

• Product owner training

• Agile expertise

• Hibernate

• Maven

• More added as needed…

Page 48: Optimize Your Team for Tough Times

Leverage Expertise

Page 49: Optimize Your Team for Tough Times

http://NFJSOne.com


Recommended