SlideShare a Scribd company logo
@spoole167
@spoole167
Superman or Ironman - can
everyone be a 10x developer?
Steve Poole
@spoole167
@spoole167
We’ve all met them
That person who just seems to
write more code, fix more PRs,
gets ‘stuff’ to happen …
The person who does it all …
@spoole167
@spoole167
Those super heroes
Who can do everything
faster and better..
@spoole167
@spoole167
Wouldn’t it great to be a 10x developer?
@spoole167
@spoole167
Write 10x lines of code?
Fix 10x bugs?
work 800 hours a week?
@spoole167
@spoole167
Have a secret identity?
“I only work alone”
“others hold me back”
Have special powers?
“I rewrote the
backend overnight”
@spoole167
@spoole167
I’ve been around a bit …
@spoole167
@spoole167
Developer Advocate, Security Champion,
DevOps practitioner (whatever that means)
Long time Java developer, leader and evangelist.
I’ve been working on Java SDKs and JVMs since Java was less
than 1.
JavaOne Rockstar, JSR leader, committer on open source
projects including ones at Apache, Eclipse and OpenJDK.
@spoole167
@spoole167
Most of that time has been in the Java space
@spoole167
@spoole167
In all that time – I’ve met a
handful of real “10x” developers.
not all of them were developers
@spoole167
@spoole167
In all that time – I’ve met a
handful of real “10x” developers.
None of them were
superheroes
@spoole167
@spoole167
All of them were professionals
@spoole167
@spoole167
Being a better developer takes time
Start here
@spoole167
@spoole167
Start with good role models
@spoole167
@spoole167
10x Developers might work like this
@spoole167
@spoole167
Step 1 use git
Everything goes under change control
experiments, config, notes …
@spoole167
@spoole167
Step 2 have your own simple CI/CD system
Just enough to be able to deliver / deploy
reliably
Minimal plugins
or capabilities.
JUST enough
@spoole167
@spoole167
Step 3 Explore and learn the new environment
Figure out how
‘delivery’ works
Prove you can
deploy the simplest
‘hello world’
@spoole167
@spoole167
Step 4 Now break it
Break the code
Break the deployment
Exercise the diagnostics
process
@spoole167
@spoole167
Step 5 Become knowledgeable in the new API
Spend time learning how things work.
What the limitations are.
Kick the tyres
Write tests to check your assumptions.
Find the sharp edges
Document everything
Read the fine print
@spoole167
@spoole167
Step 6: Start the first prototype
Write code and tests
Tests are most important
You are going to throw the
code away later
if there is any super power – its this
@spoole167
@spoole167
Step 7: Jelly Molds
Unit tests take on the shape
of your application
You can fearlessly refactor
when you have good tests
@spoole167
@spoole167
A 10x developer is :
More this than this
@spoole167
@spoole167
A 10x developer is :
More this than this
@spoole167
@spoole167
A 10x developer is someone who :
Delivers high quality value on time that
only does what is necessary
Understands that the value isn’t the
code they write but the success they
enable for others
Understands that code is ephemeral,
solutions are long term
Understands that delivering value is a
team sport
@spoole167
@spoole167
This is hard
@spoole167
@spoole167
There are guidelines 
Facts
Feelings
Evidence
Emotion
Teamwork
Tantrums
Knowledge
Hearsay
Skills
Stack overflow
Working code
Everything
Steady progress
Fits and starts
@spoole167
@spoole167
Balancing all the demands is difficult – so no big changes
@spoole167
@spoole167
10x Engineers are productive because they
have clarity of purpose
• One thing at a time
• that reduces uncertainty and adds knowledge the most
sometimes that’s write code
sometimes that’s fix a bug
sometimes that learn a new skill
sometimes that’s help others in the team
• Small wins all the time
@spoole167
@spoole167
10x Engineers are productive because they
are always prepared to take risks
• Prepared means thinking ahead
• Investing for the longer term in ways that offer value now
• Understand that code is always a means to an end
• Are always working to mitigate risk – because risk can delay
delivering value
@spoole167
@spoole167
10x Developers think about development
differently
Example…
@spoole167
@spoole167
10x developers write lots of tests.
The hardly ever care about code coverage
Code Tests
@spoole167
@spoole167
Test suites are a long term investment
They allow a 10x Developer to
refactor mercilessly
Because code rots and it’s just a means
to an end
@spoole167
@spoole167
https://anarsolutions.com/rising-cost-defects/
Traditional view
@spoole167
@spoole167
hard to run
easy to run
Runs quickly
Takes a
long time
developers run fast
running, simple tests
Integrators run slower,
more complex tests
QA cover long running,
high domain knowledge
tests
10x developers work across teams
@spoole167
@spoole167
Always trying to maximise throughput
hard to run
easy to run
Runs quickly
Takes a
long time
developers run fast
running, simple tests
Integrators run slower,
more complex tests
QA cover long running,
high domain knowledge
tests
@spoole167
@spoole167
10x developers crave feedback everywhere
@spoole167
@spoole167
Feedback provides actionable intelligence
@spoole167
@spoole167
Work issues wisely
Ruthlessly prune the backlog.
Move nice-to-haves, and never going to fix
somewhere else. They’re just distractions
If it’s not fixed in a month – close it.
Reject internal issues that are poorly
worded
teach everyone to provide ‘evidence’
“I just got back from vacation
and the tests are failing. Well
some are. Portugal was nice”
@spoole167
@spoole167
Feedback helps
• Drives conversation and (hopefully) understanding across teams
• Brings focus on what’s important for everyone
• Brings clarity to decision making
• Focuses on facts, figures, evidence and Insight
Sounds a lot like how a 10x engineer behaves
Brings us on to something else…
@spoole167
@spoole167
10x Developers make their own DevEx
@spoole167
@spoole167
If this is your world
@spoole167
@spoole167
this is a 10x developers
world
@spoole167
@spoole167
10x engineers are craftspeople
investing in their skills all the
time – in a focused way
poor understanding of tools
leads to delays
so they try to master their tools
@spoole167
@spoole167
10x developers don’t say ever say
“I thought I was using the tool correctly”
“I didn’t realize what the default setting was”
“I trusted the tool to do the right thing”
@spoole167
@spoole167
Being a great developer
More this less this
@spoole167
@spoole167
this and this
Being a great developer
@spoole167
@spoole167
Rule 1: delivers high quality code on time that only does what
is necessary.
Rule 2: strives to replace uncertainty with fact – in tools, in
code, in communications
Rule 3: focuses on incremental value and takes control of
their environment to make it possible
Rule 4: is a professional team player
Rule 5: know when and how to break all these rules
A great developer
@spoole167
@spoole167
Time for you to become a great developer

More Related Content

Superman or Ironman - can everyone be a 10x developer?