It’s all about productivity or maybe it’s all about delivering value. Or creating secure applications, dealing with changing directions.
Whatever it it we often feel that we’re lacking - that it’s hard enough to be any sort of developer. That even 1x is often a challenge
In this talk we’re going to examine how to think more clearly about being a Java developer:, help you understand the tools and approaches that can offer practical insight into how you work now as well as providing guidance on alternatives that just might give you the powered armour you need.
A mix of tools, proven processes, new techniques and lessons learnt the hard way make up a session designed to help you understand that being a 10x developer isn’t about having super powers - it’s about using the powers you already have in wiser, more considered ways.
2. @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 …
8. @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.
17. @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
18. @spoole167
@spoole167
Step 3 Explore and learn the new environment
Figure out how
‘delivery’ works
Prove you can
deploy the simplest
‘hello world’
20. @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
21. @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
22. @spoole167
@spoole167
Step 7: Jelly Molds
Unit tests take on the shape
of your application
You can fearlessly refactor
when you have good tests
25. @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
29. @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
30. @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
33. @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
35. @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
36. @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
39. @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”
40. @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…
44. @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
45. @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”
48. @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