killing zombie software - technology exit planning

156
KILLING ZOMBIE SOFTWARE please design software to die gracefully http://www.flickr.com/photos/scottpoborsa

Upload: eric-tachibana

Post on 27-Aug-2014

3.395 views

Category:

Software


5 download

DESCRIPTION

Whether you are a big, sprawling MNC or a sleak, sexy start-up, zombie software will quickly invade your product platform. This deck is meant to start a conversation on how our industry can fight the zombies.

TRANSCRIPT

Page 1: Killing Zombie Software - Technology Exit Planning

KILLING ZOMBIE SOFTWARE

please design software to die gracefully

http://www.flickr.com/photos/scottpoborsa/

Page 2: Killing Zombie Software - Technology Exit Planning

PART ONEWELCOME TO THE

ZOMBIE APOCALYPSE

Page 3: Killing Zombie Software - Technology Exit Planning

whether you work in a mega MNC or a sexy lean

start-up

Page 4: Killing Zombie Software - Technology Exit Planning

today’s software professional is at the

heart of a zombie apocalypse.

Page 5: Killing Zombie Software - Technology Exit Planning

for the last 30 years, we’ve learned how to build more stuff, faster

Page 6: Killing Zombie Software - Technology Exit Planning

but we’ve spent very little time learning how

to get rid of it.

Page 7: Killing Zombie Software - Technology Exit Planning

the result is platform sprawl

Page 8: Killing Zombie Software - Technology Exit Planning

with software products and features that are

long dead, but which still walk the earth

Page 9: Killing Zombie Software - Technology Exit Planning

“grawwww”

Page 10: Killing Zombie Software - Technology Exit Planning

this is not sustainable.

Page 11: Killing Zombie Software - Technology Exit Planning

if we don’t act now, the zombies will win

Page 12: Killing Zombie Software - Technology Exit Planning

this deck hopes to start a discussion about how we

escape the apocalypse and kill all those software

zombies!

Page 13: Killing Zombie Software - Technology Exit Planning

IDEA ONEALL SOFTWARE NEEDS TO DIE

Page 14: Killing Zombie Software - Technology Exit Planning

here is a law of nature.

Page 15: Killing Zombie Software - Technology Exit Planning

all software needs to die.

Page 16: Killing Zombie Software - Technology Exit Planning

either the business needs will change

Page 17: Killing Zombie Software - Technology Exit Planning

or newer technologies will arise

Page 18: Killing Zombie Software - Technology Exit Planning

either way, all software will eventually become

obsolete.

Page 19: Killing Zombie Software - Technology Exit Planning

(and when I say eventually, given biz / innovation speed, I mean 3-5 years for a big firm and 6 – 12 months for a small

one)

Page 20: Killing Zombie Software - Technology Exit Planning

so, knowing this

Page 21: Killing Zombie Software - Technology Exit Planning

one thing is clear

Page 22: Killing Zombie Software - Technology Exit Planning

we need a graceful way to get rid of obsoleting

software.

Page 23: Killing Zombie Software - Technology Exit Planning

IDEA TWOIT IS HARD TO KILL

SOFTWARE

Page 24: Killing Zombie Software - Technology Exit Planning

unfortunately, shuffling off this mortal code is not

so easy.

Page 25: Killing Zombie Software - Technology Exit Planning

killing software can be near impossible.

Page 26: Killing Zombie Software - Technology Exit Planning

there are technical reasons for why this is

true.

Page 27: Killing Zombie Software - Technology Exit Planning

for example, in complex platforms where many

bits of software interact upstream, downstream,

and service to service

Page 28: Killing Zombie Software - Technology Exit Planning

changing one piece can have profound impact

across the sprawl.

Page 29: Killing Zombie Software - Technology Exit Planning

decoupling a dying technology can become a

feat of engineering

Page 30: Killing Zombie Software - Technology Exit Planning

like a mad game of jenga.

Page 31: Killing Zombie Software - Technology Exit Planning

and there are people reasons too.

Page 32: Killing Zombie Software - Technology Exit Planning

killing software can easily look like (or actually be)

killing jobs.

Page 33: Killing Zombie Software - Technology Exit Planning

newer business flows or gadgetry render existing

personal skill sets obsolete.

Page 34: Killing Zombie Software - Technology Exit Planning

making way for the new is scary and/or

threatening to the people that own it.

Page 35: Killing Zombie Software - Technology Exit Planning

moreover, there are budgetary reasons

Page 36: Killing Zombie Software - Technology Exit Planning

