geek leadership in deep legacy michael “geepaw” hill geepawhill@anarchycreek.com @geepawhill on...

Post on 25-Dec-2015

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Geek Leadershipin Deep Legacy

Michael “GeePaw” Hill

GeePawHill@AnarchyCreek.com

@GeePawHill on Twitter

Constraint: “Legacy”

The Code Is Old

the big ball of mud from Brian Foote

is there just entropy in all code?

The Code is Testless

definition from Mike Feathers

we don’t know what it does

The Code Isn't Ours

even moderately well-written code…

…is legacy if we don’t know its intent

Constraint: “Deep”

Old, Even Ancient3+ Yearsactive developmenthoney/molasses/underwater

Massive Shipping Pressureplanning theaternearly violent competition for resources

We Don't Shipwork begins on the emergency……hot patch the next day.

Constraint: “Geek”

Business Valuehow do we know the target?

Thrown Agencyhow do we move under radical uncertainty?

Geek Joyhow do we bring our whole selves to bear?

Three Strands of Excellence

Constraint: “Leadership”Leader != Boss

people follow you (some)“change my team” won’t work

Pillars of Coachingmodel: be the changesituate: connect the team to their contextrelease: set them freesort: apply “most important story” to selfinvite: charm them into trying it

Five TechniquesOne-Click Refactoring

Pro Pair Rotating

Blind Baby-Stepping

Lottery Lunch & Learn

Pressure Bottlenecking

Why These Five?

Needed

Concrete

Simple

Inclusive

Permissable

One-Click Reading

Learning To Refactor

Without Deep Understanding

The Need

We Need To Start Somewhere

everything’s connected to everything…

…there are no safe changes

(in another domain: depression)

Analysis-Paralysis

the fear is overwhelming

so we need ways to work around it

Mechanics

Use Your IDE, But Restrict Your Motion

actually practice this, it can be hard

allow only one click out of your target file

The Code In Front Of You *Is* The Code

only need to know that called code …

…has no side effects

(another reason to hate globals)

Outcomes

Permission To Moveno side effects is much easier to provefocus refactoring towards it

Support For Baby-Steppinglarger refactorings emergefocus first on revealing the awful

Team Builds Most Basic Skill50 to 1 reading to writingcontributes to sense of progress

Blind Baby Stepping

Refactor In Small Steps

Before We Know Where It Ends

The Need

We Are Going There Right Now

profluence – the sense of progress

support – the sense of mutuality

Closely Related To One-Click Need

start somewhere, dodge paralysis

play through the fear to the joy

Mechanics

One Pure Refactor A Day

what can you do in fifteen minutes

make some days targeted

Add Question At Standup

“today I renamed variables in class X.”

“i extracted three methods for X->Y.”

“we now have an alternate constructor.”

OutcomesCreation Of A Long View

took time getting in, takes time to get outmeanwhile, stop diggingmake progress every single day

Specific Targets Give Specific Progresspractice sharingpractice self-drivingpractice succeedingpractice celebrating

Lottery Learning

Help Your Team

Lead Themselves

To Excellence

The Need

Effective Standards Needednot just rules or a house coding standarda genuine shared vision

Skills Transferstyletechniqueapproachessolutions

Geek Joy Transferwhat better than spending time?

MechanicsA Gathering Of Code-Changers

call in lunch, use *best* projector room

only allow code-changers

With No Prep Time, Choose A Winner

name out of a hat

or rig the game in the beginning

Winner Chooses Any Code

talk, argue, laugh, explain, help, consider

defend, concede, laugh, blush, critique, laugh

Outcomes

Massive Creation Of Energyenergy to considerjuice for change(random is important, here)

The Incredible Ever-Rising Standardyou simply won’t believe itthey’ll make a standardthey’ll improve it every meetingall you have to do is watch and play

Pro Pair Rotating

WAIT!!!

Just Wait!

You Haven’t Heard Me Yet

The Need

Skill Transfers Neededwe have great goto geeks……but they know “too much”……and we need to break up their silos

High Speed Neededbut classes are too expensive……documents are too outdated……and surfing throws up more q’s than a’s

Mechanics

Make Pairing Stationsroughly one per-goto geekoptimize them for real-world pairing

Build Senior’s Pairing Skillsno driving allowed, use talk & sketchesremind and reward *teaching* goals

Rotate Rapidlytwo two-hour sessions per dayeach with random other juniors

A Good Pairing Station

King Stays vs. Jack Stays

When rotating, pairs split up, while the task is still a whole. Who stays on the task?

King Stays

senior geek keeps the task

best when the silos are few and tall

Jack Stays

junior geek keeps the task

best when seniors are “all round” skilled

Outcomes

Fastest Possible Knowledge Transferif seniors get their targets straightjuniors will be inhaling skill

Great Way To Learn Coachinggot would-be coaches?“hand-sit pairing” is a fount of practice

Validated Team Assessmentslearn exactly where juniors arediscover FAQ’s and answer them

Pressure Bottlenecking

Use Your Influence

To Limit Work In Progress

At The Source

The Need

Alternatives To Death Marchcollossal waste planning theaterendless overtimemental and physical exhaustion

Unanimous Grasp Of Priority & Limiteveryone knows the problem……but no one can quite face the solution

Mechanics

Radically Limit Work In Progresspure pull systemworry most about “rows per column”

Create Strong Information Radiatorkanban boards are potent *and* trendyuse a whiteboard, not a computer

Adopt Standups & Core Hoursmeeting discipline is urgent

A Kanban Radiator

Rows Vs. Columns

Outcomes

Pressure Will Drop

this is not rational

fortunately, neither are people

Managers Will Get It

especially grandbosses and up

over time, you’ll be *required* to do it

Five Techniques ReduxOne-Click Refactoring

Pro Pair Rotating

Blind Baby-Stepping

Lottery Lunch & Learn

Pressure Bottlenecking

top related