/34@yegor256 1
Yegor Bugayenko

Joker 2018

St.Petersburg, Russia

20 October 2018
Quality vs. Quantity
/28@yegor256
zerocracy.com
2
The Gist:
Mistakes must be
forgivable, not enough
code—not.
/37@yegor256 3
Zerocracy
/37@yegor256 4
@yegor256 1.9K
/37@yegor256 5
takes.org
/37@yegor256 6
cactoos.org
/37@yegor256 7
3rd Volume

Summer 2019
/37@yegor256 8
@yegor256news
/34@yegor256 9
Quality?
/34@yegor256 10
Bad Guys?
/34@yegor256 11
Can We Improve?
/34@yegor256 12
“A good programmer will
produce fault-free code,
while a bad programmer will
produce code that is fault-
ridden.”
Good Coder = Less BugsWrong!
/34@yegor256 13
“Some people mistakenly refer to software defects as
bugs. When called bugs, they seem like pesky things that
should be swatted or even ignored. This trivializes a
critical problem and fosters a wrong attitude. Thus, when
an engineer says there are only a few bugs left in a
program, the reaction is one of relief. Suppose, however,
that we called them time bombs instead of bugs. Would
you feel the same sense of relief if a programmer told you
that he had thoroughly tested a program and there were
only a few time bombs left in it? Just using a different
term changes your attitude entirely.”
Bug = Time BombWrong!
/34@yegor256 14
Fear Driven Development
/34@yegor256 15
“If you’re scared of making changes, you can’t make
something dramatically better, or do that big code
cleanup. Maybe you can’t even deploy the code that
you already wrote and tested, because it feels too
scary. You just want to stick what’s sort-of-working,
even if it’s not great.”
“Fear makes you a worse programmer”
Julia Evans, https://goo.gl/MeLGxN
/34@yegor256 16
Tech Debt
Stale Branches
Boring
Stress
/34@yegor256 17
Fix the Process, not People
/34@yegor256 18
Blame-Free Environment
/34@yegor256 19
Repository Production
Staging
Programmers End-Users
Testers Pipeline
/34@yegor256 20
1 Reject It!
Repository Production
Staging
/34@yegor256 21
“Each stage of a build pipeline is
looking for reasons to reject the build.
Tests failed? Reject it. Lint complains?
Reject it. Build fails integration tests in
staging? Reject it. Finished archive
smells funny? Reject it.”
/34@yegor256 22
Liquibase
Green/Blue

Deployment
CI/CD
rultor.com
/34@yegor256 23
2
Repository
Programmers
Quality Wall
/34@yegor256 24
Checkstyle
PMD
FindBugs
xcop
JaCoCo
enforcer(s)
anti-duplicates
xTests
warnings
/34@yegor256 25
3 Testers, Not Approvers
Repository Production
Staging
Testers
/34@yegor256 26
/34@yegor256 27
4 Crash Fast
Production
End-Users
Programmers ?
/34@yegor256 28
sentry.io
/34@yegor256 29
5 Encourage Bugs
Repository
Staging Programmers
Testers
Reports
/34@yegor256 30
$$$
Zerocracy
We pay per each bug reported
/34@yegor256 31
Pull Requests, or Bugs, or…

You Are Out!
/34@yegor256 32
Speed, not Quality
/34@yegor256 33
6 Educate Money People
Bosses
Programmers ProductionReports
/34@yegor256 34
It’s impossible :(

Quality vs Quantity