supporting all this legacy software is extremely

expensive.

Page 37: Killing Zombie Software - Technology Exit Planning

we spend so much keeping the platform

afloat, that we’ve nothing left to dig

ourselves out of the hole we’re in.

Page 38: Killing Zombie Software - Technology Exit Planning

(today some firms spend 60-70% of their IT budget

maintaining the existing platform)

Page 39: Killing Zombie Software - Technology Exit Planning

IDEA THREEIT IS EASY TO MAKE NEW SOFTWARE

Page 40: Killing Zombie Software - Technology Exit Planning

worse yet, not only are we not killing software,

but we’ve just enjoyed 30 years of high-speed

build-out.

Page 41: Killing Zombie Software - Technology Exit Planning

so for every 1 zombie we failed to kill, 9 more

future zombies arose.

Page 42: Killing Zombie Software - Technology Exit Planning

in the growing economies from 1980 to 2008, businesses simply

threw money at the platform.

Page 43: Killing Zombie Software - Technology Exit Planning

the mantra was build, build, build!!!!

Page 44: Killing Zombie Software - Technology Exit Planning

and where we could not grow organically

Page 45: Killing Zombie Software - Technology Exit Planning

we merged, and we acquired

Page 46: Killing Zombie Software - Technology Exit Planning

adding duplicative software on top of

duplicative software.

Page 47: Killing Zombie Software - Technology Exit Planning

as a result

Page 48: Killing Zombie Software - Technology Exit Planning

organizations today are living with massive and

intractable platform sprawls

Page 49: Killing Zombie Software - Technology Exit Planning

made up of dozens, hundreds, and in many

cases thousands of vestigial bits of software

Page 50: Killing Zombie Software - Technology Exit Planning

of which, perhaps, 30% is actually needed

Page 51: Killing Zombie Software - Technology Exit Planning

which means that 70% of our software is

Page 52: Killing Zombie Software - Technology Exit Planning

ZOMBIE SOFTWARE!!!!!!

Page 53: Killing Zombie Software - Technology Exit Planning

IDEA FOURZOMBIES SUCK

Page 54: Killing Zombie Software - Technology Exit Planning

zombie software eats you alive, starting with the

brain

Page 55: Killing Zombie Software - Technology Exit Planning

since only 30% of your budget can be spent on

Innovation

PS: In many firms, ¾ of that 30% is spent meeting regulatory enhancements, not really innovation

Page 56: Killing Zombie Software - Technology Exit Planning

not much innovation actually happens

Page 57: Killing Zombie Software - Technology Exit Planning

and even the innovation that can happen

Page 58: Killing Zombie Software - Technology Exit Planning

is burdened with the huge technical barrier to

entry

Page 59: Killing Zombie Software - Technology Exit Planning

of integrating with the legacy platform from

birth

Page 60: Killing Zombie Software - Technology Exit Planning

and who wants to work in a neighbourhood full

of zombies

Page 61: Killing Zombie Software - Technology Exit Planning

in today’s zombie sprawl

Page 62: Killing Zombie Software - Technology Exit Planning

your best, most highly-paid geek superstars will

be as bored as sh*t

Page 63: Killing Zombie Software - Technology Exit Planning

finally, all this vestigial technology creates great

complexity

Page 64: Killing Zombie Software - Technology Exit Planning

and complexity means greater risk of failure

Page 65: Killing Zombie Software - Technology Exit Planning

and longer times diagnosing and

recovering from failure

Page 66: Killing Zombie Software - Technology Exit Planning

which means bigger support organizations

Page 67: Killing Zombie Software - Technology Exit Planning

which means less money to innovate

Page 68: Killing Zombie Software - Technology Exit Planning

which means life sucks

Page 69: Killing Zombie Software - Technology Exit Planning

PART TWOHOW TO KILL

ZOMBIE SOFTWARE

Page 70: Killing Zombie Software - Technology Exit Planning

when you think of it this way

Page 71: Killing Zombie Software - Technology Exit Planning

zombie killing looks to be one of the most

important core skills of today’s technologist

Page 72: Killing Zombie Software - Technology Exit Planning

but what weapons can you wield

Page 73: Killing Zombie Software - Technology Exit Planning

as a master zombie slayer

Page 74: Killing Zombie Software - Technology Exit Planning

i’m proposing 5 weapons

Page 75: Killing Zombie Software - Technology Exit Planning

but I welcome feedback from the crowd if you

have creative ideas

Page 76: Killing Zombie Software - Technology Exit Planning

