Top developer mistakes
@hanokhaloni
Hanokhaloni
hanokhaloni
Let’s talk about…
NGSOFT_
a project is a system set to
accomplish particular tasks under
time constraints
Pre-Prod Prototype Alpha Beta
Polish /
QA
Publish Sales
Months
A typical project
Pre-Prod Prototype Alpha Beta
Polish /
QA
Publish Sales
12 – 24 Months
A typical project
Pre-Prod
• FRI morning
Prototype
• FRI 1300
Alpha
• FRI 1900
Beta
• SAT 1000
Polish /
QA
• Sat 1400
• PLAYTEST!
Publish
• Sat 1600
Sales
• Sat 1900
~36 Hours
Developer quiz
According to stackoverflow, how
many developers are there in the
world (2021)?
A) 5 million
C) 10 million
B) 25 million
D) 45 million
According to stackoverflow, how
many developers are there in the
world (2021)?
A) 5 million
C) 10 million
B) 25 million
D) 45 millionIn 2030
According to calcalist, how many
developers are there in the israel
(2021)?
A) 400,000
C) 300,000
B) 200,000
D) 100,000
According to calcalist, how many
developers are there in the israel
(2021)?
A) 400,000
C) 300,000
B) 200,000
D) 100,000
What’s the US male/female ratio of
software developers (2021)?
A) 71% male, 29% female
C) 81% male, 19% female
B) 50% male, 50% female
D) 86% male, 14% female
What’s the US male/female ratio of
software developers (2021)?
A) 71% male, 29% female
C) 81% male, 19% female
B) 50% male, 50% female
D) 86% male, 14% female
The average age for a software
developer is
A) 30 years
C) 35 years
B) 40 years
D) 45 years
The average age for a software
developer is
A) 30 years
C) 35 years
B) 40 years
D) 45 years
Actually
39.8
According to stackoverflow,
percentage of developers with less
than 5 years of experience is?
A) 15%
C) 35%
B) 25%
D) 40%
According to stackoverflow,
percentage of developers with less
than 5 years of experience is?
A) 15%
C) 35%
B) 25%
D) 40%
Actually
35.67
There is an exponential
growth in junior
developers
Top developer mistakes
Your job is all about
code
What does a carpenter do?
What does a busdriver do?
It’s not about the tools
It’s not about being a code
monkey churning out working
code
You don’t become a 10x developer
by typing 10 times faster
Solve problems with less code*
Tip - Always ask yourself -
Would I like to use this software?
If not -
How can I do something different?
If only the business
would get the
requirements right
It doesn’t quite work that way…
It assumes that someone else’s job
is to tell the developers what to
do?
Great ideas were prototyped
without understanding the
requirements
You users rarely understand the
requirements
We need to evolve software
Requirements rarely lie on the
surface…
They’re buried deep beneath
layers of assumptions,
misconceptions, and politics
Tip - Often the first step is to
discover the real problem
Pro Tip - Use modularization to
support change
The only thing that
matters is speed
Typing speed alone will not
improve your performance
Allow yourself time to think
Plan before coding
Once the problem is clear the
coding is easy
Optimising work (so that everyone
is busy all the time), has been
proven to be wrong
You are paid to think
Tip - Optimise the learning
Pro Tip - Practice some TDD
My job is to code - not
to understand the
problem domain
Knowledge of tools is important,
but it’s not just that
Domain experts are too close to
the problem
Try to see the real problem in the
real world
The best programmers has
enough domain knowledge
The programs use domain terms
Tip - work on common language
with domain experts
Pro Tip - Learn about BDD
Software architecture is
for experts
If you can’t explain it, it means that
you don’t understand
Where do software architects
come from?
Describe the system
The system is
written in C++
and uses
microservices
deployed on
AWS
The system
allows users to
transfer money
securely
between each
other.
The system is
written in C++
and uses
microservices
deployed on
AWS
The system
allows users to
transfer money
securely
between each
other.
What ideas help you decide where
to place failure?
What’s the tourist map?
You are the of architect of your
own code
Tip - Answer - What does it do and
how does it do it?
Pro Tip - Can you explain the
system to your mother?
Asking for help is a sign
on ignorance
Smart people, ask questions
The more you know about
something, the more you know you
don’t know
Dumb people, think that they have
all the answers
Be comfortable with uncertainty
Ask questions!
Tip - Ask questions!
Pro Tip - Asking the same question
too many times might be a
problem…
Testing is someone
else’s job
How do you know your code
works?
Do you automate your tests?
If we fix a problem, how can we tell
it has been fixed?
Use double booking
Tip - Automate tests
Pro Tip - Prove that your code
works without running your
product
I would like to do a
better job, but my boss
won’t let me
Does anyone limit you to use a
debugger?
Does anyone limit you to use a
keyboard?
You have to tend your tools
It is better to ask for forgiveness
than to ask for permission
Tip - your estimates should
include refactoring and testing
Pro tip - spare some time to
improving your tools
In Closing
Your job is all about code
If only the business would get the
requirements right
The only thing that matters is speed
My job is to code - not to understand the
problem domain
Asking for help is a sign on ignorance
Testing is someone else’s job
I would like to do a better job, but my boss
won’t let me
We are the experts,
it’s our profession
We must take responsibility
for our work
@hanokhaloni
Hanokhaloni
hanokhaloni

top developer mistakes