Uploaded by barbos

Yegor Bugayenko Don t aim for quality aim for speed

advertisement
1/34
@yegor256
Quality vs. Quantity
Yegor Bugayenko
Joker 2018
St.Petersburg, Russia
20 October 2018
2/28
@yegor256
:
t
s
i
G
e
h
T
Mistakes must be
forgivable, not enough
code—not.
zerocracy.com
3/37
@yegor256
Zerocracy
4/37
@yegor256
@yegor256
1.9K
5/37
@yegor256
takes.org
6/37
@yegor256
cactoos.org
7/37
@yegor256
3rd Volume
Summer 2019
8/37
@yegor256
@yegor256news
9/34
@yegor256
Quality?
10/34
@yegor256
Bad Guys?
11/34
@yegor256
Can We Improve?
12/34
@yegor256
Good
“A good programmer will
produce fault-free code,
while a bad programmer will
produce code that is faultridden.”
Code
r=
!
g
L
n
e
o
s
s
r
B
u
W
gs
13/34
@yegor256
Bug
“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 diļ¬€erent
term changes your attitude entirely.”
= Ti g!
m
n
e
B
o
r
o
m
b
W
14/34
@yegor256
Fear Driven Development
15/34
@yegor256
“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
16/34
@yegor256
Stale Branch
es
Stress
t
b
e
D
h
Tec
Boring
17/34
@yegor256
Fix the Process, not People
18/34
@yegor256
Blame-Free Environment
19/34
@yegor256
Testers
Repository
Programmers
Staging
Pipeline
Production
End-Users
20/34
@yegor256
1
Repository
Reject It!
Staging
Production
21/34
@yegor256
“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.”
22/34
@yegor256
e
s
a
b
i
u
Liq
Green/Blue
Deployment
CI/CD
ru
m
o
c
.
r
lto
@yegor256
2
23/34
Quality Wall
Repository
Programmers
24/34
@yegor256
JaCoCo
PMD
e
l
y
t
s
k
c
Che
s
e
t
a
c
i
l
p
u
d
i
t
n
a
p
o
xc
warnings
xTes
ts
s
g
u
B
d
Fin
enforcer(s)
25/34
@yegor256
3
Testers, Not Approvers
Testers
Repository
Staging
Production
@yegor256
26/34
27/34
@yegor256
4
Crash Fast
Production
Programmers
?
End-Users
28/34
@yegor256
sentry.io
29/34
@yegor256
5
Repository
Encourage Bugs
Testers
Reports
Staging
Programmers
30/34
@yegor256
Zerocracy
$$$
We pay per each bug reported
@yegor256
Pull Requests, or Bugs, or…
You Are Out!
31/34
32/34
@yegor256
Speed, not Quality
33/34
@yegor256
6
Educate Money People
Bosses
Programmers
Reports
Production
34/34
@yegor256
It’s
(
:
e
l
b
i
s
s
o
imp
Download