WEAPON ONEAdmit that you have a Problem

Page 77: Killing Zombie Software - Technology Exit Planning

the first thing you need to do is to

quantify how bad things are

Page 78: Killing Zombie Software - Technology Exit Planning

because otherwise, the budget holders

will continue to ignore you.

Page 79: Killing Zombie Software - Technology Exit Planning

knowing how bad things are means

Page 80: Killing Zombie Software - Technology Exit Planning

cleaning up your application inventory

Page 81: Killing Zombie Software - Technology Exit Planning

so that you really know how much

you’ve got, and how much it costs.

Page 82: Killing Zombie Software - Technology Exit Planning

I know

Page 83: Killing Zombie Software - Technology Exit Planning

MIS data cleaning is really, really, really, really, really, really, really, really, really,

boring work

Page 84: Killing Zombie Software - Technology Exit Planning

but if you want to be a master zombie slayer,

it’s part of the job

Page 85: Killing Zombie Software - Technology Exit Planning

come to terms with spreadsheets

Page 86: Killing Zombie Software - Technology Exit Planning

make them your friends

Page 87: Killing Zombie Software - Technology Exit Planning

most importantly, stop sniping and take small,

steady steps.

Page 88: Killing Zombie Software - Technology Exit Planning

once you know how bad your problem is

Page 89: Killing Zombie Software - Technology Exit Planning

it’s time to budget for resolution

Page 90: Killing Zombie Software - Technology Exit Planning

this means business cases, time/cost/benefit

estimates, lobbying, negotiation, and

prioritization

Page 91: Killing Zombie Software - Technology Exit Planning

but remember

Page 92: Killing Zombie Software - Technology Exit Planning

technology is the one that said it wanted to think like the business

Page 93: Killing Zombie Software - Technology Exit Planning

so here is your chance

Page 94: Killing Zombie Software - Technology Exit Planning

get involved with your business partners

Page 95: Killing Zombie Software - Technology Exit Planning

and start solving this business problem

Page 96: Killing Zombie Software - Technology Exit Planning

WEAPON TWODesign for

Deprecation

Page 97: Killing Zombie Software - Technology Exit Planning

most software development life cycle

plans

Page 98: Killing Zombie Software - Technology Exit Planning

look a lot like the Iraq War

Page 99: Killing Zombie Software - Technology Exit Planning

no exit plan.

Page 100: Killing Zombie Software - Technology Exit Planning

with no exit plan

Page 101: Killing Zombie Software - Technology Exit Planning

it’s no wonder that we cannot kill zombie

software.

Page 102: Killing Zombie Software - Technology Exit Planning

while it is probably fair for developers in the

trenches

Page 103: Killing Zombie Software - Technology Exit Planning

to leave the high-level platform strategy to power-point-pushers

Page 104: Killing Zombie Software - Technology Exit Planning

it is our responsibility to make the right

strategic decisions with day-to-day code

Page 105: Killing Zombie Software - Technology Exit Planning

and that means designing exit plans

into your code.

Page 106: Killing Zombie Software - Technology Exit Planning

my advice is to add a project checkpoint into

your development process.

Page 107: Killing Zombie Software - Technology Exit Planning

before you deploy your code into the platform

Page 108: Killing Zombie Software - Technology Exit Planning

make sure you have built in the means to

deprecate it gracefully

Page 109: Killing Zombie Software - Technology Exit Planning

better yet, add a chapter to your

business requirements document

Page 110: Killing Zombie Software - Technology Exit Planning

and work through the exit plan with the

business

Page 111: Killing Zombie Software - Technology Exit Planning

and if you are one of them new fangled, fancy, agile punks

Page 112: Killing Zombie Software - Technology Exit Planning

then explicitly build exit into your scrum

Page 113: Killing Zombie Software - Technology Exit Planning

WEAPON THREEEncapsulate

Page 114: Killing Zombie Software - Technology Exit Planning

one of the most important design-for-deprecation tools is

encapsulation

Page 115: Killing Zombie Software - Technology Exit Planning

you remember that thing the prof in object-

oriented design 101 kept going on about

Page 116: Killing Zombie Software - Technology Exit Planning

encapsulation means that you create air-tight black boxes with clear

fully-functional interfaces

Page 117: Killing Zombie Software - Technology Exit Planning

when you want to replace a black box, it is easy because nothing

in the surrounding platform cares about

what is inside

Page 118: Killing Zombie Software - Technology Exit Planning

because they never knew what was inside

in the first place

Page 119: Killing Zombie Software - Technology Exit Planning

