enterprise-fu; or, how to succeed in business (like a ninja)
enterprise-fu
Mike Dalessio / @flavorjones
mike.daless.io / blog.flavorjon.es
Agile Asbury 2013
permalink: bit.ly/enterprise-asbury-2013
(best experienced in a modern browser)
It is not the critic who counts; not the man who points out how the strong man stumbles, or where the doer of deeds could have done them better. The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood; who strives valiantly; who errs, who comes short again and again, because there is no effort without error and shortcoming; but who does actually strive to do the deeds.
— teddy roosevelt
enterprise-fu
or
how to succeed in business
like a ninja
enterprise-fu
or
how to succeed in business
like a samurai ?
enterprise-fu
or
how to succeed in business
like a ninja samurai !
me
- @flavorjones
- rubyist, "nokogiri mother"
- enterprisey since 1995
you
- who is a developer?
- who consults for an enterprisey company?
- who works FT for an enterprisey company?
what is "enterprisey"?
process and tools over individuals and interactions
documentation over working software
contract negotiation over customer collaboration
designing and following a plan over responding to change
ZOMG
IT'S ANTI-AGILE-ZILLA
is it really that easy?
let's dig deeper.
proposal:
you know you're "enterprisey" if ...
you don't know that you're a software company.
WARNING:
Subversive Content Ahead
This advice is intended for full-time employees in non-agile circumstances.
This presentation represents my personal experience.
My views do not represent the views of Pivotal Labs, and I recommend that consultants ignore everything I'm about to say.
today's empowerment seminar
- hell is other people
- staying sane
- learning to say "no"
- budget and the zen of non-budget
- controlling the conversation
hell is other people
why are you working there?
figure it out.
success is going to be a long, hard slog.
"do, or do not. there is no try."
hell is other people
- every company is different,
- and companies are made of individuals.
- companies are made of dysfunctional individuals.
1. learn to read other people
(easy)
Vaillant's "Defense Mechanisms"
Vaillant's "Defense Mechanisms"
- Level I - pathological defences (psychotic denial, delusional projection)
- Level II - immature defences (fantasy, projection, passive aggression, acting out)
- Level III - neurotic defences (intellectualization, reaction formation, dissociation, displacement, repression)
- Level IV - mature defences (humour, sublimation, suppression, altruism, anticipation)
1. learn to read other people
- Vaillant's "Defense Mechanisms"
- Dale Carnegie, "How to Win Friends and Influence People"
- try to understand why they are motivated to act they way they do
When dealing with people, remember you are not dealing with creatures of logic, but creatures of emotion.
— dale carnegie
2. A.B.D.
2. A lways B e D elivering
2. Always Be Delivering
(easy)
- let other people infight and be lazy or passive-aggressive
- don't sweat the small stuff
- be better than that: deliver value.
If he fails, at least fails while daring greatly, so that his place shall never be with those cold and timid souls who neither know victory nor defeat.
— teddy roosevelt
3. working code always beats vaporware
(easy)
- don't get sucked into endless debates
- when in doubt, keep your head down and code
- working code always beats vaporware
(except when it doesn't)
staying sane in an insane place
- harder than you might think
- more important than you probably think
- remember why you work here? channel that.
4. small wins, lots of them
(easy)
- success often depends on other people
- moderate your expectations
- celebrate the small wins
5. hire for brains and personality (not skills)
(easy)
- your team will end up doing other peoples' jobs for them
- you'll be in the trenches together
- you need to support each other
stay at "level 4 mature"
- Vaillant's "Defense Mechanisms"
- humor
- planning
- sublimation (heading to the bar)
learning to say "no"
or
owning the outcome
traditional agile / XP
agile presupposes users exist that will:
... give feedback,
... answer "why?"
... and lead you to the simplest thing that could possibly work.
traditional agile / XP
or else, agile presupposes a competent product team exists that will:
... proxy (imperfectly) for user feedback,
... try hard to answer "why?"
... try to lead you the simplest thing,
... and act as a BS filter.
BS filter?
In the absence of real users,
there will be bikeshedding.
the problem
with agile / XP
=============================
- if you don't have users,
- and you don't have competent product management,
- what's the simplest thing that could possibly work?
who the hell knows.
the problem
with agile / XP
=============================
- agile has always been about saying "yes" to the right things.
- now you need to learn to say "no" to the wrong things.
- remember to trust the process.
who judges right & wrong?
YOU DO.
6. own the outcome
(moderate)
- use your common sense!
- silently judge. if something's wrong, be aware that it's wrong.
- try not to do terrible things
7. learn to not-obey
(moderate)
Stanley Bing's "Throwing the Elephant"
- obey slowly
- obey partially
- obey badly
- disobey (difficult!)
7. learn to not-obey
" Fire and Motion "
- keep people off-balance and start controlling the conversation
- A.B.D. / "small wins, lots of them"
- deliver what they want , not what they ask
- show it off!
7. learn to not-obey
practice useful non-confrontational phrases:
- "the challenge for me ..."
- "to rephrase your request ..."
- "i completely understand your position, but ..."
7. learn to not-obey
in summary:
- obey slowly/partially/badly/not-at-all
- do the right thing
- don't ask permission
- don't debate; deliver.
hell is other people
(redux)
hell is other people
working with people on their own terms
"Some folks, you just can't reach."
"Some folks, you just can't reach."
some people you'll be able to work with,
and some people will make it hard for you.
8. welcome other doers
(easy)
- if you are getting things done, you'll attract the notice of like-minded people.
- learn to recognize these people.
- bring them into standups, involve them in story-writing, etc.
9. learn how to compel the difficult ones
(moderate)
- always ask nicely (Dale Carnegie!)
- use "Defense Mechanisms" to diagnose dysfunction
- compel appropriately! (e.g., JIRA ticket)
10. indulge the talkers
(moderate)
- some people need to talk it out.
- ask "what is the next most important thing?"
- listen, but do not promise! choose an appropriate way to say "no."
business has a short memory. take advantage of it.
budget and the art
of non-budget
==================================
- budget is a tool for communicating with the business,
- or, choosing when to not communicate.
- estimation == budget
infrastructure wants to be free
- not really, but nobody wants to pay for it.
- budgets are not unlimited
- particularly painful if delivery schedule is long (which is why we ship soon and ship often)
11. make your infrastructure free
(moderate)
include in your estimates:
- paying off tech debt
- spikes on new technology
- be prepared to justify the estimate, but do not offer details!
why include tech debt and spikes in estimates?
- do you give separate estimates for writing tests?
- avoid non-constructive debate
- nobody in business cares about the craft.
get over it.
11. make your infrastructure free
- call YAGNI on unnecessary architecture, and build only what's necessary
- who decides what's necessary?
- YOU DO.
when infrastructure is delivered for free ...
- your team looks good,
- there's a multiplier for other teams and projects,
- and you can start to develop a technical roadmap .
stealth projects
(a tangent)
what's a stealth project?
an experiment or "spike" with a goal to:
- quickly validate a hypothesis
- learn how new technology may be applied
- experiment with radical new product ideas
why is that important?
- better understand limits of technology and the domain
- demonstrate technology capabilities to the business
- change the conversation
12. fund a stealth project
(difficult)
- pad your estimates to buy time (extremely risky!)
- set internal goals and timebox it
- show it to somebody
controlling the conversation
how are you feeling?
- getting behind? working on unimportant things?
- unable to get traction on good ideas?
- feeling like you're constantly off-message?
you are not controlling the conversation
13. control the conversation
(difficult)
build a technical roadmap
- what do you want to accomplish?
- how do you want to accomplish it?
- what features can you bang out along the way?
talk about the technical roadmap
- bring a printout with you to meetings
- wave it around. treat it like it's a first-class artifact.
- demand respect!
act on the technical roadmap
- use it to frame feature requests and support your estimates
- when there aren't fires to be put out ... execute!
- remember: small wins
whew.
let's review.
hell is other people
- learn to read other people
- A.B.D.
- working code always beats vaporware
- welcome other doers
- learn how to compel the difficult ones
- indulge the talkers
staying sane in an insane place
- small wins, lots of them
- hire for brains and personality (not skills)
learning to say "no"
- own the outcome
- learn to not-obey
budget and the art
of non-budget
- make your infrastructure free
- fund a stealth project
controlling the conversation
- build a technical roadmap
- talk about the technical roadmap
- act on the technical roadmap
recommended reading
- Stanley Bing, "Throwing the Elephant"
- Dale Carnegie, "How to Win Friends and Influence People"
- Wikipedia, Vaillant's "Defense Mechanisms"
- Joel Spolsky, " Fire and Motion "
- Rands in Repose
- @flavorjones