so long as you implement the original interface, you can kill off the original code

and replace it without disruption.

Page 120: Killing Zombie Software - Technology Exit Planning

add to that the driver design pattern, and

we’re ready to roll on a zombie-slaying

expedition.

Page 121: Killing Zombie Software - Technology Exit Planning

and encapsulation works at every level of

zoom, like a fractal

Page 122: Killing Zombie Software - Technology Exit Planning

it works forfunctions, objects,

applications, services, hardware, networks, business units (think

outsourcing), or whatever

Page 123: Killing Zombie Software - Technology Exit Planning

all that said, my point is this

Page 124: Killing Zombie Software - Technology Exit Planning

as a matter of professional pride,

don’t allow your code to go into production

without encapsulation

Page 125: Killing Zombie Software - Technology Exit Planning

WEAPON FOURKnow Your Enemy

Page 126: Killing Zombie Software - Technology Exit Planning

Ok, so I get that when you push your

software into the wild things get squishy

Page 127: Killing Zombie Software - Technology Exit Planning

for example, other software grabs your output, reformats it and sends it out as

input into something else.repeat()

Page 128: Killing Zombie Software - Technology Exit Planning

and you quickly lose track of who depends

on you

Page 129: Killing Zombie Software - Technology Exit Planning

now I am not saying I have a perfect

answer, but a master zombie slayer will

work it out for their project

Page 130: Killing Zombie Software - Technology Exit Planning

if latency is not an issue, log third party

requests so you know who to notify when

you need to exit

Page 131: Killing Zombie Software - Technology Exit Planning

this could even be done manually with a

register owned and managed by the

application owner

Page 132: Killing Zombie Software - Technology Exit Planning

whatever the case, a master zombie slayer

will make sure that she does not contribute to

platform spaghetti

Page 133: Killing Zombie Software - Technology Exit Planning

WEAPON FIVENuke and Restart

Page 134: Killing Zombie Software - Technology Exit Planning

we invest too much of our emotion and

identity into our things

Page 135: Killing Zombie Software - Technology Exit Planning

it is a human biological fixed action pattern to fall pray to

the fallacy of sunk costs

Page 136: Killing Zombie Software - Technology Exit Planning

what I am trying to say is, don’t be afraid to rip it all down and

start again

Page 137: Killing Zombie Software - Technology Exit Planning

we don’t do that enough with our

platforms

Page 138: Killing Zombie Software - Technology Exit Planning

we fix and mend

Page 139: Killing Zombie Software - Technology Exit Planning

and fix and mend

Page 140: Killing Zombie Software - Technology Exit Planning

until all that is left is…well…a zombie

Page 141: Killing Zombie Software - Technology Exit Planning

i am not actually proposing build for

the sake of build

Page 142: Killing Zombie Software - Technology Exit Planning

but I am saying that we don’t consider the

option enough

Page 143: Killing Zombie Software - Technology Exit Planning

and that starting from scratch is often a cheaper, better

option

Page 144: Killing Zombie Software - Technology Exit Planning

certainly, anyone who has used the

minimum viable product model

Page 145: Killing Zombie Software - Technology Exit Planning

knows that version 1 is necessarily wrong

Page 146: Killing Zombie Software - Technology Exit Planning

and that version 2 should be designed from the ground up or it will be

forever tied to the faulty assumptions you

uncovered in the MVP

Page 147: Killing Zombie Software - Technology Exit Planning

anyway, just seriously consider the option from time to time so you know

you are not throwing good money after bad

Page 148: Killing Zombie Software - Technology Exit Planning

PART THREEOUT

Page 149: Killing Zombie Software - Technology Exit Planning

if you’ve gotten this far

Page 150: Killing Zombie Software - Technology Exit Planning

wow!

Page 151: Killing Zombie Software - Technology Exit Planning

but don’t stop here

Page 152: Killing Zombie Software - Technology Exit Planning

please join me in the discussion

Page 153: Killing Zombie Software - Technology Exit Planning

give me your ideas on new weaponry

Page 154: Killing Zombie Software - Technology Exit Planning

i’ll add it to this deck and we can build something really

useful

Page 155: Killing Zombie Software - Technology Exit Planning

SHARE THIS DECK & FOLLOW ME(please-oh-please-oh-please-oh-please)

stay up to date with my future slideshare posts

http://www.slideshare.net/selenasol/presentationshttps://twitter.com/eric_tachibana

http://www.linkedin.com/pub/eric-tachibana/0/33/b53