WEBVTT

1
00:00:19.290 --> 00:00:23.600
<00:00:19.290>Hello <00:00:19.430>and <00:00:19.570>welcome. <00:00:19.710>Um, <00:00:19.849>next <00:00:19.990>up <00:00:20.130>we <00:00:20.270>got <00:00:20.410>Oli <00:00:20.549>Goda. <00:00:20.689>Uh,

2
00:00:23.600 --> 00:00:27.320
<00:00:23.600>he's <00:00:23.687>the <00:00:23.775>c <00:00:23.862>e <00:00:23.950>o <00:00:24.037>and <00:00:24.125>founder <00:00:24.212>of <00:00:24.300>Sono <00:00:24.387>Source <00:00:24.475>and <00:00:24.562>he's <00:00:24.650>gonna <00:00:24.737>talk <00:00:24.825>about <00:00:24.912>Clean <00:00:25.000>Code.

3
00:00:27.980 --> 00:00:31.200
<00:00:27.980>His <00:00:28.135>explanation <00:00:28.291>is <00:00:28.446>that <00:00:28.602>code <00:00:28.757>should <00:00:28.913>be <00:00:29.068>secure, <00:00:29.224>robust, <00:00:29.380>reliable,

4
00:00:31.510 --> 00:00:35.680
<00:00:31.510>easy <00:00:31.637>to <00:00:31.764>maintain, <00:00:31.891>and <00:00:32.019>durable. <00:00:32.146>Much <00:00:32.273>like <00:00:32.400>food <00:00:32.528>should <00:00:32.655>be <00:00:32.782>healthy, <00:00:32.910>cheap,

5
00:00:36.230 --> 00:00:39.240
<00:00:36.230>easy <00:00:36.370>to <00:00:36.510>prepare. <00:00:36.650>And <00:00:36.790>you <00:00:36.930>know, <00:00:37.069>the <00:00:37.209>problem <00:00:37.349>that <00:00:37.489>we <00:00:37.629>have,

6
00:00:39.300 --> 00:00:42.640
<00:00:39.300>we <00:00:39.440>build <00:00:39.580>on <00:00:39.720>top <00:00:39.860>of <00:00:40.000>thousands <00:00:40.140>of <00:00:40.279>M <00:00:40.419>P <00:00:40.559>M <00:00:40.699>packages,

7
00:00:42.860 --> 00:00:46.720
<00:00:42.860>we <00:00:42.976>build <00:00:43.093>on <00:00:43.210>third <00:00:43.326>party <00:00:43.443>code <00:00:43.560>we <00:00:43.676>randomly <00:00:43.793>copied <00:00:43.910>from, <00:00:44.026>from <00:00:44.143>Stack <00:00:44.260>Overflow.

8
00:00:47.140 --> 00:00:50.640
<00:00:47.140>And <00:00:47.222>how <00:00:47.304>do <00:00:47.387>you <00:00:47.469>know <00:00:47.551>that <00:00:47.634>the <00:00:47.716>code <00:00:47.798>that <00:00:47.881>you <00:00:47.963>write <00:00:48.045>or <00:00:48.128>the <00:00:48.210>code <00:00:48.292>that <00:00:48.375>you <00:00:48.457>got <00:00:48.540>from

9
00:00:50.640 --> 00:00:53.360
<00:00:50.640>chat <00:00:50.815>G <00:00:50.990>p <00:00:51.165>t <00:00:51.340>actually <00:00:51.515>is <00:00:51.690>good <00:00:51.865>and <00:00:52.040>clean?

10
00:00:53.700 --> 00:00:56.440
<00:00:53.700>And <00:00:53.855>that's <00:00:54.011>where <00:00:54.166>Sonar <00:00:54.322>Source <00:00:54.477>and <00:00:54.633>other <00:00:54.788>products <00:00:54.944>come <00:00:55.100>out.

11
00:00:56.740 --> 00:01:00.280
<00:00:56.740>We <00:00:56.822>just <00:00:56.904>had <00:00:56.987>a <00:00:57.069>good <00:00:57.151>chat <00:00:57.234>about <00:00:57.316>it <00:00:57.398>'cause <00:00:57.481>I <00:00:57.563>worked <00:00:57.645>on <00:00:57.728>web <00:00:57.810>when <00:00:57.892>I <00:00:57.975>was <00:00:58.057>in <00:00:58.140>Microsoft

12
00:01:00.620 --> 00:01:02.360
<00:01:00.620>and <00:01:00.853>seems <00:01:01.086>to <00:01:01.320>be <00:01:01.553>doing <00:01:01.786>similar <00:01:02.019>things.

13
00:01:02.940 --> 00:01:07.040
<00:01:02.940>So <00:01:03.040>if <00:01:03.140>you <00:01:03.239>want <00:01:03.339>your <00:01:03.440>code <00:01:03.540>to <00:01:03.640>be <00:01:03.739>cleaner <00:01:03.839>now, <00:01:03.940>you're <00:01:04.039>gonna <00:01:04.140>learn <00:01:04.239>about <00:01:04.340>it.

14
00:01:07.310 --> 00:01:10.320
<00:01:07.310>He's <00:01:07.426>got <00:01:07.543>lots <00:01:07.660>of <00:01:07.776>information <00:01:07.893>to <00:01:08.010>give <00:01:08.126>you. <00:01:08.243>Again, <00:01:08.360>if <00:01:08.476>you <00:01:08.593>have <00:01:08.710>questions,

15
00:01:10.540 --> 00:01:13.480
<00:01:10.539>ask <00:01:10.633>them <00:01:10.726>in <00:01:10.820>the <00:01:10.913>app. <00:01:11.006>If <00:01:11.100>he, <00:01:11.193>if <00:01:11.286>you <00:01:11.380>don't <00:01:11.473>have <00:01:11.566>time <00:01:11.660>for <00:01:11.753>q <00:01:11.846>and <00:01:11.940>a,

16
00:01:13.480 --> 00:01:16.520
<00:01:13.480>he <00:01:13.607>will <00:01:13.734>answer <00:01:13.861>them <00:01:13.989>later <00:01:14.116>on <00:01:14.243>as <00:01:14.370>well. <00:01:14.498>So <00:01:14.625>without <00:01:14.752>further <00:01:14.880>ado,

17
00:01:16.520 --> 00:01:17.680
<00:01:16.520>Olivia <00:01:17.042>Goodell <00:01:17.564>please.

18
00:01:35.210 --> 00:01:39.170
<00:01:35.210>Thank <00:01:35.410>you <00:01:35.610>very <00:01:35.810>much. <00:01:36.010>Chris. <00:01:36.210>Hi <00:01:36.410>everyone. <00:01:36.610>Um,

19
00:01:39.470 --> 00:01:44.200
<00:01:39.470>so <00:01:39.570>today <00:01:39.670>I'm, <00:01:39.770>uh, <00:01:39.870>gonna <00:01:39.970>talk <00:01:40.070>about <00:01:40.170>Clean <00:01:40.270>Code. <00:01:40.370>And <00:01:40.470>first, <00:01:40.570>before <00:01:40.670>I <00:01:40.770>do <00:01:40.870>this,

20
00:01:44.280 --> 00:01:49.080
<00:01:44.280>I <00:01:44.380>just <00:01:44.480>would <00:01:44.580>like <00:01:44.680>to <00:01:44.780>introduce <00:01:44.880>Sonar. <00:01:44.980>So, <00:01:45.080>um, <00:01:45.180>been <00:01:45.280>doing <00:01:45.380>this <00:01:45.480>for <00:01:45.580>15 <00:01:45.680>years.

21
00:01:49.210 --> 00:01:53.200
<00:01:49.210>Sonar <00:01:49.350>is <00:01:49.490>a <00:01:49.630>set <00:01:49.770>of, <00:01:49.910>uh, <00:01:50.050>products <00:01:50.190>which <00:01:50.330>do <00:01:50.470>a <00:01:50.610>solution,

22
00:01:54.200 --> 00:01:58.400
<00:01:54.200>probably <00:01:54.400>know <00:01:54.600>SonarQube, <00:01:54.800>sonar, <00:01:55.000>lint, <00:01:55.200>uh, <00:01:55.400>sonar <00:01:55.600>Cloud.

23
00:01:59.340 --> 00:02:04.000
<00:01:59.340>And <00:01:59.427>what <00:01:59.515>we <00:01:59.602>do <00:01:59.690>is <00:01:59.777>really <00:01:59.865>try <00:01:59.952>to <00:02:00.040>solve <00:02:00.127>this, <00:02:00.215>uh, <00:02:00.302>what <00:02:00.390>we <00:02:00.477>call <00:02:00.565>clean <00:02:00.652>code <00:02:00.740>problem.

24
00:02:04.660 --> 00:02:09.330
<00:02:04.660>And <00:02:04.776>this <00:02:04.893>is <00:02:05.009>what <00:02:05.126>I'm <00:02:05.243>gonna <00:02:05.360>talk, <00:02:05.476>uh, <00:02:05.593>about <00:02:05.710>today. <00:02:05.826>So <00:02:05.943>first <00:02:06.060>off,

25
00:02:09.790 --> 00:02:11.370
<00:02:09.789>uh, <00:02:10.070>when <00:02:10.350>we <00:02:10.630>think <00:02:10.910>about <00:02:11.190>software,

26
00:02:12.940 --> 00:02:16.220
<00:02:12.940>I <00:02:13.079>think <00:02:13.220>sometimes <00:02:13.359>we <00:02:13.500>forget <00:02:13.640>that <00:02:13.780>software <00:02:13.920>is <00:02:14.060>made <00:02:14.200>of <00:02:14.340>code.

27
00:02:16.800 --> 00:02:19.780
<00:02:16.800>And <00:02:16.975>actually <00:02:17.150>code <00:02:17.325>is <00:02:17.500>the <00:02:17.675>main <00:02:17.850>asset <00:02:18.025>for <00:02:18.200>software.

28
00:02:19.920 --> 00:02:24.230
<00:02:19.920>If <00:02:20.060>you <00:02:20.200>think <00:02:20.340>about <00:02:20.480>pretty <00:02:20.620>much <00:02:20.760>anything <00:02:20.900>else <00:02:21.040>in <00:02:21.180>a <00:02:21.320>software,

29
00:02:24.720 --> 00:02:28.740
<00:02:24.720>everything <00:02:25.000>else <00:02:25.280>is <00:02:25.560>either <00:02:25.840>disposable <00:02:26.120>or,

30
00:02:29.560 --> 00:02:34.380
<00:02:29.560>um, <00:02:29.667>sometimes <00:02:29.775>it's, <00:02:29.883>uh, <00:02:29.990>I <00:02:30.098>would <00:02:30.206>say <00:02:30.313>useless, <00:02:30.421>but <00:02:30.529>it <00:02:30.636>can <00:02:30.744>certainly <00:02:30.852>be <00:02:30.960>replaced.

31
00:02:35.090 --> 00:02:37.510
<00:02:35.090>If <00:02:35.265>you <00:02:35.440>think <00:02:35.615>about <00:02:35.790>code, <00:02:35.965>you <00:02:36.140>cannot <00:02:36.315>replace <00:02:36.490>code.

32
00:02:37.740 --> 00:02:42.700
<00:02:37.740>Code <00:02:37.895>is <00:02:38.051>gonna <00:02:38.206>basically <00:02:38.362>dictate <00:02:38.517>what <00:02:38.673>your <00:02:38.828>software <00:02:38.984>is <00:02:39.140>going

33
00:02:42.700 --> 00:02:44.620
<00:02:42.700>to <00:02:42.980>do, <00:02:43.260>what, <00:02:43.540>how <00:02:43.820>it <00:02:44.100>behaves,

34
00:02:44.880 --> 00:02:47.730
<00:02:44.880>and <00:02:45.079>how <00:02:45.280>your <00:02:45.480>software <00:02:45.680>is <00:02:45.880>going <00:02:46.079>to <00:02:46.280>perform.

35
00:02:47.950 --> 00:02:51.770
<00:02:47.950>And <00:02:48.105>very <00:02:48.261>often <00:02:48.416>we <00:02:48.572>tend <00:02:48.727>to <00:02:48.883>focus <00:02:49.038>a <00:02:49.194>lot <00:02:49.350>on

36
00:02:52.710 --> 00:02:55.320
<00:02:52.710>what <00:02:52.865>we <00:02:53.021>call <00:02:53.176>building <00:02:53.332>the <00:02:53.487>right <00:02:53.643>software, <00:02:53.798>which <00:02:53.954>is, <00:02:54.110>Hey,

37
00:02:55.900 --> 00:02:58.480
<00:02:55.900>is <00:02:56.027>my <00:02:56.154>code <00:02:56.281>doing <00:02:56.409>what <00:02:56.536>it <00:02:56.663>is <00:02:56.790>supposed <00:02:56.918>to <00:02:57.045>do? <00:02:57.172>Which <00:02:57.300>is,

38
00:02:58.510 --> 00:03:02.620
<00:02:58.510>does <00:02:58.649>it <00:02:58.790>do <00:02:58.929>the <00:02:59.070>functionality, <00:02:59.209>does <00:02:59.350>it <00:02:59.489>answer <00:02:59.630>the <00:02:59.769>business <00:02:59.910>need?

39
00:03:02.640 --> 00:03:07.540
<00:03:02.640>And <00:03:02.747>we <00:03:02.855>tend <00:03:02.963>to <00:03:03.070>forget <00:03:03.178>about <00:03:03.286>the <00:03:03.393>technical <00:03:03.501>part <00:03:03.609>of <00:03:03.716>the <00:03:03.824>code, <00:03:03.932>which <00:03:04.040>is,

40
00:03:07.920 --> 00:03:11.660
<00:03:07.920>am <00:03:08.047>I <00:03:08.174>building <00:03:08.301>the <00:03:08.429>software, <00:03:08.556>right? <00:03:08.683>Am <00:03:08.810>I <00:03:08.938>writing <00:03:09.065>the <00:03:09.192>right <00:03:09.320>code?

41
00:03:12.120 --> 00:03:14.300
<00:03:12.120>And <00:03:12.275>this <00:03:12.431>is <00:03:12.586>super <00:03:12.742>important. <00:03:12.897>This <00:03:13.053>is <00:03:13.208>what <00:03:13.364>we <00:03:13.520>do.

42
00:03:14.920 --> 00:03:18.860
<00:03:14.920>We <00:03:15.095>help <00:03:15.269>organization <00:03:15.445>to <00:03:15.619>build <00:03:15.795>better <00:03:15.970>code. <00:03:16.144>So <00:03:16.320>basically,

43
00:03:19.000 --> 00:03:23.860
<00:03:19.000>if <00:03:19.107>you <00:03:19.215>recognize <00:03:19.323>this, <00:03:19.430>this <00:03:19.538>is <00:03:19.646>actually <00:03:19.753>a <00:03:19.861>tree <00:03:19.969>which <00:03:20.076>is <00:03:20.184>on <00:03:20.292>this, <00:03:20.400>uh,

44
00:03:23.910 --> 00:03:28.900
<00:03:23.910>which <00:03:24.010>is <00:03:24.109>on <00:03:24.210>this <00:03:24.310>slide. <00:03:24.410>It's <00:03:24.510>a <00:03:24.609>modern <00:03:24.710>tree. <00:03:24.810>Um, <00:03:24.910>it <00:03:25.010>code <00:03:25.109>is <00:03:25.210>like <00:03:25.310>a,

45
00:03:29.040 --> 00:03:32.540
<00:03:29.040>is <00:03:29.156>like <00:03:29.273>a <00:03:29.390>tree. <00:03:29.506>You <00:03:29.623>have <00:03:29.739>the <00:03:29.856>emerge <00:03:29.973>part, <00:03:30.090>uh, <00:03:30.206>of <00:03:30.323>the <00:03:30.440>tree,

46
00:03:32.540 --> 00:03:36.920
<00:03:32.540>which <00:03:32.695>is <00:03:32.851>you <00:03:33.006>want <00:03:33.162>your <00:03:33.317>tree <00:03:33.473>to <00:03:33.628>be <00:03:33.784>beautiful, <00:03:33.940>leaves,

47
00:03:37.250 --> 00:03:41.160
<00:03:37.250>trunk, <00:03:37.350>uh, <00:03:37.450>branches. <00:03:37.550>You <00:03:37.650>want <00:03:37.750>your <00:03:37.850>software <00:03:37.950>to <00:03:38.050>do <00:03:38.150>what <00:03:38.250>it <00:03:38.350>is <00:03:38.450>supposed <00:03:38.550>to <00:03:38.650>do.

48
00:03:42.020 --> 00:03:43.680
<00:03:42.020>But <00:03:42.220>in <00:03:42.420>order <00:03:42.620>to <00:03:42.820>achieve <00:03:43.020>this, <00:03:43.220>you <00:03:43.420>may,

49
00:03:43.680 --> 00:03:48.560
<00:03:43.680>you <00:03:43.780>need <00:03:43.880>to <00:03:43.980>make <00:03:44.080>sure <00:03:44.180>that <00:03:44.280>your <00:03:44.380>tree <00:03:44.480>is <00:03:44.580>gonna <00:03:44.680>have <00:03:44.780>very, <00:03:44.880>very <00:03:44.980>strong <00:03:45.080>roots.

50
00:03:49.300 --> 00:03:53.320
<00:03:49.300>And <00:03:49.416>we, <00:03:49.533>we <00:03:49.650>think <00:03:49.766>this <00:03:49.883>is <00:03:50.000>one <00:03:50.116>of <00:03:50.233>the <00:03:50.350>most <00:03:50.466>important <00:03:50.583>in <00:03:50.700>software.

51
00:03:53.340 --> 00:03:56.800
<00:03:53.340>So <00:03:53.573>clean <00:03:53.806>codes, <00:03:54.040>uh, <00:03:54.273>let <00:03:54.506>me, <00:03:54.740>um,

52
00:03:57.700 --> 00:04:00.440
<00:03:57.700>let <00:03:57.816>me <00:03:57.933>talk <00:03:58.049>a <00:03:58.166>little <00:03:58.283>bit <00:03:58.399>about <00:03:58.516>clean <00:03:58.633>code. <00:03:58.750>What <00:03:58.866>is <00:03:58.983>clean <00:03:59.100>code?

53
00:04:01.470 --> 00:04:06.020
<00:04:01.470>Clean <00:04:01.625>code <00:04:01.781>is <00:04:01.936>what <00:04:02.092>is <00:04:02.247>going <00:04:02.403>to <00:04:02.558>enable <00:04:02.714>these <00:04:02.870>roots

54
00:04:06.520 --> 00:04:07.353
<00:04:06.520>to <00:04:06.894>be <00:04:07.269>strong.

55
00:04:07.860 --> 00:04:11.360
<00:04:07.860>And <00:04:07.967>we <00:04:08.075>believe <00:04:08.183>that <00:04:08.290>there <00:04:08.398>are <00:04:08.506>really <00:04:08.613>four <00:04:08.721>things <00:04:08.829>you <00:04:08.936>should <00:04:09.044>take <00:04:09.152>care <00:04:09.260>of.

56
00:04:12.340 --> 00:04:15.560
<00:04:12.340>One <00:04:12.515>is <00:04:12.690>you <00:04:12.865>want <00:04:13.040>your <00:04:13.215>code <00:04:13.390>to <00:04:13.565>be <00:04:13.740>consistent.

57
00:04:16.790 --> 00:04:21.320
<00:04:16.790>What <00:04:16.890>do <00:04:16.990>we <00:04:17.090>mean <00:04:17.190>by <00:04:17.290>consistent? <00:04:17.390>It <00:04:17.490>should <00:04:17.590>have <00:04:17.690>a <00:04:17.790>pretty <00:04:17.890>much <00:04:17.990>a <00:04:18.090>single <00:04:18.190>style.

58
00:04:22.300 --> 00:04:26.960
<00:04:22.300>Um, <00:04:22.475>it <00:04:22.650>should, <00:04:22.825>it <00:04:23.000>should <00:04:23.175>have, <00:04:23.350>uh, <00:04:23.525>consistent <00:04:23.700>constructions,

59
00:04:27.090 --> 00:04:30.880
<00:04:27.090>which <00:04:27.190>is <00:04:27.289>if <00:04:27.390>you're <00:04:27.489>going <00:04:27.590>to <00:04:27.690>solve <00:04:27.789>a <00:04:27.890>problem <00:04:27.989>in <00:04:28.090>your <00:04:28.190>application, <00:04:28.289>you <00:04:28.390>should <00:04:28.489>try,

60
00:04:32.600 --> 00:04:34.980
<00:04:32.600>you <00:04:32.775>should <00:04:32.950>not <00:04:33.125>try, <00:04:33.300>you <00:04:33.475>should <00:04:33.650>actually <00:04:33.825>succeed <00:04:34.000>to,

61
00:04:35.200 --> 00:04:38.500
<00:04:35.200>to <00:04:35.316>do <00:04:35.433>it <00:04:35.550>always <00:04:35.666>the <00:04:35.783>same <00:04:35.900>way. <00:04:36.016>Why <00:04:36.133>is <00:04:36.250>it <00:04:36.366>so <00:04:36.483>important? <00:04:36.599>Because

62
00:04:40.580 --> 00:04:45.340
<00:04:40.580>applications <00:04:40.696>are <00:04:40.813>not <00:04:40.930>written <00:04:41.046>by <00:04:41.163>a <00:04:41.280>single <00:04:41.396>developer. <00:04:41.513>They're <00:04:41.630>written <00:04:41.746>by <00:04:41.863>a <00:04:41.979>team.

63
00:04:46.290 --> 00:04:51.190
<00:04:46.290>And <00:04:46.397>if <00:04:46.505>you <00:04:46.613>want <00:04:46.720>the <00:04:46.828>team <00:04:46.936>to <00:04:47.043>be <00:04:47.151>able <00:04:47.259>to <00:04:47.366>actually <00:04:47.474>collaborate <00:04:47.582>to <00:04:47.690>build

64
00:04:51.190 --> 00:04:51.770
<00:04:51.190>the <00:04:51.712>software,

65
00:04:51.770 --> 00:04:56.470
<00:04:51.770>you <00:04:51.857>need <00:04:51.945>to <00:04:52.032>make <00:04:52.120>sure <00:04:52.207>everybody <00:04:52.294>is <00:04:52.382>doing <00:04:52.469>that <00:04:52.557>the <00:04:52.645>same <00:04:52.732>way <00:04:52.820>so <00:04:52.907>that <00:04:52.995>when <00:04:53.082>you <00:04:53.169>read

66
00:04:56.500 --> 00:04:58.430
<00:04:56.500>code, <00:04:56.850>when <00:04:57.200>you <00:04:57.550>change <00:04:57.900>code,

67
00:04:58.730 --> 00:05:02.550
<00:04:58.730>you <00:04:58.857>don't <00:04:58.984>spend <00:04:59.111>too <00:04:59.239>much <00:04:59.366>time <00:04:59.493>or <00:04:59.620>you <00:04:59.748>don't <00:04:59.875>go <00:05:00.002>into <00:05:00.130>surprises.

68
00:05:02.570 --> 00:05:05.630
<00:05:02.570>So <00:05:02.745>consistency <00:05:02.920>is <00:05:03.094>the <00:05:03.270>first <00:05:03.445>pillar <00:05:03.620>of <00:05:03.795>clean <00:05:03.969>code.

69
00:05:06.580 --> 00:05:10.480
<00:05:06.580>The <00:05:06.707>second <00:05:06.834>thing <00:05:06.961>is <00:05:07.089>the <00:05:07.216>code <00:05:07.343>has <00:05:07.470>to <00:05:07.598>be <00:05:07.725>intentional, <00:05:07.852>which <00:05:07.979>is,

70
00:05:11.840 --> 00:05:16.060
<00:05:11.840>I'm <00:05:11.940>sure <00:05:12.039>you <00:05:12.140>have <00:05:12.239>seen <00:05:12.340>this. <00:05:12.440>You've <00:05:12.539>write <00:05:12.640>a <00:05:12.739>piece <00:05:12.840>of <00:05:12.940>code, <00:05:13.039>six <00:05:13.140>months <00:05:13.239>later,

71
00:05:16.120 --> 00:05:20.640
<00:05:16.120>you <00:05:16.247>open <00:05:16.374>the <00:05:16.501>file <00:05:16.629>and <00:05:16.756>you <00:05:16.883>start <00:05:17.010>to <00:05:17.138>wonder <00:05:17.265>who <00:05:17.392>the <00:05:17.520>hell

72
00:05:20.810 --> 00:05:24.720
<00:05:20.810>wrote <00:05:20.950>this? <00:05:21.090>And <00:05:21.230>then <00:05:21.370>you <00:05:21.510>realize <00:05:21.650>this <00:05:21.790>was <00:05:21.930>you <00:05:22.070>and <00:05:22.210>you,

73
00:05:25.100 --> 00:05:27.480
<00:05:25.100>you <00:05:25.255>really <00:05:25.411>felt <00:05:25.566>smart <00:05:25.722>when <00:05:25.877>you, <00:05:26.033>when <00:05:26.188>you <00:05:26.344>wrote <00:05:26.500>it,

74
00:05:27.540 --> 00:05:30.960
<00:05:27.540>and <00:05:27.656>suddenly <00:05:27.773>you <00:05:27.890>felt <00:05:28.006>it <00:05:28.123>was <00:05:28.240>not <00:05:28.356>so <00:05:28.473>smart <00:05:28.590>on <00:05:28.706>you <00:05:28.823>simplify <00:05:28.940>it,

75
00:05:30.960 --> 00:05:34.880
<00:05:30.960>you <00:05:31.087>make <00:05:31.214>it <00:05:31.341>more <00:05:31.469>intentional. <00:05:31.596>Um, <00:05:31.723>and, <00:05:31.850>and <00:05:31.978>you <00:05:32.105>basically <00:05:32.232>change <00:05:32.359>it.

76
00:05:34.880 --> 00:05:39.600
<00:05:34.880>If <00:05:35.020>you <00:05:35.159>have <00:05:35.300>like <00:05:35.440>contradicting <00:05:35.580>statement <00:05:35.719>in <00:05:35.860>the <00:05:36.000>same <00:05:36.140>method, <00:05:36.280>uh,

77
00:05:39.890 --> 00:05:43.240
<00:05:39.890>which <00:05:40.006>which <00:05:40.123>one <00:05:40.240>is <00:05:40.356>going <00:05:40.473>to, <00:05:40.590>uh, <00:05:40.706>to <00:05:40.823>win <00:05:40.940>at <00:05:41.056>the <00:05:41.173>end, <00:05:41.289>uh,

78
00:05:44.220 --> 00:05:46.160
<00:05:44.220>you <00:05:44.453>don't <00:05:44.686>really <00:05:44.920>know. <00:05:45.153>That's <00:05:45.386>one <00:05:45.620>part.

79
00:05:46.160 --> 00:05:50.930
<00:05:46.159>But <00:05:46.267>the <00:05:46.375>second <00:05:46.483>part <00:05:46.590>is <00:05:46.698>also <00:05:46.806>sometimes <00:05:46.913>you <00:05:47.021>don't <00:05:47.129>need <00:05:47.236>to <00:05:47.344>not <00:05:47.452>be <00:05:47.559>intentional,

80
00:05:51.030 --> 00:05:52.590
<00:05:51.030>but <00:05:51.496>you <00:05:51.963>are, <00:05:52.429>um,

81
00:05:53.450 --> 00:05:56.910
<00:05:53.450>you <00:05:53.800>are <00:05:54.150>actually <00:05:54.500>unintentionally, <00:05:54.849>um,

82
00:05:57.330 --> 00:06:01.040
<00:05:57.330>misleading <00:05:57.563>people <00:05:57.796>think <00:05:58.030>about <00:05:58.263>forgetting <00:05:58.496>to, <00:05:58.729>uh,

83
00:06:01.040 --> 00:06:04.680
<00:06:01.040>close <00:06:01.273>resources <00:06:01.506>if <00:06:01.740>you <00:06:01.973>don't <00:06:02.206>sanitize. <00:06:02.440>Um,

84
00:06:05.060 --> 00:06:09.600
<00:06:05.060>if <00:06:05.215>you <00:06:05.371>don't <00:06:05.526>sanitize <00:06:05.682>some <00:06:05.837>input <00:06:05.993>from, <00:06:06.148>uh, <00:06:06.304>users, <00:06:06.460>um,

85
00:06:10.220 --> 00:06:11.520
<00:06:10.220>you <00:06:10.454>don't <00:06:10.688>do <00:06:10.922>that <00:06:11.156>on <00:06:11.390>purpose,

86
00:06:11.700 --> 00:06:16.240
<00:06:11.700>but <00:06:11.807>this <00:06:11.915>is <00:06:12.023>going <00:06:12.130>to <00:06:12.238>lead <00:06:12.346>to <00:06:12.453>your <00:06:12.561>software <00:06:12.669>not <00:06:12.776>behaving <00:06:12.884>the <00:06:12.992>the <00:06:13.099>way

87
00:06:16.620 --> 00:06:19.570
<00:06:16.620>you <00:06:16.795>want. <00:06:16.970>It <00:06:17.145>might <00:06:17.320>be <00:06:17.495>your <00:06:17.670>database <00:06:17.845>is <00:06:18.020>crashing.

88
00:06:20.270 --> 00:06:24.010
<00:06:20.270>It <00:06:20.397>might <00:06:20.524>be <00:06:20.651>that <00:06:20.779>it <00:06:20.906>is <00:06:21.033>actually <00:06:21.160>possible <00:06:21.288>to <00:06:21.415>do <00:06:21.542>things <00:06:21.669>you,

89
00:06:24.190 --> 00:06:27.090
<00:06:24.190>you <00:06:24.330>were <00:06:24.469>not <00:06:24.610>expecting <00:06:24.750>people <00:06:24.890>to <00:06:25.030>be <00:06:25.170>doing <00:06:25.310>with <00:06:25.450>your <00:06:25.590>software.

90
00:06:27.710 --> 00:06:30.530
<00:06:27.710>So <00:06:27.943>basically <00:06:28.176>your <00:06:28.409>code <00:06:28.643>is <00:06:28.876>not <00:06:29.109>intentional.

91
00:06:31.520 --> 00:06:34.700
<00:06:31.520>The <00:06:31.799>third <00:06:32.080>part <00:06:32.359>is <00:06:32.640>about <00:06:32.919>adaptability,

92
00:06:35.310 --> 00:06:39.500
<00:06:35.310>which <00:06:35.437>is <00:06:35.564>by <00:06:35.691>definition, <00:06:35.819>and <00:06:35.946>I'm <00:06:36.073>sure <00:06:36.200>you <00:06:36.328>would <00:06:36.455>agree <00:06:36.582>with <00:06:36.710>this,

93
00:06:40.680 --> 00:06:44.840
<00:06:40.680>software <00:06:40.807>is <00:06:40.934>going <00:06:41.061>to <00:06:41.189>change. <00:06:41.316>It <00:06:41.443>doesn't <00:06:41.570>matter <00:06:41.698>what <00:06:41.825>software <00:06:41.952>you're <00:06:42.080>writing,

94
00:06:45.020 --> 00:06:49.400
<00:06:45.020>it <00:06:45.147>is <00:06:45.274>going <00:06:45.401>to <00:06:45.529>change <00:06:45.656>whether <00:06:45.783>it's <00:06:45.910>because <00:06:46.038>it <00:06:46.165>was <00:06:46.292>not, <00:06:46.419>uh,

95
00:06:49.400 --> 00:06:53.680
<00:06:49.400>it's <00:06:49.507>not <00:06:49.615>doing <00:06:49.723>exactly <00:06:49.830>what <00:06:49.938>it <00:06:50.046>was <00:06:50.153>supposed <00:06:50.261>to <00:06:50.369>do, <00:06:50.476>whether <00:06:50.584>business <00:06:50.692>is <00:06:50.799>changing,

96
00:06:54.480 --> 00:06:57.640
<00:06:54.480>requirements <00:06:54.680>are <00:06:54.880>changing, <00:06:55.080>uh, <00:06:55.280>the <00:06:55.480>law <00:06:55.680>is <00:06:55.880>changing,

97
00:06:57.750 --> 00:07:01.400
<00:06:57.750>your <00:06:57.850>software <00:06:57.950>is <00:06:58.050>going <00:06:58.150>to <00:06:58.250>change, <00:06:58.350>and <00:06:58.450>you <00:06:58.550>need <00:06:58.650>to <00:06:58.750>be <00:06:58.850>able <00:06:58.950>to <00:06:59.050>change <00:06:59.150>it.

98
00:07:01.980 --> 00:07:05.560
<00:07:01.980>And <00:07:02.073>when <00:07:02.166>I <00:07:02.260>say <00:07:02.353>you, <00:07:02.446>I <00:07:02.540>mean <00:07:02.633>the <00:07:02.726>team <00:07:02.820>needs <00:07:02.913>to <00:07:03.006>be <00:07:03.100>able <00:07:03.193>to <00:07:03.286>change <00:07:03.380>it.

99
00:07:05.560 --> 00:07:07.640
<00:07:05.560>So <00:07:05.760>it's <00:07:05.960>not <00:07:06.160>a <00:07:06.360>single, <00:07:06.560>uh, <00:07:06.760>person <00:07:06.960>here.

100
00:07:08.300 --> 00:07:11.160
<00:07:08.300>So <00:07:08.427>you <00:07:08.554>need <00:07:08.681>to <00:07:08.809>build <00:07:08.936>it <00:07:09.063>in <00:07:09.190>a <00:07:09.318>way <00:07:09.445>where <00:07:09.572>you <00:07:09.700>know,

101
00:07:11.380 --> 00:07:15.040
<00:07:11.380>you <00:07:11.555>will <00:07:11.730>be <00:07:11.905>able <00:07:12.080>to <00:07:12.255>change <00:07:12.430>it <00:07:12.605>without, <00:07:12.780>uh,

102
00:07:15.480 --> 00:07:19.620
<00:07:15.480>spending <00:07:15.607>too <00:07:15.734>much <00:07:15.861>time <00:07:15.989>and <00:07:16.116>maybe <00:07:16.243>doing <00:07:16.370>too <00:07:16.498>much <00:07:16.625>effort. <00:07:16.752>And <00:07:16.880>finally,

103
00:07:20.800 --> 00:07:25.180
<00:07:20.800>the <00:07:20.907>code <00:07:21.015>should <00:07:21.123>be <00:07:21.230>responsible. <00:07:21.338>So <00:07:21.446>what <00:07:21.553>do <00:07:21.661>I <00:07:21.769>mean <00:07:21.876>by <00:07:21.984>responsible? <00:07:22.092>I <00:07:22.200>mean,

104
00:07:25.680 --> 00:07:30.340
<00:07:25.680>of <00:07:25.796>course <00:07:25.913>you <00:07:26.030>cannot <00:07:26.146>stall <00:07:26.263>code. <00:07:26.380>You <00:07:26.496>cannot <00:07:26.613>just <00:07:26.730>take <00:07:26.846>code <00:07:26.963>somewhere <00:07:27.080>and,

105
00:07:30.680 --> 00:07:34.820
<00:07:30.680>uh, <00:07:30.787>have <00:07:30.895>it <00:07:31.003>in <00:07:31.110>your <00:07:31.218>software. <00:07:31.326>You <00:07:31.433>need <00:07:31.541>to <00:07:31.649>make <00:07:31.756>sure <00:07:31.864>you <00:07:31.972>follow <00:07:32.080>licenses.

106
00:07:35.780 --> 00:07:39.120
<00:07:35.780>You <00:07:35.935>shouldn't <00:07:36.091>make <00:07:36.246>comments <00:07:36.402>about <00:07:36.557>your <00:07:36.713>colleagues <00:07:36.868>in <00:07:37.024>your <00:07:37.179>code.

107
00:07:39.390 --> 00:07:43.600
<00:07:39.390>Like <00:07:39.530>should, <00:07:39.669>uh, <00:07:39.810>you <00:07:39.950>should <00:07:40.090>solve <00:07:40.229>problems <00:07:40.370>outside <00:07:40.510>of <00:07:40.650>the <00:07:40.789>code.

108
00:07:44.140 --> 00:07:47.960
<00:07:44.140>You <00:07:44.295>shouldn't <00:07:44.451>do <00:07:44.606>things <00:07:44.762>like <00:07:44.917>storing <00:07:45.073>secrets, <00:07:45.228>password, <00:07:45.384>et <00:07:45.539>cetera.

109
00:07:48.090 --> 00:07:51.600
<00:07:48.090>These <00:07:48.245>are <00:07:48.401>really <00:07:48.556>bad <00:07:48.712>practice <00:07:48.867>that <00:07:49.023>can <00:07:49.178>lead <00:07:49.334>to, <00:07:49.490>um,

110
00:07:52.470 --> 00:07:53.830
<00:07:52.470>problems <00:07:52.878>in <00:07:53.286>your <00:07:53.693>organization.

111
00:07:53.890 --> 00:07:57.470
<00:07:53.890>So <00:07:54.017>you <00:07:54.144>also <00:07:54.271>want <00:07:54.399>your <00:07:54.526>code <00:07:54.653>to <00:07:54.780>be <00:07:54.908>what <00:07:55.035>we <00:07:55.162>call <00:07:55.289>responsible.

112
00:07:57.570 --> 00:08:00.270
<00:07:57.570>And <00:07:57.725>this <00:07:57.881>is <00:07:58.036>what <00:07:58.192>we <00:07:58.347>mean <00:07:58.503>by <00:07:58.658>clean <00:07:58.814>code. <00:07:58.969>Now,

113
00:08:01.250 --> 00:08:05.790
<00:08:01.250>do <00:08:01.357>you <00:08:01.465>need <00:08:01.573>your <00:08:01.680>code <00:08:01.788>to <00:08:01.896>be <00:08:02.003>perfectly <00:08:02.111>clean? <00:08:02.219>No, <00:08:02.326>you <00:08:02.434>do <00:08:02.542>not. <00:08:02.650>Um,

114
00:08:06.020 --> 00:08:10.980
<00:08:06.020>it's <00:08:06.136>totally <00:08:06.253>okay <00:08:06.370>that <00:08:06.486>some <00:08:06.603>of <00:08:06.719>the <00:08:06.836>code <00:08:06.953>is <00:08:07.070>more <00:08:07.186>or <00:08:07.303>less <00:08:07.419>good

115
00:08:11.100 --> 00:08:13.260
<00:08:11.100>a <00:08:11.450>bit <00:08:11.800>junky, <00:08:12.150>that's <00:08:12.500>fine.

116
00:08:14.200 --> 00:08:18.020
<00:08:14.200>The <00:08:14.375>problem <00:08:14.550>is <00:08:14.724>that <00:08:14.900>if <00:08:15.075>this <00:08:15.250>is <00:08:15.425>too <00:08:15.599>bad,

117
00:08:18.980 --> 00:08:23.610
<00:08:18.980>then <00:08:19.087>you're <00:08:19.195>gonna <00:08:19.303>spend <00:08:19.410>your <00:08:19.518>life <00:08:19.626>fixing <00:08:19.733>it. <00:08:19.841>And <00:08:19.949>when <00:08:20.056>I'm <00:08:20.164>saying <00:08:20.272>fixing <00:08:20.380>it,

118
00:08:24.310 --> 00:08:26.400
<00:08:24.310>it's <00:08:24.485>gonna <00:08:24.660>take <00:08:24.835>you <00:08:25.010>a <00:08:25.185>while <00:08:25.360>to <00:08:25.535>read <00:08:25.710>it,

119
00:08:26.500 --> 00:08:31.080
<00:08:26.500>to <00:08:26.616>understand <00:08:26.733>every <00:08:26.850>time <00:08:26.966>you <00:08:27.083>make <00:08:27.200>changes, <00:08:27.316>uh, <00:08:27.433>it's <00:08:27.550>gonna <00:08:27.666>take <00:08:27.783>more <00:08:27.900>time.

120
00:08:31.710 --> 00:08:33.280
<00:08:31.710>Everybody <00:08:32.059>is <00:08:32.409>gonna <00:08:32.760>be, <00:08:33.110>uh,

121
00:08:33.790 --> 00:08:36.960
<00:08:33.789>wishing <00:08:33.929>that <00:08:34.069>nothing <00:08:34.209>bad <00:08:34.349>happen <00:08:34.490>when <00:08:34.630>you <00:08:34.770>push <00:08:34.909>code <00:08:35.049>into <00:08:35.189>production.

122
00:08:36.980 --> 00:08:41.360
<00:08:36.980>And <00:08:37.135>then <00:08:37.291>you <00:08:37.446>have <00:08:37.602>other <00:08:37.757>teams <00:08:37.913>like <00:08:38.068>operations, <00:08:38.224>infrastructure, <00:08:38.380>security,

123
00:08:42.090 --> 00:08:45.560
<00:08:42.090>which <00:08:42.230>are <00:08:42.370>gonna <00:08:42.510>keep <00:08:42.650>coming <00:08:42.790>back <00:08:42.930>to <00:08:43.070>you <00:08:43.210>to <00:08:43.350>fix <00:08:43.490>problems.

124
00:08:45.750 --> 00:08:49.090
<00:08:45.750>Like <00:08:45.983>we <00:08:46.216>have <00:08:46.450>a <00:08:46.683>secret <00:08:46.916>vulnerability <00:08:47.150>here,

125
00:08:49.550 --> 00:08:52.810
<00:08:49.550>we <00:08:49.783>have <00:08:50.016>this <00:08:50.250>memory <00:08:50.483>leak, <00:08:50.716>uh, <00:08:50.949>there.

126
00:08:53.310 --> 00:08:57.680
<00:08:53.310>So <00:08:53.417>you <00:08:53.525>are <00:08:53.633>gonna <00:08:53.740>have <00:08:53.848>to <00:08:53.956>spend <00:08:54.063>your <00:08:54.171>time <00:08:54.279>to <00:08:54.386>basically <00:08:54.494>do <00:08:54.602>some <00:08:54.709>rework,

127
00:08:58.820 --> 00:09:03.090
<00:08:58.820>which <00:08:59.020>is <00:08:59.220>not <00:08:59.420>really <00:08:59.620>interesting, <00:08:59.820>not <00:09:00.020>really <00:09:00.220>valuable.

128
00:09:03.430 --> 00:09:04.263
<00:09:03.430>So <00:09:04.179>basically

129
00:09:16.750 --> 00:09:20.850
<00:09:16.750>if <00:09:16.837>you, <00:09:16.925>um, <00:09:17.012>if <00:09:17.100>your <00:09:17.187>code <00:09:17.275>is <00:09:17.362>clean, <00:09:17.450>if, <00:09:17.537>if <00:09:17.625>the <00:09:17.712>code <00:09:17.800>that <00:09:17.887>you <00:09:17.975>produce <00:09:18.062>is <00:09:18.150>clean,

130
00:09:21.230 --> 00:09:23.170
<00:09:21.230>you <00:09:21.405>actually, <00:09:21.580>first <00:09:21.755>off, <00:09:21.930>you <00:09:22.105>do <00:09:22.280>a <00:09:22.455>good <00:09:22.630>job,

131
00:09:23.500 --> 00:09:26.580
<00:09:23.500>which <00:09:23.655>is <00:09:23.811>you <00:09:23.966>do <00:09:24.122>a <00:09:24.277>better <00:09:24.433>job <00:09:24.588>at <00:09:24.744>least. <00:09:24.900>Um,

132
00:09:26.640 --> 00:09:29.060
<00:09:26.640>second <00:09:26.840>is <00:09:27.040>if <00:09:27.240>your <00:09:27.439>code <00:09:27.640>is <00:09:27.840>not <00:09:28.040>clean,

133
00:09:29.130 --> 00:09:31.380
<00:09:29.130>it's <00:09:29.285>likely <00:09:29.441>that <00:09:29.596>every <00:09:29.752>time <00:09:29.907>you <00:09:30.063>need <00:09:30.218>to <00:09:30.374>change <00:09:30.530>it,

134
00:09:31.380 --> 00:09:32.420
<00:09:31.380>you're <00:09:31.567>gonna <00:09:31.754>have <00:09:31.941>to <00:09:32.128>write <00:09:32.315>it.

135
00:09:32.480 --> 00:09:36.420
<00:09:32.480>So <00:09:32.713>basically <00:09:32.946>it <00:09:33.180>becomes <00:09:33.413>a <00:09:33.646>disposable <00:09:33.880>code.

136
00:09:37.420 --> 00:09:41.440
<00:09:37.420>If <00:09:37.527>your <00:09:37.635>code <00:09:37.743>is <00:09:37.850>clean, <00:09:37.958>you <00:09:38.066>are <00:09:38.173>not <00:09:38.281>gonna <00:09:38.389>waste <00:09:38.496>precious <00:09:38.604>time <00:09:38.712>to <00:09:38.819>read,

137
00:09:41.930 --> 00:09:44.680
<00:09:41.930>understand <00:09:42.396>the <00:09:42.863>subtlety, <00:09:43.329>uh,

138
00:09:45.470 --> 00:09:49.480
<00:09:45.470>pray <00:09:45.570>when <00:09:45.670>you <00:09:45.770>are <00:09:45.870>making <00:09:45.970>changes <00:09:46.070>that <00:09:46.170>it <00:09:46.270>doesn't <00:09:46.370>break <00:09:46.470>anything. <00:09:46.570>And <00:09:46.670>all <00:09:46.770>in <00:09:46.870>all,

139
00:09:49.700 --> 00:09:51.280
<00:09:49.700>you're <00:09:49.980>gonna <00:09:50.260>have <00:09:50.540>a <00:09:50.820>higher <00:09:51.100>velocity,

140
00:09:51.840 --> 00:09:56.800
<00:09:51.840>a <00:09:51.933>higher <00:09:52.026>throughput <00:09:52.120>on <00:09:52.213>the <00:09:52.306>whole <00:09:52.400>team <00:09:52.493>is <00:09:52.586>gonna <00:09:52.680>have <00:09:52.773>this <00:09:52.866>so <00:09:52.960>that <00:09:53.053>you <00:09:53.146>can <00:09:53.240>spend

141
00:09:56.800 --> 00:10:00.560
<00:09:56.800>your <00:09:56.939>time <00:09:57.079>in <00:09:57.219>things <00:09:57.359>that <00:09:57.500>are <00:09:57.640>more <00:09:57.780>valuable <00:09:57.920>for <00:09:58.060>the <00:09:58.199>organization,

142
00:10:00.560 --> 00:10:01.560
<00:10:00.560>more <00:10:00.859>valuable <00:10:01.160>for <00:10:01.459>you.

143
00:10:02.340 --> 00:10:06.680
<00:10:02.340>You <00:10:02.467>can <00:10:02.594>do <00:10:02.721>more <00:10:02.849>innovation <00:10:02.976>and <00:10:03.103>you <00:10:03.230>can <00:10:03.358>learn <00:10:03.485>more <00:10:03.612>things. <00:10:03.740>Um,

144
00:10:06.960 --> 00:10:10.680
<00:10:06.960>I <00:10:07.087>also <00:10:07.214>think <00:10:07.341>it <00:10:07.469>enables <00:10:07.596>to, <00:10:07.723>that <00:10:07.850>you <00:10:07.978>really <00:10:08.105>own <00:10:08.232>your <00:10:08.360>code.

145
00:10:10.680 --> 00:10:14.040
<00:10:10.680>Because <00:10:10.807>when <00:10:10.934>people <00:10:11.061>are <00:10:11.189>coming <00:10:11.316>back <00:10:11.443>to <00:10:11.570>you <00:10:11.698>to <00:10:11.825>change <00:10:11.952>your <00:10:12.079>code,

146
00:10:14.040 --> 00:10:18.640
<00:10:14.040>because <00:10:14.195>it's <00:10:14.351>not <00:10:14.506>secure, <00:10:14.662>it's <00:10:14.817>not <00:10:14.973>stable, <00:10:15.128>not <00:10:15.284>robust, <00:10:15.439>actually,

147
00:10:19.420 --> 00:10:23.760
<00:10:19.420>you <00:10:19.527>don't <00:10:19.635>really <00:10:19.743>fully <00:10:19.850>own <00:10:19.958>your <00:10:20.066>code. <00:10:20.173>You <00:10:20.281>don't <00:10:20.389>fully <00:10:20.496>do <00:10:20.604>your <00:10:20.712>entire <00:10:20.819>job.

148
00:10:23.950 --> 00:10:26.480
<00:10:23.950>Some <00:10:24.105>other <00:10:24.261>people <00:10:24.416>have <00:10:24.572>to <00:10:24.727>tell <00:10:24.883>you <00:10:25.038>what <00:10:25.194>to <00:10:25.350>do.

149
00:10:27.070 --> 00:10:31.250
<00:10:27.070>And <00:10:27.170>I <00:10:27.270>want <00:10:27.370>to <00:10:27.470>highlight <00:10:27.570>something <00:10:27.670>here, <00:10:27.770>which <00:10:27.870>is, <00:10:27.970>I <00:10:28.070>think <00:10:28.170>the <00:10:28.270>more <00:10:28.370>we <00:10:28.470>go,

150
00:10:31.250 --> 00:10:35.730
<00:10:31.250>especially <00:10:31.366>with <00:10:31.483>things <00:10:31.600>like <00:10:31.716>generative <00:10:31.833>ai, <00:10:31.950>the <00:10:32.066>more <00:10:32.183>code <00:10:32.300>we <00:10:32.416>are <00:10:32.533>gonna <00:10:32.650>write.

151
00:10:35.790 --> 00:10:38.930
<00:10:35.790>So <00:10:35.990>this <00:10:36.189>is <00:10:36.390>gonna <00:10:36.589>become <00:10:36.790>even <00:10:36.990>bigger <00:10:37.189>problem,

152
00:10:38.940 --> 00:10:43.770
<00:10:38.940>which <00:10:39.047>is <00:10:39.155>all <00:10:39.263>these <00:10:39.370>codes <00:10:39.478>that <00:10:39.586>is <00:10:39.693>generated <00:10:39.801>is <00:10:39.909>gonna <00:10:40.016>be <00:10:40.124>generated <00:10:40.232>by <00:10:40.340>tools

153
00:10:43.950 --> 00:10:47.390
<00:10:43.950>who <00:10:44.150>sometimes <00:10:44.350>will <00:10:44.550>make <00:10:44.750>it <00:10:44.950>clean, <00:10:45.150>sometimes <00:10:45.350>not,

154
00:10:47.610 --> 00:10:51.630
<00:10:47.610>but <00:10:47.726>for <00:10:47.843>sure <00:10:47.960>even <00:10:48.076>if <00:10:48.193>it's <00:10:48.310>clean <00:10:48.426>locally, <00:10:48.543>even <00:10:48.660>if <00:10:48.776>it <00:10:48.893>looks <00:10:49.010>good,

155
00:10:52.010 --> 00:10:55.870
<00:10:52.010>it <00:10:52.110>might <00:10:52.210>have <00:10:52.310>some <00:10:52.410>impact <00:10:52.510>elsewhere. <00:10:52.610>So <00:10:52.710>we <00:10:52.810>need <00:10:52.910>to <00:10:53.010>really <00:10:53.110>be <00:10:53.210>careful <00:10:53.310>with <00:10:53.410>this,

156
00:10:57.390 --> 00:10:59.220
<00:10:57.390>which <00:10:57.740>really <00:10:58.090>doesn't <00:10:58.439>work <00:10:58.790>anymore,

157
00:11:03.080 --> 00:11:03.913
right?

158
00:11:04.100 --> 00:11:08.200
<00:11:04.100>So <00:11:04.207>how <00:11:04.315>can <00:11:04.423>you <00:11:04.530>know <00:11:04.638>whether <00:11:04.746>your <00:11:04.853>code <00:11:04.961>is <00:11:05.069>good <00:11:05.176>or <00:11:05.284>not <00:11:05.392>so <00:11:05.500>good?

159
00:11:09.000 --> 00:11:10.640
<00:11:09.000>I <00:11:09.233>would <00:11:09.466>say <00:11:09.700>if <00:11:09.933>you <00:11:10.166>don't <00:11:10.400>know,

160
00:11:11.810 --> 00:11:16.140
<00:11:11.810>it's <00:11:11.937>probably <00:11:12.064>that <00:11:12.191>it's <00:11:12.319>not <00:11:12.446>so <00:11:12.573>good. <00:11:12.700>So <00:11:12.828>for <00:11:12.955>a <00:11:13.082>long <00:11:13.209>time,

161
00:11:16.960 --> 00:11:17.793
um,

162
00:11:18.190 --> 00:11:23.180
<00:11:18.190>the <00:11:18.317>best <00:11:18.444>approach <00:11:18.571>to <00:11:18.699>know <00:11:18.826>was <00:11:18.953>to <00:11:19.080>actually <00:11:19.208>look <00:11:19.335>at <00:11:19.462>what <00:11:19.590>happened

163
00:11:23.180 --> 00:11:26.100
<00:11:23.180>when <00:11:23.354>developer <00:11:23.530>reads <00:11:23.704>the <00:11:23.880>code. <00:11:24.055>What <00:11:24.229>are <00:11:24.405>their <00:11:24.579>reaction?

164
00:11:26.520 --> 00:11:31.100
<00:11:26.520>And <00:11:26.660>you <00:11:26.800>could <00:11:26.939>deduct <00:11:27.079>whether <00:11:27.220>it's <00:11:27.360>good <00:11:27.500>code <00:11:27.640>or <00:11:27.780>bad <00:11:27.920>code,

165
00:11:32.120 --> 00:11:34.740
<00:11:32.120>we <00:11:32.353>can <00:11:32.586>do <00:11:32.820>much <00:11:33.053>better <00:11:33.286>nowadays. <00:11:33.520>Uh,

166
00:11:34.830 --> 00:11:39.220
<00:11:34.830>there <00:11:34.970>are <00:11:35.110>plenty <00:11:35.250>of <00:11:35.390>tools <00:11:35.530>out <00:11:35.670>there <00:11:35.810>to <00:11:35.950>analyze <00:11:36.090>the <00:11:36.230>code

167
00:11:39.490 --> 00:11:43.620
<00:11:39.490>measure <00:11:39.665>report. <00:11:39.840>You <00:11:40.015>can <00:11:40.190>have <00:11:40.365>plenty <00:11:40.540>of <00:11:40.715>dashboards, <00:11:40.890>um,

168
00:11:44.050 --> 00:11:45.460
<00:11:44.050>histories, <00:11:44.684>et <00:11:45.319>cetera.

169
00:11:50.180 --> 00:11:54.740
<00:11:50.180>Okay? <00:11:50.273>But <00:11:50.366>now <00:11:50.459>on <00:11:50.553>this <00:11:50.646>is, <00:11:50.739>I <00:11:50.833>would <00:11:50.926>say <00:11:51.020>pretty <00:11:51.113>much <00:11:51.206>a <00:11:51.300>story <00:11:51.393>of <00:11:51.486>my <00:11:51.579>life,

170
00:11:55.120 --> 00:11:58.660
<00:11:55.120>uh, <00:11:55.260>at <00:11:55.400>least <00:11:55.540>at <00:11:55.680>Sono <00:11:55.820>Source. <00:11:55.960>Um, <00:11:56.100>knowing <00:11:56.240>is <00:11:56.380>one <00:11:56.520>thing,

171
00:11:59.130 --> 00:12:01.760
<00:11:59.130>this <00:11:59.410>is <00:11:59.689>great <00:11:59.970>to <00:12:00.250>know. <00:12:00.530>Um,

172
00:12:02.540 --> 00:12:07.120
<00:12:02.540>but <00:12:02.633>this <00:12:02.726>is <00:12:02.819>only <00:12:02.913>one <00:12:03.006>data <00:12:03.099>point, <00:12:03.193>which <00:12:03.286>is <00:12:03.380>once <00:12:03.473>you <00:12:03.566>know, <00:12:03.660>what <00:12:03.753>do <00:12:03.846>you <00:12:03.939>do?

173
00:12:07.190 --> 00:12:11.800
<00:12:07.190>This <00:12:07.306>is <00:12:07.423>a <00:12:07.540>question <00:12:07.656>we <00:12:07.773>get <00:12:07.890>all <00:12:08.006>the <00:12:08.123>time. <00:12:08.240>And <00:12:08.356>at <00:12:08.473>Sono <00:12:08.590>Source,

174
00:12:12.470 --> 00:12:16.960
<00:12:12.470>when <00:12:12.597>we <00:12:12.724>started <00:12:12.851>15 <00:12:12.979>years <00:12:13.106>ago, <00:12:13.233>there <00:12:13.360>were <00:12:13.488>three <00:12:13.615>software <00:12:13.742>engineers, <00:12:13.870>uh,

175
00:12:17.380 --> 00:12:20.360
<00:12:17.380>all <00:12:17.555>super <00:12:17.730>keen, <00:12:17.905>super <00:12:18.080>motivated. <00:12:18.255>That <00:12:18.430>was <00:12:18.605>our <00:12:18.780>company.

176
00:12:20.620 --> 00:12:25.040
<00:12:20.620>We <00:12:20.713>thought <00:12:20.806>it <00:12:20.900>was <00:12:20.993>a <00:12:21.086>big <00:12:21.180>thing. <00:12:21.273>Every <00:12:21.366>developer <00:12:21.460>should <00:12:21.553>be <00:12:21.646>able <00:12:21.740>to <00:12:21.833>do <00:12:21.926>clean <00:12:22.020>code.

177
00:12:25.780 --> 00:12:30.000
<00:12:25.780>And <00:12:25.887>what <00:12:25.995>we <00:12:26.103>realized <00:12:26.210>after <00:12:26.318>a <00:12:26.426>few <00:12:26.533>months <00:12:26.641>is <00:12:26.749>that <00:12:26.856>we <00:12:26.964>were <00:12:27.072>absolutely <00:12:27.180>unable

178
00:12:31.370 --> 00:12:33.430
<00:12:31.370>to <00:12:31.650>meet <00:12:31.930>any <00:12:32.210>of <00:12:32.490>our <00:12:32.770>goals,

179
00:12:34.040 --> 00:12:39.010
<00:12:34.040>which <00:12:34.127>is <00:12:34.214>one <00:12:34.302>of <00:12:34.390>the <00:12:34.477>goal <00:12:34.564>I <00:12:34.652>remember <00:12:34.740>at <00:12:34.827>the <00:12:34.915>time <00:12:35.002>was <00:12:35.089>we <00:12:35.177>want <00:12:35.265>sauna <00:12:35.352>to <00:12:35.439>have

180
00:12:39.010 --> 00:12:40.530
<00:12:39.010>70% <00:12:39.466>of <00:12:39.922>cut <00:12:40.377>coverage.

181
00:12:41.620 --> 00:12:45.300
<00:12:41.620>So <00:12:41.720>every <00:12:41.820>time <00:12:41.920>we <00:12:42.020>were <00:12:42.120>coming <00:12:42.220>close <00:12:42.320>to <00:12:42.420>a <00:12:42.520>release, <00:12:42.620>we <00:12:42.720>were <00:12:42.820>looking <00:12:42.920>at <00:12:43.020>the,

182
00:12:45.320 --> 00:12:47.740
<00:12:45.320>we <00:12:45.495>were <00:12:45.670>using <00:12:45.845>Sauna <00:12:46.020>to <00:12:46.195>look <00:12:46.370>at <00:12:46.545>the <00:12:46.720>coverage.

183
00:12:48.600 --> 00:12:51.140
<00:12:48.600>And <00:12:48.833>every <00:12:49.066>time <00:12:49.300>we <00:12:49.533>were <00:12:49.766>falling <00:12:50.000>short,

184
00:12:51.410 --> 00:12:54.380
<00:12:51.410>like <00:12:51.876>65, <00:12:52.343>67, <00:12:52.810>68.

185
00:12:54.920 --> 00:12:59.170
<00:12:54.920>And <00:12:55.094>what <00:12:55.270>we <00:12:55.444>were <00:12:55.620>doing <00:12:55.795>was <00:12:55.969>we <00:12:56.145>were, <00:12:56.319>uh,

186
00:12:59.170 --> 00:13:03.890
<00:12:59.170>looking <00:12:59.344>at <00:12:59.520>the <00:12:59.694>biggest <00:12:59.870>files <00:13:00.045>or <00:13:00.219>biggest <00:13:00.395>classes <00:13:00.569>where

187
00:13:04.160 --> 00:13:07.610
<00:13:04.160>with <00:13:04.276>a <00:13:04.393>single <00:13:04.510>test <00:13:04.626>we <00:13:04.743>could <00:13:04.860>actually <00:13:04.976>cover <00:13:05.093>as <00:13:05.209>many <00:13:05.326>lines <00:13:05.443>as <00:13:05.560>possible.

188
00:13:07.670 --> 00:13:11.010
<00:13:07.670>We <00:13:07.810>were <00:13:07.949>adding <00:13:08.089>the <00:13:08.229>test <00:13:08.370>and <00:13:08.510>we <00:13:08.650>were <00:13:08.790>getting <00:13:08.930>to <00:13:09.069>70%.

189
00:13:11.010 --> 00:13:15.330
<00:13:11.010>And <00:13:11.150>we <00:13:11.290>were <00:13:11.430>super <00:13:11.569>happy <00:13:11.710>and <00:13:11.850>releasing <00:13:11.990>the <00:13:12.130>product. <00:13:12.270>I <00:13:12.410>mean,

190
00:13:15.330 --> 00:13:18.810
<00:13:15.330>we <00:13:15.430>were <00:13:15.530>super <00:13:15.630>happy <00:13:15.730>the <00:13:15.830>first <00:13:15.930>time. <00:13:16.030>The <00:13:16.130>second <00:13:16.230>time <00:13:16.330>we <00:13:16.430>were <00:13:16.530>like, <00:13:16.630>Hmm, <00:13:16.730>okay,

191
00:13:19.310 --> 00:13:22.450
<00:13:19.310>the <00:13:19.449>third <00:13:19.589>time <00:13:19.729>we <00:13:19.869>were <00:13:20.010>like, <00:13:20.150>okay, <00:13:20.290>we <00:13:20.430>have <00:13:20.569>a <00:13:20.709>problem,

192
00:13:22.620 --> 00:13:26.490
<00:13:22.620>which <00:13:22.760>is <00:13:22.900>if <00:13:23.040>us <00:13:23.180>three <00:13:23.320>people <00:13:23.460>who <00:13:23.600>have <00:13:23.740>created <00:13:23.880>that <00:13:24.020>company

193
00:13:27.550 --> 00:13:31.890
<00:13:27.550>who <00:13:27.666>are <00:13:27.783>highly <00:13:27.900>relying <00:13:28.016>on <00:13:28.133>their <00:13:28.250>software, <00:13:28.366>who <00:13:28.483>believe <00:13:28.599>in <00:13:28.716>clean <00:13:28.833>code, <00:13:28.949>they,

194
00:13:32.270 --> 00:13:37.130
<00:13:32.270>we <00:13:32.386>cannot <00:13:32.503>reach <00:13:32.620>our <00:13:32.736>objectives. <00:13:32.853>I <00:13:32.970>mean, <00:13:33.086>there <00:13:33.203>are <00:13:33.319>probably <00:13:33.436>gonna <00:13:33.553>be <00:13:33.670>very,

195
00:13:37.200 --> 00:13:41.690
<00:13:37.200>very <00:13:37.327>few <00:13:37.454>teams <00:13:37.581>in <00:13:37.709>the <00:13:37.836>world <00:13:37.963>that <00:13:38.090>can <00:13:38.218>actually <00:13:38.345>reach <00:13:38.472>these <00:13:38.600>objectives.

196
00:13:42.490 --> 00:13:45.870
<00:13:42.490>So <00:13:42.606>we <00:13:42.723>started <00:13:42.840>to <00:13:42.956>think <00:13:43.073>about, <00:13:43.190>okay, <00:13:43.306>what <00:13:43.423>are <00:13:43.540>we <00:13:43.656>doing <00:13:43.773>wrong <00:13:43.890>here?

197
00:13:46.130 --> 00:13:49.110
<00:13:46.130>And <00:13:46.305>we <00:13:46.480>had <00:13:46.655>all <00:13:46.830>this <00:13:47.005>information <00:13:47.180>on <00:13:47.355>the, <00:13:47.530>all,

198
00:13:49.130 --> 00:13:51.870
<00:13:49.130>all <00:13:49.330>the <00:13:49.530>information <00:13:49.730>we <00:13:49.930>needed <00:13:50.130>on <00:13:50.330>even <00:13:50.530>more,

199
00:13:52.170 --> 00:13:56.030
<00:13:52.170>and <00:13:52.403>we <00:13:52.636>couldn't <00:13:52.870>reach, <00:13:53.103>um, <00:13:53.336>this <00:13:53.569>objective.

200
00:13:56.210 --> 00:13:59.680
<00:13:56.210>So <00:13:56.350>we <00:13:56.490>started <00:13:56.630>to <00:13:56.770>think, <00:13:56.910>how <00:13:57.050>can <00:13:57.190>we <00:13:57.330>have <00:13:57.470>an <00:13:57.610>impact?

201
00:13:59.780 --> 00:14:03.760
<00:13:59.780>How <00:13:59.907>can <00:14:00.034>we <00:14:00.161>make <00:14:00.289>it <00:14:00.416>that <00:14:00.543>whenever <00:14:00.670>we <00:14:00.798>come <00:14:00.925>to <00:14:01.052>a <00:14:01.180>release,

202
00:14:03.780 --> 00:14:06.440
<00:14:03.780>we <00:14:04.013>are <00:14:04.246>able <00:14:04.480>to <00:14:04.713>reach <00:14:04.946>our <00:14:05.180>objective,

203
00:14:07.180 --> 00:14:11.400
<00:14:07.180>we <00:14:07.280>are <00:14:07.380>able <00:14:07.479>to <00:14:07.579>release <00:14:07.680>and <00:14:07.780>feel <00:14:07.880>very <00:14:07.979>comfortable <00:14:08.079>that <00:14:08.180>we <00:14:08.280>did <00:14:08.380>a <00:14:08.479>good <00:14:08.579>job.

204
00:14:12.810 --> 00:14:17.150
<00:14:12.810>And <00:14:12.937>in <00:14:13.064>order <00:14:13.191>to, <00:14:13.319>um, <00:14:13.446>in <00:14:13.573>order <00:14:13.700>to <00:14:13.828>come <00:14:13.955>up <00:14:14.082>with <00:14:14.209>something,

205
00:14:17.170 --> 00:14:21.710
<00:14:17.170>we <00:14:17.277>really <00:14:17.385>had <00:14:17.493>to <00:14:17.600>change <00:14:17.708>the, <00:14:17.816>the <00:14:17.923>way <00:14:18.031>we <00:14:18.139>were <00:14:18.246>looking <00:14:18.354>at <00:14:18.462>the <00:14:18.569>problem,

206
00:14:21.840 --> 00:14:25.750
<00:14:21.840>which <00:14:21.967>is <00:14:22.094>we <00:14:22.221>had <00:14:22.349>always <00:14:22.476>been <00:14:22.603>looking <00:14:22.730>at <00:14:22.858>the <00:14:22.985>problem <00:14:23.112>as, <00:14:23.240>okay,

207
00:14:26.710 --> 00:14:31.620
<00:14:26.710>this <00:14:26.850>is <00:14:26.990>the <00:14:27.130>quality <00:14:27.270>of <00:14:27.410>my <00:14:27.550>code <00:14:27.690>and <00:14:27.830>this <00:14:27.970>is <00:14:28.110>my

208
00:14:31.620 --> 00:14:32.440
objective,

209
00:14:32.440 --> 00:14:36.900
<00:14:32.440>and <00:14:32.580>I <00:14:32.720>need <00:14:32.860>to <00:14:33.000>reach <00:14:33.140>that <00:14:33.280>objective <00:14:33.420>by <00:14:33.560>changing <00:14:33.700>my <00:14:33.840>code.

210
00:14:37.400 --> 00:14:41.340
<00:14:37.400>And <00:14:37.527>actually <00:14:37.654>what <00:14:37.781>happened <00:14:37.909>when <00:14:38.036>you <00:14:38.163>do <00:14:38.290>this, <00:14:38.418>you <00:14:38.545>actually, <00:14:38.672>if <00:14:38.800>you,

211
00:14:41.360 --> 00:14:43.900
<00:14:41.360>if <00:14:41.487>you <00:14:41.614>think <00:14:41.741>about, <00:14:41.869>uh, <00:14:41.996>like <00:14:42.123>a <00:14:42.250>water <00:14:42.378>leak, <00:14:42.505>which <00:14:42.632>is <00:14:42.760>a,

212
00:14:44.260 --> 00:14:48.300
<00:14:44.260>I <00:14:44.360>think <00:14:44.460>a <00:14:44.560>similar <00:14:44.660>problem. <00:14:44.760>It's <00:14:44.860>like <00:14:44.960>if, <00:14:45.060>if <00:14:45.160>if <00:14:45.260>you <00:14:45.360>have <00:14:45.460>a <00:14:45.560>water <00:14:45.660>leak,

213
00:14:48.720 --> 00:14:51.600
<00:14:48.720>you <00:14:48.827>were <00:14:48.935>looking <00:14:49.043>at <00:14:49.150>the, <00:14:49.258>at <00:14:49.366>the <00:14:49.473>water, <00:14:49.581>which <00:14:49.689>is <00:14:49.796>already <00:14:49.904>on <00:14:50.012>the <00:14:50.120>floor,

214
00:14:51.660 --> 00:14:55.390
<00:14:51.660>and <00:14:51.787>you <00:14:51.914>were, <00:14:52.041>you <00:14:52.169>were <00:14:52.296>saying <00:14:52.423>like, <00:14:52.550>okay, <00:14:52.678>where <00:14:52.805>do <00:14:52.932>I <00:14:53.060>start?

215
00:14:55.760 --> 00:15:00.150
<00:14:55.760>Where <00:14:55.867>do <00:14:55.975>I <00:14:56.083>start <00:14:56.190>to <00:14:56.298>mop? <00:14:56.406>And <00:14:56.513>if <00:14:56.621>you <00:14:56.729>think <00:14:56.836>about <00:14:56.944>the <00:14:57.052>water <00:14:57.160>leak,

216
00:15:00.870 --> 00:15:05.130
<00:15:00.870>actually <00:15:00.986>your <00:15:01.103>intuition <00:15:01.220>will <00:15:01.336>tell <00:15:01.453>you <00:15:01.570>that <00:15:01.686>before <00:15:01.803>mapping <00:15:01.920>you <00:15:02.036>should <00:15:02.153>plug <00:15:02.270>the

217
00:15:05.130 --> 00:15:10.050
<00:15:05.130>leak. <00:15:05.257>You <00:15:05.384>should <00:15:05.511>fix <00:15:05.639>the <00:15:05.766>leak. <00:15:05.893>Otherwise <00:15:06.020>all <00:15:06.148>this <00:15:06.275>effort <00:15:06.402>is <00:15:06.530>wasted.

218
00:15:10.840 --> 00:15:13.540
<00:15:10.840>And <00:15:11.015>here <00:15:11.190>for <00:15:11.365>the <00:15:11.540>code, <00:15:11.715>it's <00:15:11.890>exactly <00:15:12.065>the <00:15:12.240>same,

219
00:15:13.630 --> 00:15:18.380
<00:15:13.630>which <00:15:13.717>is <00:15:13.805>when <00:15:13.892>you <00:15:13.980>look <00:15:14.067>at <00:15:14.155>the <00:15:14.242>state <00:15:14.330>of <00:15:14.417>your <00:15:14.505>code, <00:15:14.592>you <00:15:14.680>are <00:15:14.767>looking <00:15:14.855>at <00:15:14.942>the <00:15:15.030>water,

220
00:15:18.380 --> 00:15:21.780
<00:15:18.380>which <00:15:18.496>is <00:15:18.613>already <00:15:18.730>on <00:15:18.846>the <00:15:18.963>floor. <00:15:19.080>This <00:15:19.196>is <00:15:19.313>done, <00:15:19.430>this <00:15:19.546>is <00:15:19.663>in <00:15:19.780>production,

221
00:15:21.780 --> 00:15:22.613
<00:15:21.780>this <00:15:22.154>is <00:15:22.529>running,

222
00:15:23.540 --> 00:15:28.400
<00:15:23.540>and <00:15:23.656>you <00:15:23.773>still <00:15:23.890>have <00:15:24.006>all <00:15:24.123>the <00:15:24.240>developers <00:15:24.356>on <00:15:24.473>the <00:15:24.589>project, <00:15:24.706>on <00:15:24.823>the <00:15:24.939>application,

223
00:15:28.770 --> 00:15:30.840
<00:15:28.770>which <00:15:29.050>are <00:15:29.329>writing <00:15:29.610>code, <00:15:29.890>changing <00:15:30.170>code.

224
00:15:31.020 --> 00:15:33.680
<00:15:31.020>And <00:15:31.175>if <00:15:31.331>you <00:15:31.486>don't <00:15:31.642>change <00:15:31.797>the <00:15:31.953>way <00:15:32.108>they <00:15:32.264>do <00:15:32.420>it,

225
00:15:34.960 --> 00:15:39.680
<00:15:34.960>actually <00:15:35.076>you <00:15:35.193>are <00:15:35.310>wasting <00:15:35.426>your <00:15:35.543>time <00:15:35.660>when <00:15:35.776>you're <00:15:35.893>trying <00:15:36.010>to <00:15:36.126>m <00:15:36.243>the <00:15:36.360>floor.

226
00:15:40.110 --> 00:15:44.960
<00:15:40.110>This <00:15:40.226>is <00:15:40.343>really <00:15:40.460>what <00:15:40.576>we <00:15:40.693>change <00:15:40.810>in <00:15:40.926>the <00:15:41.043>way, <00:15:41.160>uh, <00:15:41.276>we <00:15:41.393>look <00:15:41.510>at,

227
00:15:45.140 --> 00:15:49.230
<00:15:45.140>at <00:15:45.314>this <00:15:45.490>problem. <00:15:45.665>And <00:15:45.840>then <00:15:46.015>it <00:15:46.189>starts <00:15:46.365>to <00:15:46.540>be,

228
00:15:49.570 --> 00:15:51.990
<00:15:49.570>it <00:15:49.770>starts <00:15:49.970>to <00:15:50.170>become <00:15:50.370>a <00:15:50.570>very <00:15:50.770>simple <00:15:50.970>problem,

229
00:15:52.120 --> 00:15:56.660
<00:15:52.120>which <00:15:52.236>is <00:15:52.353>as <00:15:52.470>the <00:15:52.586>first <00:15:52.703>thing <00:15:52.820>you <00:15:52.936>want <00:15:53.053>is <00:15:53.170>to <00:15:53.286>fix <00:15:53.403>the <00:15:53.520>leak.

230
00:15:57.160 --> 00:16:01.900
<00:15:57.160>The <00:15:57.242>first <00:15:57.324>thing <00:15:57.407>you <00:15:57.489>have <00:15:57.571>to <00:15:57.654>do <00:15:57.736>is <00:15:57.818>you <00:15:57.901>have <00:15:57.983>to <00:15:58.065>put <00:15:58.148>some <00:15:58.230>sort <00:15:58.312>of <00:15:58.395>gate <00:15:58.477>on <00:15:58.560>the

231
00:16:01.900 --> 00:16:04.100
<00:16:01.900>code <00:16:02.055>that <00:16:02.211>you <00:16:02.366>add <00:16:02.522>or <00:16:02.677>the <00:16:02.833>code <00:16:02.988>that <00:16:03.144>you <00:16:03.300>change.

232
00:16:04.760 --> 00:16:09.350
<00:16:04.760>So <00:16:04.876>because <00:16:04.993>that <00:16:05.110>the <00:16:05.226>quality <00:16:05.343>gate <00:16:05.460>on <00:16:05.576>what <00:16:05.693>we're <00:16:05.810>saying <00:16:05.926>is <00:16:06.043>that, <00:16:06.160>okay,

233
00:16:09.650 --> 00:16:13.390
<00:16:09.650>if <00:16:09.757>you're <00:16:09.865>going <00:16:09.973>to <00:16:10.080>change <00:16:10.188>code <00:16:10.296>or <00:16:10.403>if <00:16:10.511>you're <00:16:10.619>going <00:16:10.726>to <00:16:10.834>add <00:16:10.942>some <00:16:11.050>code,

234
00:16:14.580 --> 00:16:17.800
<00:16:14.580>you <00:16:14.755>this <00:16:14.930>code <00:16:15.105>should <00:16:15.280>not <00:16:15.455>have <00:16:15.630>any <00:16:15.805>big <00:16:15.980>problem.

235
00:16:18.180 --> 00:16:22.240
<00:16:18.180>So <00:16:18.354>basically <00:16:18.530>any <00:16:18.704>issue <00:16:18.880>which <00:16:19.055>is <00:16:19.229>whatever <00:16:19.405>critical <00:16:19.579>blocker,

236
00:16:22.980 --> 00:16:24.560
<00:16:22.980>no, <00:16:23.330>it's, <00:16:23.680>it's <00:16:24.030>a <00:16:24.380>no,

237
00:16:24.620 --> 00:16:29.180
<00:16:24.620>you <00:16:24.900>cannot <00:16:25.180>push <00:16:25.460>into <00:16:25.740>production <00:16:26.020>knowingly

238
00:16:29.410 --> 00:16:33.020
<00:16:29.410>some <00:16:29.643>security <00:16:29.876>problems, <00:16:30.110>stability <00:16:30.343>problem, <00:16:30.576>robustness <00:16:30.810>problem.

239
00:16:33.080 --> 00:16:36.740
<00:16:33.080>You <00:16:33.187>cannot <00:16:33.295>do <00:16:33.403>that. <00:16:33.510>And <00:16:33.618>when <00:16:33.726>you <00:16:33.833>think <00:16:33.941>about <00:16:34.049>it <00:16:34.156>this <00:16:34.264>way, <00:16:34.372>it's <00:16:34.480>actually,

240
00:16:36.820 --> 00:16:40.500
<00:16:36.820>I <00:16:36.960>would <00:16:37.100>say <00:16:37.240>what <00:16:37.380>I <00:16:37.520>called <00:16:37.660>a <00:16:37.800>basic, <00:16:37.940>uh, <00:16:38.080>coding <00:16:38.220>hygiene,

241
00:16:40.950 --> 00:16:43.540
<00:16:40.950>which <00:16:41.183>is <00:16:41.416>why <00:16:41.650>would <00:16:41.883>you <00:16:42.116>do <00:16:42.350>differently?

242
00:16:44.960 --> 00:16:47.460
<00:16:44.960>So <00:16:45.240>developers, <00:16:45.520>if <00:16:45.800>you <00:16:46.080>do <00:16:46.360>this,

243
00:16:47.460 --> 00:16:50.780
<00:16:47.460>they <00:16:47.660>will <00:16:47.860>fully <00:16:48.060>be <00:16:48.260>responsible <00:16:48.460>for <00:16:48.660>their <00:16:48.860>code.

244
00:16:51.000 --> 00:16:52.700
<00:16:51.000>It <00:16:51.200>doesn't <00:16:51.400>mean <00:16:51.600>that <00:16:51.800>the <00:16:52.000>code <00:16:52.200>that <00:16:52.400>we,

245
00:16:52.970 --> 00:16:57.140
<00:16:52.970>that <00:16:53.077>was <00:16:53.185>written <00:16:53.293>15 <00:16:53.400>years <00:16:53.508>ago <00:16:53.616>will <00:16:53.723>be <00:16:53.831>the <00:16:53.939>responsibility. <00:16:54.046>Not <00:16:54.154>what <00:16:54.262>I'm <00:16:54.370>saying.

246
00:16:57.140 --> 00:17:01.180
<00:16:57.140>What <00:16:57.240>I'm <00:16:57.340>saying <00:16:57.439>is <00:16:57.540>that <00:16:57.640>the <00:16:57.740>code <00:16:57.840>that <00:16:57.939>is <00:16:58.040>being <00:16:58.140>done <00:16:58.240>now <00:16:58.340>should <00:16:58.439>be <00:16:58.540>clean.

247
00:17:02.460 --> 00:17:07.080
<00:17:02.460>The <00:17:02.560>other <00:17:02.660>thing <00:17:02.760>that <00:17:02.860>will <00:17:02.960>happen <00:17:03.060>is <00:17:03.160>it'll, <00:17:03.260>it'll <00:17:03.360>be <00:17:03.460>a <00:17:03.560>forcing <00:17:03.660>function <00:17:03.760>to <00:17:03.860>learn,

248
00:17:07.410 --> 00:17:11.560
<00:17:07.410>which <00:17:07.585>is <00:17:07.760>sometimes <00:17:07.935>you <00:17:08.110>have <00:17:08.285>no <00:17:08.460>idea <00:17:08.635>why, <00:17:08.810>um,

249
00:17:12.090 --> 00:17:16.480
<00:17:12.089>tools <00:17:12.206>are <00:17:12.323>reporting <00:17:12.439>a <00:17:12.556>problem, <00:17:12.673>and <00:17:12.790>you <00:17:12.906>are <00:17:13.023>gonna <00:17:13.139>have <00:17:13.256>to <00:17:13.373>learn <00:17:13.490>this.

250
00:17:17.420 --> 00:17:18.960
<00:17:17.420>The <00:17:17.882>big <00:17:18.344>upside <00:17:18.806>also,

251
00:17:19.180 --> 00:17:22.040
<00:17:19.180>and <00:17:19.287>I <00:17:19.395>think <00:17:19.503>this <00:17:19.610>is <00:17:19.718>super <00:17:19.826>important <00:17:19.933>and <00:17:20.041>I <00:17:20.149>want <00:17:20.256>to <00:17:20.364>insist <00:17:20.472>on <00:17:20.580>this,

252
00:17:22.180 --> 00:17:25.120
<00:17:22.180>is <00:17:22.380>with <00:17:22.580>this <00:17:22.780>approach, <00:17:22.980>this <00:17:23.180>is <00:17:23.380>forward <00:17:23.580>looking,

253
00:17:25.290 --> 00:17:27.960
<00:17:25.290>which <00:17:25.490>means <00:17:25.690>you <00:17:25.889>don't <00:17:26.089>start <00:17:26.290>with <00:17:26.490>a <00:17:26.690>backlog.

254
00:17:27.990 --> 00:17:32.290
<00:17:27.990>When <00:17:28.106>you <00:17:28.223>look <00:17:28.339>at <00:17:28.456>your <00:17:28.573>entire <00:17:28.690>application, <00:17:28.806>what <00:17:28.923>happens <00:17:29.040>is <00:17:29.156>you <00:17:29.273>are <00:17:29.390>trying,

255
00:17:32.470 --> 00:17:35.730
<00:17:32.470>you <00:17:32.597>are <00:17:32.724>kind <00:17:32.851>of <00:17:32.979>trying <00:17:33.106>to <00:17:33.233>solve <00:17:33.360>the <00:17:33.488>hunger <00:17:33.615>in <00:17:33.742>the <00:17:33.870>world,

256
00:17:35.730 --> 00:17:40.450
<00:17:35.730>which <00:17:35.830>is <00:17:35.930>you <00:17:36.030>are <00:17:36.130>trying <00:17:36.230>to <00:17:36.330>solve <00:17:36.430>some <00:17:36.530>problem <00:17:36.630>which <00:17:36.730>have <00:17:36.830>been <00:17:36.930>piling <00:17:37.030>up <00:17:37.130>for

257
00:17:40.450 --> 00:17:43.850
<00:17:40.450>15 <00:17:40.605>years. <00:17:40.761>Here <00:17:40.916>what <00:17:41.072>we <00:17:41.227>are <00:17:41.383>talking <00:17:41.538>about <00:17:41.694>is, <00:17:41.850>hey,

258
00:17:44.070 --> 00:17:47.800
<00:17:44.070>all <00:17:44.177>the <00:17:44.285>code <00:17:44.393>that <00:17:44.500>is <00:17:44.608>gonna <00:17:44.716>be <00:17:44.823>written <00:17:44.931>in <00:17:45.039>the <00:17:45.146>future <00:17:45.254>should <00:17:45.362>be <00:17:45.470>clean.

259
00:17:48.480 --> 00:17:51.640
<00:17:48.480>So <00:17:48.620>back <00:17:48.760>to <00:17:48.900>my <00:17:49.040>example <00:17:49.180>of <00:17:49.320>cut <00:17:49.460>coverage. <00:17:49.600>Think <00:17:49.740>about <00:17:49.880>it.

260
00:17:52.290 --> 00:17:55.480
<00:17:52.290>Let's <00:17:52.445>say <00:17:52.601>you <00:17:52.756>have <00:17:52.912>a <00:17:53.067>team <00:17:53.223>that <00:17:53.378>hasn't <00:17:53.534>really <00:17:53.690>mastered,

261
00:17:55.550 --> 00:17:58.240
<00:17:55.550>that <00:17:55.750>is <00:17:55.950>not <00:17:56.149>mastering <00:17:56.350>yet, <00:17:56.550>uh, <00:17:56.750>cut <00:17:56.950>coverage.

262
00:17:59.080 --> 00:18:01.100
<00:17:59.080>You <00:17:59.254>want <00:17:59.429>this <00:17:59.605>guy <00:17:59.780>to <00:17:59.955>start <00:18:00.129>working <00:18:00.304>unit <00:18:00.480>test.

263
00:18:01.250 --> 00:18:03.740
<00:18:01.250>Your <00:18:01.450>application <00:18:01.650>is <00:18:01.850>tested <00:18:02.050>at <00:18:02.250>let's <00:18:02.450>say <00:18:02.650>5%.

264
00:18:03.890 --> 00:18:08.210
<00:18:03.890>What <00:18:04.006>you're <00:18:04.123>saying <00:18:04.240>here <00:18:04.356>is <00:18:04.473>the <00:18:04.590>new <00:18:04.706>code, <00:18:04.823>the <00:18:04.940>code <00:18:05.056>that <00:18:05.173>is <00:18:05.290>changed,

265
00:18:08.290 --> 00:18:13.050
<00:18:08.290>should <00:18:08.465>be <00:18:08.639>tested <00:18:08.815>at <00:18:08.990>whatever, <00:18:09.165>30, <00:18:09.340>40, <00:18:09.514>50, <00:18:09.690>60,

266
00:18:13.050 --> 00:18:15.810
<00:18:13.050>70%. <00:18:13.330>You <00:18:13.610>can <00:18:13.889>pick <00:18:14.169>any <00:18:14.450>number

267
00:18:17.770 --> 00:18:21.950
<00:18:17.770>so <00:18:17.857>that <00:18:17.945>you <00:18:18.032>can <00:18:18.120>pick <00:18:18.207>a <00:18:18.295>number <00:18:18.382>which <00:18:18.470>is <00:18:18.557>in <00:18:18.645>line <00:18:18.732>with <00:18:18.820>the <00:18:18.907>maturity <00:18:18.995>of <00:18:19.082>the <00:18:19.170>team

268
00:18:21.950 --> 00:18:25.230
<00:18:21.950>because <00:18:22.125>not <00:18:22.300>everybody <00:18:22.475>will <00:18:22.650>be <00:18:22.825>able <00:18:23.000>to <00:18:23.175>write, <00:18:23.350>uh,

269
00:18:25.660 --> 00:18:29.070
<00:18:25.660>unit <00:18:25.800>tests <00:18:25.940>that <00:18:26.080>will <00:18:26.220>cover <00:18:26.360>at <00:18:26.500>80, <00:18:26.640>90% <00:18:26.780>to <00:18:26.920>start <00:18:27.060>with.

270
00:18:29.130 --> 00:18:30.790
<00:18:29.130>So <00:18:29.363>you <00:18:29.596>might <00:18:29.830>need <00:18:30.063>to <00:18:30.296>ramp <00:18:30.530>up.

271
00:18:31.290 --> 00:18:36.160
<00:18:31.290>And <00:18:31.445>when <00:18:31.601>you <00:18:31.756>are <00:18:31.912>gonna <00:18:32.067>pick <00:18:32.223>50% <00:18:32.378>and <00:18:32.534>actually <00:18:32.690>meet

272
00:18:36.160 --> 00:18:39.280
<00:18:36.160>this <00:18:36.300>objective, <00:18:36.440>you <00:18:36.580>are <00:18:36.720>not <00:18:36.860>building <00:18:37.000>a <00:18:37.140>backlog <00:18:37.280>for <00:18:37.420>the <00:18:37.560>future,

273
00:18:39.370 --> 00:18:44.370
<00:18:39.370>which <00:18:39.463>is <00:18:39.556>when <00:18:39.649>you <00:18:39.743>pick <00:18:39.836>60%. <00:18:39.929>Next, <00:18:40.023>uh, <00:18:40.116>it's <00:18:40.209>gonna <00:18:40.303>be <00:18:40.396>for <00:18:40.489>the <00:18:40.583>future <00:18:40.676>code. <00:18:40.770>Again,

274
00:18:44.640 --> 00:18:49.170
<00:18:44.640>this <00:18:44.780>is <00:18:44.920>super <00:18:45.060>important <00:18:45.200>because <00:18:45.340>it <00:18:45.480>doesn't <00:18:45.620>force <00:18:45.760>you <00:18:45.900>to <00:18:46.040>choose

275
00:18:49.300 --> 00:18:53.220
<00:18:49.300>objectives <00:18:49.580>that <00:18:49.860>are <00:18:50.139>outside <00:18:50.419>of <00:18:50.700>the,

276
00:18:53.600 --> 00:18:58.180
<00:18:53.600>of <00:18:53.707>what <00:18:53.815>you <00:18:53.923>can, <00:18:54.030>uh, <00:18:54.138>team, <00:18:54.246>uh, <00:18:54.353>of <00:18:54.461>what <00:18:54.569>your <00:18:54.676>team <00:18:54.784>can <00:18:54.892>achieve. <00:18:55.000>Okay?

277
00:18:58.880 --> 00:19:00.380
<00:18:58.880>So <00:18:59.217>basically <00:18:59.555>with <00:18:59.892>this <00:19:00.230>approach,

278
00:19:00.640 --> 00:19:03.890
<00:19:00.640>all <00:19:00.795>the <00:19:00.951>code <00:19:01.106>that <00:19:01.262>is <00:19:01.417>changed <00:19:01.573>on <00:19:01.728>added <00:19:01.884>is <00:19:02.040>clean.

279
00:19:04.560 --> 00:19:08.810
<00:19:04.560>What <00:19:04.700>about <00:19:04.840>the <00:19:04.980>legacy <00:19:05.120>code? <00:19:05.260>This <00:19:05.399>is <00:19:05.540>the <00:19:05.679>other <00:19:05.820>big <00:19:05.960>impact,

280
00:19:08.820 --> 00:19:12.810
<00:19:08.820>which <00:19:08.960>is <00:19:09.100>because <00:19:09.240>we <00:19:09.379>keep <00:19:09.520>changing <00:19:09.659>code, <00:19:09.800>this <00:19:09.939>is <00:19:10.080>our <00:19:10.220>life.

281
00:19:14.770 --> 00:19:15.603
<00:19:14.770>The <00:19:15.519>and,

282
00:19:16.090 --> 00:19:19.830
<00:19:16.090>and <00:19:16.217>the <00:19:16.344>companies <00:19:16.471>change <00:19:16.599>about <00:19:16.726>20% <00:19:16.853>of <00:19:16.980>the <00:19:17.108>code <00:19:17.235>base <00:19:17.362>every <00:19:17.490>year.

283
00:19:20.600 --> 00:19:22.660
<00:19:20.600>It <00:19:20.800>means <00:19:21.000>that <00:19:21.199>if <00:19:21.399>you <00:19:21.600>start <00:19:21.800>with <00:19:22.000>code,

284
00:19:22.660 --> 00:19:26.300
<00:19:22.660>which <00:19:22.860>is <00:19:23.060>entirely <00:19:23.260>bad <00:19:23.460>or <00:19:23.660>junky <00:19:23.860>or <00:19:24.060>whatever,

285
00:19:27.330 --> 00:19:31.040
<00:19:27.330>after <00:19:27.485>one <00:19:27.641>year, <00:19:27.796>you're <00:19:27.952>gonna <00:19:28.107>have <00:19:28.263>about <00:19:28.418>20%. <00:19:28.574>In <00:19:28.730>average,

286
00:19:31.100 --> 00:19:34.320
<00:19:31.100>you're <00:19:31.255>gonna <00:19:31.411>have <00:19:31.566>20% <00:19:31.722>of <00:19:31.877>code, <00:19:32.033>which <00:19:32.188>now <00:19:32.344>is <00:19:32.500>clean.

287
00:19:35.400 --> 00:19:38.160
<00:19:35.400>After <00:19:35.633>two <00:19:35.866>years, <00:19:36.100>it <00:19:36.333>might <00:19:36.566>be <00:19:36.800>30,

288
00:19:38.160 --> 00:19:42.320
<00:19:38.160>35% <00:19:38.300>of <00:19:38.440>clean <00:19:38.580>code. <00:19:38.720>There <00:19:38.860>will <00:19:39.000>be <00:19:39.140>overlapped <00:19:39.280>with <00:19:39.420>your <00:19:39.560>one.

289
00:19:42.850 --> 00:19:47.840
<00:19:42.850>After <00:19:42.966>five <00:19:43.083>years, <00:19:43.199>it <00:19:43.316>might <00:19:43.433>be <00:19:43.550>as <00:19:43.666>big <00:19:43.783>as <00:19:43.899>50%. <00:19:44.016>Think <00:19:44.133>about <00:19:44.250>it,

290
00:19:48.550 --> 00:19:53.080
<00:19:48.550>half <00:19:48.666>of <00:19:48.783>the <00:19:48.899>code <00:19:49.016>will <00:19:49.133>be <00:19:49.250>clean, <00:19:49.366>half <00:19:49.483>of <00:19:49.600>the <00:19:49.716>code <00:19:49.833>will <00:19:49.950>not,

291
00:19:53.700 --> 00:19:57.920
<00:19:53.700>um, <00:19:53.840>have <00:19:53.980>this, <00:19:54.120>all <00:19:54.260>these <00:19:54.400>problems <00:19:54.540>that <00:19:54.680>we <00:19:54.820>can <00:19:54.960>see <00:19:55.100>today.

292
00:19:58.500 --> 00:20:01.670
<00:19:58.500>If <00:19:58.607>you <00:19:58.715>think <00:19:58.823>about <00:19:58.930>it, <00:19:59.038>if <00:19:59.146>you <00:19:59.253>wanted <00:19:59.361>to <00:19:59.469>clean <00:19:59.576>up <00:19:59.684>your <00:19:59.792>project <00:19:59.900>today,

293
00:20:01.670 --> 00:20:06.190
<00:20:01.670>half <00:20:01.770>of <00:20:01.870>your <00:20:01.970>project, <00:20:02.070>that <00:20:02.170>would <00:20:02.270>be <00:20:02.370>a <00:20:02.470>huge <00:20:02.570>effort, <00:20:02.670>which <00:20:02.770>nobody <00:20:02.870>would <00:20:02.970>be, <00:20:03.070>uh,

294
00:20:06.930 --> 00:20:11.800
<00:20:06.930>would <00:20:07.085>be <00:20:07.241>really <00:20:07.396>to <00:20:07.552>go <00:20:07.707>into. <00:20:07.863>So <00:20:08.018>basically <00:20:08.174>by <00:20:08.330>doing,

295
00:20:11.980 --> 00:20:16.520
<00:20:11.980>by <00:20:12.120>taking <00:20:12.260>this <00:20:12.400>approach, <00:20:12.540>you <00:20:12.680>also <00:20:12.820>pay <00:20:12.960>back, <00:20:13.100>um, <00:20:13.240>the <00:20:13.380>past.

296
00:20:18.510 --> 00:20:23.460
<00:20:18.510>Where <00:20:18.637>does <00:20:18.764>this <00:20:18.891>whole <00:20:19.019>clean <00:20:19.146>as <00:20:19.273>you <00:20:19.400>code <00:20:19.528>happen? <00:20:19.655>Um, <00:20:19.782>it <00:20:19.910>doesn't,

297
00:20:24.160 --> 00:20:28.180
<00:20:24.160>it <00:20:24.300>doesn't <00:20:24.440>happen <00:20:24.580>at <00:20:24.720>a <00:20:24.860>specific <00:20:25.000>step <00:20:25.140>of <00:20:25.280>the <00:20:25.420>development <00:20:25.560>process.

298
00:20:28.440 --> 00:20:33.340
<00:20:28.440>It <00:20:28.580>actually <00:20:28.720>happens <00:20:28.860>within <00:20:29.000>the <00:20:29.140>development <00:20:29.280>process, <00:20:29.420>which <00:20:29.560>is, <00:20:29.700>of <00:20:29.840>course,

299
00:20:33.400 --> 00:20:34.860
<00:20:33.400>it <00:20:33.619>starts <00:20:33.838>in <00:20:34.057>the <00:20:34.276>i <00:20:34.495>d <00:20:34.714>e.

300
00:20:35.520 --> 00:20:38.420
<00:20:35.520>You <00:20:35.870>can <00:20:36.220>probably <00:20:36.570>catch <00:20:36.920>90%,

301
00:20:38.420 --> 00:20:40.900
<00:20:38.420>95% <00:20:38.595>of <00:20:38.770>the <00:20:38.945>problem <00:20:39.120>in <00:20:39.295>the <00:20:39.470>i <00:20:39.645>d <00:20:39.820>e.

302
00:20:41.450 --> 00:20:46.060
<00:20:41.450>Some <00:20:41.557>of <00:20:41.665>them <00:20:41.773>you <00:20:41.880>cannot <00:20:41.988>because <00:20:42.096>some <00:20:42.203>of <00:20:42.311>them <00:20:42.419>require <00:20:42.526>techniques <00:20:42.634>that <00:20:42.742>will <00:20:42.850>be

303
00:20:46.400 --> 00:20:50.920
<00:20:46.400>too <00:20:46.487>heavy <00:20:46.575>to <00:20:46.662>run <00:20:46.750>in <00:20:46.837>an <00:20:46.925>I <00:20:47.012>d <00:20:47.100>E. <00:20:47.187>Um, <00:20:47.275>so <00:20:47.362>they <00:20:47.450>need <00:20:47.537>to <00:20:47.625>happen <00:20:47.712>after <00:20:47.800>that.

304
00:20:51.140 --> 00:20:55.840
<00:20:51.140>So <00:20:51.256>it <00:20:51.373>starts <00:20:51.490>the <00:20:51.606>id, <00:20:51.723>it'll <00:20:51.840>continue <00:20:51.956>whether <00:20:52.073>you <00:20:52.190>do <00:20:52.306>the <00:20:52.423>code <00:20:52.540>review.

305
00:20:56.140 --> 00:20:59.920
<00:20:56.140>So <00:20:56.315>most <00:20:56.490>likely <00:20:56.665>pull <00:20:56.840>request, <00:20:57.015>change <00:20:57.190>requests, <00:20:57.365>merge <00:20:57.540>request,

306
00:21:00.820 --> 00:21:02.810
<00:21:00.820>where <00:21:01.520>before <00:21:02.220>merging,

307
00:21:03.350 --> 00:21:06.690
<00:21:03.350>the <00:21:03.524>developer <00:21:03.699>should <00:21:03.875>make <00:21:04.050>an <00:21:04.225>informed <00:21:04.399>decision <00:21:04.574>like, <00:21:04.750>okay,

308
00:21:06.790 --> 00:21:11.250
<00:21:06.790>am <00:21:06.897>I <00:21:07.005>adding <00:21:07.113>problems <00:21:07.220>here <00:21:07.328>when <00:21:07.436>I'm <00:21:07.543>merging <00:21:07.651>the, <00:21:07.759>the <00:21:07.866>code <00:21:07.974>of <00:21:08.082>my <00:21:08.190>colleague?

309
00:21:11.920 --> 00:21:16.460
<00:21:11.920>And <00:21:12.027>it's <00:21:12.135>going <00:21:12.243>to <00:21:12.350>continue <00:21:12.458>into <00:21:12.566>every <00:21:12.673>time <00:21:12.781>you <00:21:12.889>want <00:21:12.996>to <00:21:13.104>promote <00:21:13.212>the <00:21:13.320>code,

310
00:21:16.460 --> 00:21:21.300
<00:21:16.460>you <00:21:16.600>need <00:21:16.740>to <00:21:16.880>make <00:21:17.020>sure <00:21:17.160>that <00:21:17.300>nobody's <00:21:17.440>introducing <00:21:17.580>new <00:21:17.720>problems, <00:21:17.860>um,

311
00:21:22.120 --> 00:21:27.060
<00:21:22.120>to, <00:21:22.213>to <00:21:22.306>follow <00:21:22.399>the <00:21:22.493>clean <00:21:22.586>as <00:21:22.679>you <00:21:22.773>code. <00:21:22.866>So <00:21:22.959>basically <00:21:23.053>then <00:21:23.146>you <00:21:23.239>have <00:21:23.333>a <00:21:23.426>quality <00:21:23.520>gate,

312
00:21:27.060 --> 00:21:31.620
<00:21:27.060>which <00:21:27.176>is <00:21:27.293>common <00:21:27.409>to <00:21:27.526>all <00:21:27.643>your <00:21:27.760>application, <00:21:27.876>all <00:21:27.993>your <00:21:28.110>technology, <00:21:28.226>all <00:21:28.343>your <00:21:28.460>teams.

313
00:21:31.800 --> 00:21:34.620
<00:21:31.800>It <00:21:31.975>doesn't <00:21:32.149>matter <00:21:32.325>what's <00:21:32.500>the <00:21:32.675>maturity <00:21:32.850>of <00:21:33.024>the <00:21:33.200>team.

314
00:21:34.620 --> 00:21:37.340
<00:21:34.620>It <00:21:34.760>doesn't <00:21:34.899>matter <00:21:35.040>whether <00:21:35.179>it's <00:21:35.320>a <00:21:35.459>new <00:21:35.600>project, <00:21:35.739>a <00:21:35.879>legacy <00:21:36.020>project,

315
00:21:37.440 --> 00:21:40.260
<00:21:37.440>it <00:21:37.595>doesn't <00:21:37.751>matter <00:21:37.906>whether <00:21:38.062>you <00:21:38.217>insource <00:21:38.373>your <00:21:38.528>outsource, <00:21:38.684>the <00:21:38.840>development.

316
00:21:40.720 --> 00:21:45.260
<00:21:40.720>You <00:21:40.860>can <00:21:41.000>have <00:21:41.140>the <00:21:41.280>same <00:21:41.420>expectation <00:21:41.560>of <00:21:41.700>quality <00:21:41.840>for <00:21:41.980>all <00:21:42.120>these,

317
00:21:45.600 --> 00:21:46.460
<00:21:45.600>uh, <00:21:45.987>use <00:21:46.374>cases.

318
00:21:53.360 --> 00:21:57.180
<00:21:53.360>So <00:21:53.534>just <00:21:53.709>quick, <00:21:53.885>quick <00:21:54.060>summary <00:21:54.235>to, <00:21:54.409>uh, <00:21:54.584>to, <00:21:54.760>to,

319
00:21:57.280 --> 00:22:02.260
<00:21:57.280>to <00:21:57.396>say <00:21:57.513>again <00:21:57.629>what <00:21:57.746>I <00:21:57.863>was <00:21:57.980>said <00:21:58.096>here. <00:21:58.213>Four <00:21:58.330>big <00:21:58.446>points. <00:21:58.563>First <00:21:58.680>off,

320
00:22:03.050 --> 00:22:06.190
<00:22:03.050>bad <00:22:03.177>code <00:22:03.304>is <00:22:03.431>not <00:22:03.559>fun. <00:22:03.686>This <00:22:03.813>is <00:22:03.940>not <00:22:04.068>a <00:22:04.195>great <00:22:04.322>work <00:22:04.450>environment.

321
00:22:07.230 --> 00:22:11.540
<00:22:07.230>Clean <00:22:07.385>code <00:22:07.541>is <00:22:07.696>a <00:22:07.852>much <00:22:08.007>more <00:22:08.163>enjoyable <00:22:08.318>environment <00:22:08.474>for <00:22:08.630>everybody.

322
00:22:12.100 --> 00:22:15.330
<00:22:12.100>Developers, <00:22:12.566>engineering <00:22:13.033>managers, <00:22:13.500>business,

323
00:22:15.330 --> 00:22:19.850
<00:22:15.330>everybody <00:22:15.446>enjoys <00:22:15.563>clean <00:22:15.679>code <00:22:15.796>because <00:22:15.913>you <00:22:16.030>actually <00:22:16.146>do <00:22:16.263>what <00:22:16.379>you're <00:22:16.496>supposed <00:22:16.613>to <00:22:16.730>do

324
00:22:19.850 --> 00:22:20.683
<00:22:19.850>when <00:22:20.037>you <00:22:20.224>have <00:22:20.412>clean <00:22:20.599>code.

325
00:22:21.700 --> 00:22:26.120
<00:22:21.700>Two <00:22:21.807>is <00:22:21.915>knowing <00:22:22.023>that <00:22:22.130>the <00:22:22.238>code <00:22:22.346>is <00:22:22.453>not <00:22:22.561>good <00:22:22.669>is <00:22:22.776>not <00:22:22.884>enough. <00:22:22.992>I <00:22:23.100>mean,

326
00:22:26.120 --> 00:22:29.880
<00:22:26.120>once <00:22:26.236>you <00:22:26.353>know <00:22:26.469>what <00:22:26.586>you <00:22:26.703>do, <00:22:26.820>how <00:22:26.936>do <00:22:27.053>you <00:22:27.169>impact <00:22:27.286>in <00:22:27.403>many, <00:22:27.520>many,

327
00:22:29.880 --> 00:22:34.120
<00:22:29.880>many <00:22:30.113>organizations <00:22:30.346>today, <00:22:30.580>people <00:22:30.813>know, <00:22:31.046>um, <00:22:31.280>these,

328
00:22:34.210 --> 00:22:37.720
<00:22:34.210>these <00:22:34.365>tools <00:22:34.521>like <00:22:34.676>sonar, <00:22:34.832>they <00:22:34.987>have <00:22:35.143>become <00:22:35.298>like <00:22:35.454>a <00:22:35.610>commodity.

329
00:22:37.720 --> 00:22:40.400
<00:22:37.720>Everybody's <00:22:37.875>using <00:22:38.031>sonar. <00:22:38.186>But <00:22:38.342>the <00:22:38.497>question <00:22:38.653>is <00:22:38.808>to <00:22:38.964>do <00:22:39.120>what?

330
00:22:40.900 --> 00:22:43.510
<00:22:40.900>How <00:22:41.180>do <00:22:41.460>you <00:22:41.740>put <00:22:42.020>some <00:22:42.300>policies,

331
00:22:43.510 --> 00:22:48.140
<00:22:43.510>guidelines <00:22:43.665>that <00:22:43.821>will <00:22:43.976>help <00:22:44.132>to <00:22:44.287>improve <00:22:44.443>the <00:22:44.598>code <00:22:44.754>when <00:22:44.910>solving

332
00:22:48.160 --> 00:22:50.100
<00:22:48.160>should <00:22:48.510>be <00:22:48.860>really <00:22:49.210>your <00:22:49.560>objective?

333
00:22:50.360 --> 00:22:54.450
<00:22:50.360>And <00:22:50.515>we <00:22:50.671>think <00:22:50.826>that <00:22:50.982>clean <00:22:51.137>as <00:22:51.293>you <00:22:51.448>code <00:22:51.604>is <00:22:51.760>really

334
00:22:55.190 --> 00:22:56.890
<00:22:55.190>the <00:22:55.890>simplest, <00:22:56.590>um,

335
00:22:57.760 --> 00:23:01.290
<00:22:57.760>most <00:22:57.935>impactful <00:22:58.110>way <00:22:58.285>to <00:22:58.460>close <00:22:58.635>this <00:22:58.810>gap. <00:22:58.985>You <00:22:59.160>don't,

336
00:23:01.430 --> 00:23:04.610
<00:23:01.430>you <00:23:01.710>add <00:23:01.990>no <00:23:02.270>extra <00:23:02.550>step <00:23:02.830>here.

337
00:23:04.730 --> 00:23:08.770
<00:23:04.730>You're <00:23:04.857>just <00:23:04.984>asking <00:23:05.111>people <00:23:05.239>that <00:23:05.366>whenever <00:23:05.493>they <00:23:05.620>change <00:23:05.748>codes, <00:23:05.875>they <00:23:06.002>add <00:23:06.130>code,

338
00:23:09.360 --> 00:23:12.770
<00:23:09.360>this <00:23:09.534>code <00:23:09.709>actually <00:23:09.885>has <00:23:10.060>the <00:23:10.235>right <00:23:10.409>level <00:23:10.584>of <00:23:10.760>quality.

339
00:23:13.630 --> 00:23:18.090
<00:23:13.630>And <00:23:13.746>I <00:23:13.863>do <00:23:13.980>not <00:23:14.096>personally <00:23:14.213>believe <00:23:14.330>that <00:23:14.446>writing <00:23:14.563>quality <00:23:14.680>code <00:23:14.796>costs <00:23:14.913>more <00:23:15.030>than

340
00:23:18.600 --> 00:23:22.250
<00:23:18.600>writing <00:23:18.833>bad <00:23:19.066>code. <00:23:19.300>Um, <00:23:19.533>it's <00:23:19.766>only, <00:23:20.000>uh,

341
00:23:22.350 --> 00:23:25.970
<00:23:22.350>bad <00:23:22.490>code <00:23:22.629>could <00:23:22.770>cost <00:23:22.909>actually <00:23:23.050>more <00:23:23.189>because <00:23:23.330>once <00:23:23.469>you <00:23:23.610>pushed <00:23:23.750>it,

342
00:23:25.990 --> 00:23:28.050
<00:23:25.990>you <00:23:26.165>are <00:23:26.340>most <00:23:26.515>likely <00:23:26.690>gonna <00:23:26.865>have <00:23:27.040>to <00:23:27.215>fix <00:23:27.390>it.

343
00:23:29.190 --> 00:23:33.060
<00:23:29.190>And <00:23:29.470>this <00:23:29.750>is <00:23:30.030>it <00:23:30.310>for <00:23:30.590>me.

344
00:23:33.390 --> 00:23:34.380
<00:23:33.390>Thank <00:23:33.687>you <00:23:33.984>very <00:23:34.281>much.

345
00:23:50.720 --> 00:23:55.500
<00:23:50.720>You <00:23:50.875>were <00:23:51.031>late, <00:23:51.186>so <00:23:51.342>I'm <00:23:51.497>paying <00:23:51.653>you <00:23:51.808>back. <00:23:51.964>So, <00:23:52.120>great.

346
00:23:56.280 --> 00:24:00.100
<00:23:56.280>Uh, <00:23:56.420>we <00:23:56.560>have <00:23:56.700>a <00:23:56.840>few <00:23:56.980>questions, <00:23:57.120>not <00:23:57.260>too <00:23:57.399>many. <00:23:57.540>Uh, <00:23:57.680>okay.

347
00:24:01.200 --> 00:24:05.340
<00:24:01.200>Do <00:24:01.300>you <00:24:01.400>also <00:24:01.500>take <00:24:01.600>things <00:24:01.700>like <00:24:01.800>d <00:24:01.900>d <00:24:02.000>D <00:24:02.100>or <00:24:02.200>other <00:24:02.300>architectural <00:24:02.400>concepts <00:24:02.500>into <00:24:02.600>account

348
00:24:05.340 --> 00:24:08.490
<00:24:05.340>when <00:24:05.540>analyzing <00:24:05.740>whether <00:24:05.939>new <00:24:06.139>code <00:24:06.340>is <00:24:06.540>clean? <00:24:06.740>We

349
00:24:09.840 --> 00:24:13.810
<00:24:09.840>Take <00:24:09.995>certain <00:24:10.151>frameworks, <00:24:10.306>uh, <00:24:10.462>into <00:24:10.617>consideration, <00:24:10.773>not <00:24:10.928>all <00:24:11.084>of <00:24:11.240>them.

350
00:24:13.810 --> 00:24:14.850
<00:24:13.810>Which <00:24:14.121>framework <00:24:14.434>was <00:24:14.745>that?

351
00:24:15.210 --> 00:24:16.043
<00:24:15.210>D, <00:24:15.584>d <00:24:15.959>d

352
00:24:16.550 --> 00:24:17.090
<00:24:16.550>Not <00:24:16.712>sure <00:24:16.874>about <00:24:17.035>this

353
00:24:17.090 --> 00:24:18.410
<00:24:17.090>Domain <00:24:17.485>driven <00:24:17.882>design, <00:24:18.278>uh,

354
00:24:18.410 --> 00:24:19.730
<00:24:18.410>Domain <00:24:18.647>driven <00:24:18.885>design. <00:24:19.122>No, <00:24:19.360>we <00:24:19.598>don't.

355
00:24:20.070 --> 00:24:24.070
<00:24:20.070>You <00:24:20.197>don't? <00:24:20.324>No. <00:24:20.451>Can <00:24:20.579>we <00:24:20.706>always <00:24:20.833>a <00:24:20.960>hundred <00:24:21.088>percent <00:24:21.215>rely <00:24:21.342>on <00:24:21.470>sonar?

356
00:24:25.410 --> 00:24:26.243
<00:24:25.410>Of <00:24:26.159>course,

357
00:24:27.850 --> 00:24:28.683
<00:24:27.850>Of <00:24:28.599>course.

358
00:24:30.010 --> 00:24:34.790
<00:24:30.010>Um, <00:24:30.087>uh, <00:24:30.165>I <00:24:30.243>think <00:24:30.321>you, <00:24:30.398>I <00:24:30.476>think <00:24:30.554>we <00:24:30.632>could, <00:24:30.710>we <00:24:30.787>do <00:24:30.865>a <00:24:30.943>good <00:24:31.021>job <00:24:31.098>in <00:24:31.176>this. <00:24:31.254>Uh, <00:24:31.332>of <00:24:31.410>course,

359
00:24:35.330 --> 00:24:38.670
<00:24:35.330>uh, <00:24:35.470>given <00:24:35.610>the <00:24:35.750>techniques <00:24:35.889>that <00:24:36.030>we're <00:24:36.169>using, <00:24:36.310>there <00:24:36.449>are <00:24:36.590>always, <00:24:36.730>uh,

360
00:24:38.670 --> 00:24:42.670
<00:24:38.670>things <00:24:38.810>we <00:24:38.950>cannot <00:24:39.090>find. <00:24:39.230>And <00:24:39.370>there <00:24:39.510>are <00:24:39.650>always <00:24:39.790>things <00:24:39.930>that, <00:24:40.070>uh,

361
00:24:42.860 --> 00:24:47.420
<00:24:42.860>when <00:24:43.015>we <00:24:43.171>find <00:24:43.326>them, <00:24:43.482>um, <00:24:43.637>they're <00:24:43.793>not <00:24:43.948>always <00:24:44.104>exactly <00:24:44.260>true,

362
00:24:47.720 --> 00:24:50.500
<00:24:47.720>but, <00:24:47.813>uh, <00:24:47.906>most <00:24:48.000>of <00:24:48.093>the <00:24:48.186>time <00:24:48.280>I <00:24:48.373>think <00:24:48.466>we <00:24:48.560>do <00:24:48.653>a <00:24:48.746>very <00:24:48.840>good <00:24:48.933>job <00:24:49.026>here. <00:24:49.120>Mm-hmm.

363
00:24:51.560 --> 00:24:54.260
<00:24:51.560>Um, <00:24:51.735>ever <00:24:51.909>thought <00:24:52.085>of <00:24:52.260>sonar <00:24:52.435>as <00:24:52.610>an <00:24:52.784>educational <00:24:52.960>tool?

364
00:24:54.640 --> 00:24:58.060
<00:24:54.640>Yes, <00:24:54.840>absolutely. <00:24:55.040>You're <00:24:55.240>gonna <00:24:55.440>learn <00:24:55.640>stuff <00:24:55.840>in <00:24:56.040>sonar.

365
00:24:58.610 --> 00:25:01.680
<00:24:58.610>Okay. <00:24:58.959>Uh, <00:24:59.310>does <00:24:59.659>sonar <00:25:00.010>pricing,

366
00:25:02.060 --> 00:25:06.040
<00:25:02.060>is <00:25:02.167>sonar <00:25:02.275>pricing <00:25:02.383>based <00:25:02.490>on <00:25:02.598>scan <00:25:02.706>code <00:25:02.813>lines <00:25:02.921>or <00:25:03.029>the <00:25:03.136>lines <00:25:03.244>the <00:25:03.352>project <00:25:03.460>have?

367
00:25:06.340 --> 00:25:09.400
<00:25:06.340>And <00:25:06.467>how <00:25:06.594>are <00:25:06.721>returns <00:25:06.849>calculated <00:25:06.976>when <00:25:07.103>the <00:25:07.230>only <00:25:07.358>a <00:25:07.485>part <00:25:07.612>has <00:25:07.740>changed?

368
00:25:10.670 --> 00:25:13.040
<00:25:10.670>Okay, <00:25:11.370>so, <00:25:12.070>um,

369
00:25:16.060 --> 00:25:20.970
<00:25:16.060>sonar, <00:25:16.187>qb <00:25:16.314>sonar <00:25:16.441>lin <00:25:16.569>are <00:25:16.696>open <00:25:16.823>source <00:25:16.950>tools, <00:25:17.078>which <00:25:17.205>are <00:25:17.332>entirely <00:25:17.460>free.

370
00:25:21.120 --> 00:25:24.050
<00:25:21.120>It's <00:25:21.260>only <00:25:21.399>when <00:25:21.540>you <00:25:21.679>add <00:25:21.820>certain <00:25:21.959>features <00:25:22.100>that <00:25:22.239>there <00:25:22.379>is <00:25:22.520>a,

371
00:25:24.060 --> 00:25:28.650
<00:25:24.060>there <00:25:24.159>is <00:25:24.260>a <00:25:24.360>price <00:25:24.460>on <00:25:24.560>that. <00:25:24.659>Price <00:25:24.760>is <00:25:24.860>based <00:25:24.960>on <00:25:25.060>the <00:25:25.159>size <00:25:25.260>of <00:25:25.360>the <00:25:25.460>project,

372
00:25:29.470 --> 00:25:33.130
<00:25:29.470>not <00:25:29.597>the <00:25:29.724>number <00:25:29.851>of <00:25:29.979>analysis, <00:25:30.106>it's <00:25:30.233>just <00:25:30.360>the <00:25:30.488>size <00:25:30.615>of <00:25:30.742>the <00:25:30.870>project.

373
00:25:33.800 --> 00:25:35.690
<00:25:33.800>Like <00:25:33.975>the, <00:25:34.149>the <00:25:34.325>file <00:25:34.500>size <00:25:34.675>of <00:25:34.850>the <00:25:35.024>whole <00:25:35.200>project.

374
00:25:35.820 --> 00:25:36.330
<00:25:35.820>Lines <00:25:36.279>of

375
00:25:36.330 --> 00:25:37.163
<00:25:36.330>Code <00:25:37.079>traffic,

376
00:25:37.550 --> 00:25:38.810
<00:25:37.550>No, <00:25:38.117>total <00:25:38.684>size.

377
00:25:38.900 --> 00:25:42.550
<00:25:38.900>Total <00:25:39.250>size. <00:25:39.600>Okay, <00:25:39.950>cool. <00:25:40.300>Um,

378
00:25:44.560 --> 00:25:47.710
<00:25:44.560>Jesus, <00:25:44.760>some <00:25:44.960>of <00:25:45.159>those <00:25:45.360>questions <00:25:45.560>need <00:25:45.760>linting. <00:25:45.960>Um,

379
00:25:48.770 --> 00:25:53.190
<00:25:48.770>do <00:25:48.886>you <00:25:49.003>use <00:25:49.120>AI <00:25:49.236>during <00:25:49.353>analysis? <00:25:49.470>I <00:25:49.586>guess <00:25:49.703>some <00:25:49.820>machine <00:25:49.936>learning <00:25:50.053>is <00:25:50.170>happening,

380
00:25:53.190 --> 00:25:53.970
right?

381
00:25:53.970 --> 00:25:57.910
<00:25:53.970>We <00:25:54.110>do <00:25:54.250>not. <00:25:54.390>For <00:25:54.530>the <00:25:54.670>analysis <00:25:54.810>itself, <00:25:54.950>we <00:25:55.090>use <00:25:55.230>ai, <00:25:55.370>uh,

382
00:25:58.010 --> 00:25:59.110
<00:25:58.010>to <00:25:58.504>refine <00:25:59.000>results.

383
00:25:59.990 --> 00:26:03.470
<00:25:59.990>Okay. <00:26:00.223>Um, <00:26:00.456>I <00:26:00.690>guess <00:26:00.923>that <00:26:01.156>was <00:26:01.390>it.

384
00:26:03.890 --> 00:26:05.270
<00:26:03.890>One <00:26:04.138>thing <00:26:04.386>we <00:26:04.635>talked <00:26:04.883>about <00:26:05.132>earlier,

385
00:26:05.460 --> 00:26:09.830
<00:26:05.460>like <00:26:05.560>how <00:26:05.660>do <00:26:05.760>you <00:26:05.860>solve <00:26:05.960>the <00:26:06.060>problem <00:26:06.160>that <00:26:06.260>people <00:26:06.360>take <00:26:06.460>presets <00:26:06.560>that <00:26:06.660>might <00:26:06.760>be <00:26:06.860>too

386
00:26:09.830 --> 00:26:14.270
<00:26:09.830>strict <00:26:09.937>for <00:26:10.045>their <00:26:10.153>environment, <00:26:10.260>but <00:26:10.368>are <00:26:10.476>too <00:26:10.583>lazy <00:26:10.691>to <00:26:10.799>customize <00:26:10.906>it <00:26:11.014>to <00:26:11.122>their <00:26:11.230>needs?

387
00:26:15.390 --> 00:26:17.830
<00:26:15.390>I <00:26:15.517>think, <00:26:15.644>uh, <00:26:15.771>we <00:26:15.899>solve <00:26:16.026>it <00:26:16.153>with <00:26:16.280>a <00:26:16.408>clean <00:26:16.535>as <00:26:16.662>you <00:26:16.790>code,

388
00:26:18.000 --> 00:26:21.110
<00:26:18.000>which <00:26:18.175>is <00:26:18.350>because <00:26:18.525>you <00:26:18.700>don't <00:26:18.875>look <00:26:19.050>at <00:26:19.225>the <00:26:19.400>legacy.

389
00:26:21.410 --> 00:26:25.710
<00:26:21.410>We <00:26:21.503>are <00:26:21.596>actually <00:26:21.690>talking <00:26:21.783>about <00:26:21.876>the <00:26:21.970>code <00:26:22.063>that <00:26:22.156>you <00:26:22.250>write <00:26:22.343>now <00:26:22.436>that <00:26:22.530>has <00:26:22.623>to <00:26:22.716>be <00:26:22.810>clean.

390
00:26:26.330 --> 00:26:28.910
<00:26:26.330>So <00:26:26.563>when <00:26:26.796>you <00:26:27.030>think <00:26:27.263>about <00:26:27.496>this, <00:26:27.730>um,

391
00:26:29.270 --> 00:26:31.590
<00:26:29.270>I <00:26:29.503>think <00:26:29.736>the <00:26:29.970>strictness <00:26:30.203>doesn't <00:26:30.436>matter <00:26:30.670>anymore.

392
00:26:31.730 --> 00:26:36.110
<00:26:31.730>It <00:26:31.837>really <00:26:31.945>matters <00:26:32.053>if <00:26:32.160>you <00:26:32.268>look <00:26:32.376>at <00:26:32.483>the <00:26:32.591>gap <00:26:32.699>between <00:26:32.806>your <00:26:32.914>entire <00:26:33.022>application <00:26:33.130>with

393
00:26:36.640 --> 00:26:40.990
<00:26:36.640>where <00:26:36.747>you <00:26:36.855>want <00:26:36.963>to <00:26:37.070>be, <00:26:37.178>where <00:26:37.286>if <00:26:37.393>you <00:26:37.501>unable <00:26:37.609>a <00:26:37.716>rule <00:26:37.824>called <00:26:37.932>magic <00:26:38.040>numbers,

394
00:26:41.890 --> 00:26:46.400
<00:26:41.890>you <00:26:42.006>are <00:26:42.123>gonna <00:26:42.240>have <00:26:42.356>40,000 <00:26:42.473>issues, <00:26:42.590>which <00:26:42.706>you <00:26:42.823>are <00:26:42.940>never <00:26:43.056>gonna <00:26:43.173>fix. <00:26:43.290>Mm-hmm.

395
00:26:46.540 --> 00:26:51.450
<00:26:46.540>But <00:26:46.680>if <00:26:46.820>now <00:26:46.960>you <00:26:47.100>say, <00:26:47.240>Hey, <00:26:47.379>no <00:26:47.520>new <00:26:47.659>magic <00:26:47.800>numbers, <00:26:47.940>it's,

396
00:26:51.520 --> 00:26:53.490
<00:26:51.520>it's <00:26:51.800>really <00:26:52.080>much <00:26:52.360>easier <00:26:52.639>to, <00:26:52.920>um,

397
00:26:53.710 --> 00:26:57.410
<00:26:53.710>to <00:26:53.837>handle <00:26:53.964>so <00:26:54.091>clean <00:26:54.219>as <00:26:54.346>you <00:26:54.473>could <00:26:54.600>actually <00:26:54.728>take <00:26:54.855>this <00:26:54.982>problem <00:26:55.110>away.

398
00:26:57.840 --> 00:27:02.250
<00:26:57.840>Okay, <00:26:57.947>cool. <00:26:58.055>So <00:26:58.163>did <00:26:58.270>you <00:26:58.378>think <00:26:58.486>the, <00:26:58.593>the, <00:26:58.701>how <00:26:58.809>do <00:26:58.916>we <00:26:59.024>get <00:26:59.132>people <00:26:59.240>to,

399
00:27:02.310 --> 00:27:06.330
<00:27:02.310>to <00:27:02.465>invest <00:27:02.621>more <00:27:02.776>into <00:27:02.932>analysis <00:27:03.087>an <00:27:03.243>analysis <00:27:03.398>while <00:27:03.554>they <00:27:03.710>develop,

400
00:27:06.330 --> 00:27:08.890
<00:27:06.330>rather <00:27:06.504>than <00:27:06.679>doing <00:27:06.855>it <00:27:07.030>as <00:27:07.205>a <00:27:07.379>testing, <00:27:07.554>uh, <00:27:07.730>step?

401
00:27:09.990 --> 00:27:10.823
<00:27:09.990>Say <00:27:10.364>that <00:27:10.739>again.

402
00:27:11.630 --> 00:27:15.090
<00:27:11.630>My <00:27:11.707>problem <00:27:11.785>is <00:27:11.863>that <00:27:11.941>we <00:27:12.018>have <00:27:12.096>a <00:27:12.174>lot <00:27:12.252>of <00:27:12.330>systems <00:27:12.407>that <00:27:12.485>actually <00:27:12.563>use <00:27:12.641>the <00:27:12.718>I <00:27:12.796>C <00:27:12.874>D <00:27:12.952>to <00:27:13.030>do

403
00:27:15.090 --> 00:27:16.890
<00:27:15.090>some <00:27:15.264>testing <00:27:15.439>when <00:27:15.615>the <00:27:15.790>code <00:27:15.965>has <00:27:16.139>been <00:27:16.314>written. <00:27:16.490>Yeah.

404
00:27:16.910 --> 00:27:21.690
<00:27:16.910>But <00:27:17.050>the <00:27:17.190>uptake <00:27:17.330>of <00:27:17.470>customizing <00:27:17.610>your <00:27:17.750>IDs <00:27:17.890>or <00:27:18.030>customizing <00:27:18.170>your <00:27:18.310>environments

405
00:27:21.750 --> 00:27:25.410
<00:27:21.750>to <00:27:21.857>show <00:27:21.965>you <00:27:22.073>while <00:27:22.180>you're <00:27:22.288>coding <00:27:22.396>that <00:27:22.503>you're <00:27:22.611>doing <00:27:22.719>something <00:27:22.826>wrong <00:27:22.934>is <00:27:23.042>not <00:27:23.150>as

406
00:27:25.410 --> 00:27:27.730
<00:27:25.410>high. <00:27:25.537>What <00:27:25.664>can <00:27:25.791>we <00:27:25.919>do <00:27:26.046>about <00:27:26.173>that? <00:27:26.300>Is <00:27:26.428>it <00:27:26.555>your <00:27:26.682>X <00:27:26.810>problem?

407
00:27:28.350 --> 00:27:30.770
<00:27:28.350>Is <00:27:28.490>it <00:27:28.629>something <00:27:28.770>that <00:27:28.909>people <00:27:29.050>think <00:27:29.189>it's <00:27:29.330>too <00:27:29.469>expensive <00:27:29.610>or <00:27:29.750>Yeah,

408
00:27:31.150 --> 00:27:34.430
<00:27:31.150>No, <00:27:31.266>I <00:27:31.383>think <00:27:31.500>it's, <00:27:31.616>um, <00:27:31.733>it's <00:27:31.850>a, <00:27:31.966>it's <00:27:32.083>a <00:27:32.200>good <00:27:32.316>question. <00:27:32.433>I <00:27:32.550>think,

409
00:27:34.630 --> 00:27:36.590
<00:27:34.630>I <00:27:34.805>think <00:27:34.980>the <00:27:35.155>problems <00:27:35.330>actually <00:27:35.505>start <00:27:35.680>from <00:27:35.855>the <00:27:36.030>end,

410
00:27:36.720 --> 00:27:40.980
<00:27:36.720>which <00:27:36.895>is <00:27:37.070>today <00:27:37.245>when <00:27:37.420>teams <00:27:37.595>are <00:27:37.770>going <00:27:37.945>to <00:27:38.120>release,

411
00:27:41.560 --> 00:27:42.900
<00:27:41.560>um, <00:27:42.163>their <00:27:42.766>projects,

412
00:27:43.310 --> 00:27:48.220
<00:27:43.310>there <00:27:43.465>is <00:27:43.621>no <00:27:43.776>predefined <00:27:43.932>set <00:27:44.087>of <00:27:44.243>rules <00:27:44.398>that <00:27:44.554>have <00:27:44.710>to

413
00:27:48.220 --> 00:27:50.710
<00:27:48.220>be <00:27:48.453>complied <00:27:48.686>to. <00:27:48.920>If <00:27:49.153>you <00:27:49.386>start <00:27:49.620>there,

414
00:27:51.670 --> 00:27:56.660
<00:27:51.670>then <00:27:51.777>it's <00:27:51.885>gonna <00:27:51.993>be <00:27:52.100>very <00:27:52.208>natural <00:27:52.316>that <00:27:52.423>you <00:27:52.531>test <00:27:52.639>that <00:27:52.746>before <00:27:52.854>and <00:27:52.962>the <00:27:53.070>last

415
00:27:56.660 --> 00:28:01.420
<00:27:56.660>moment <00:27:56.767>you <00:27:56.875>can, <00:27:56.983>the <00:27:57.090>last, <00:27:57.198>um, <00:27:57.306>the <00:27:57.413>first <00:27:57.521>part, <00:27:57.629>sorry, <00:27:57.736>you <00:27:57.844>can <00:27:57.952>test <00:27:58.060>it,

416
00:28:01.440 --> 00:28:06.280
<00:28:01.440>is <00:28:01.580>when <00:28:01.720>the <00:28:01.860>pull <00:28:02.000>request <00:28:02.140>happens <00:28:02.280>and <00:28:02.420>developers <00:28:02.560>once <00:28:02.700>it <00:28:02.840>becomes

417
00:28:06.280 --> 00:28:08.880
<00:28:06.280>like, <00:28:06.435>Hey, <00:28:06.591>I'm <00:28:06.746>not <00:28:06.902>merging <00:28:07.057>this <00:28:07.213>because <00:28:07.368>there <00:28:07.524>are <00:28:07.680>issues,

418
00:28:09.890 --> 00:28:13.340
<00:28:09.890>they <00:28:09.997>will <00:28:10.105>want <00:28:10.213>to <00:28:10.320>install <00:28:10.428>something <00:28:10.536>that <00:28:10.643>can <00:28:10.751>test <00:28:10.859>these <00:28:10.966>issues <00:28:11.074>in <00:28:11.182>the <00:28:11.290>id.

419
00:28:13.340 --> 00:28:17.220
<00:28:13.340>So <00:28:13.439>I <00:28:13.540>think <00:28:13.639>if <00:28:13.740>the <00:28:13.840>rules <00:28:13.939>are <00:28:14.040>very <00:28:14.139>clear <00:28:14.240>at <00:28:14.340>the <00:28:14.439>end, <00:28:14.540>little <00:28:14.639>by <00:28:14.740>little,

420
00:28:17.450 --> 00:28:19.740
<00:28:17.450>it's <00:28:17.730>gonna <00:28:18.010>go <00:28:18.290>back <00:28:18.570>to, <00:28:18.850>uh,

421
00:28:20.200 --> 00:28:24.500
<00:28:20.200>go <00:28:20.307>on <00:28:20.415>the <00:28:20.523>left <00:28:20.630>where <00:28:20.738>people <00:28:20.846>are <00:28:20.953>gonna <00:28:21.061>have <00:28:21.169>to <00:28:21.276>preempt <00:28:21.384>problems <00:28:21.492>rather <00:28:21.600>than

422
00:28:24.500 --> 00:28:29.020
<00:28:24.500>solving <00:28:24.627>them <00:28:24.754>after <00:28:24.881>they <00:28:25.009>happen. <00:28:25.136>But <00:28:25.263>it <00:28:25.390>has <00:28:25.518>to <00:28:25.645>be <00:28:25.772>super <00:28:25.900>clear,

423
00:28:29.120 --> 00:28:31.700
<00:28:29.120>the <00:28:29.275>rules <00:28:29.431>to <00:28:29.586>release <00:28:29.742>have <00:28:29.897>to <00:28:30.053>be <00:28:30.208>super <00:28:30.364>clear. <00:28:30.520>Is

424
00:28:31.700 --> 00:28:32.740
<00:28:31.700>There <00:28:32.012>a <00:28:32.324>full <00:28:32.636>circle,

425
00:28:32.930 --> 00:28:36.700
<00:28:32.930>like <00:28:33.012>when <00:28:33.094>you <00:28:33.177>do <00:28:33.259>an <00:28:33.341>analysis <00:28:33.424>and <00:28:33.506>you <00:28:33.588>get <00:28:33.671>the <00:28:33.753>error <00:28:33.835>report <00:28:33.918>at <00:28:34.000>the <00:28:34.082>end <00:28:34.165>of <00:28:34.247>what <00:28:34.330>is

426
00:28:36.700 --> 00:28:39.820
<00:28:36.700>not <00:28:36.855>clean, <00:28:37.011>could <00:28:37.166>you <00:28:37.322>do, <00:28:37.477>could <00:28:37.633>you <00:28:37.788>generate <00:28:37.944>a, <00:28:38.100>uh,

427
00:28:39.980 --> 00:28:41.940
<00:28:39.980>a <00:28:40.330>custom <00:28:40.680>linter <00:28:41.030>from <00:28:41.380>that,

428
00:28:42.780 --> 00:28:43.613
<00:28:42.780>A <00:28:43.529>custom,

429
00:28:43.740 --> 00:28:46.020
<00:28:43.740>A <00:28:43.895>custom <00:28:44.051>rule <00:28:44.206>from <00:28:44.362>that <00:28:44.517>for <00:28:44.673>your <00:28:44.828>I <00:28:44.984>D <00:28:45.140>e,

430
00:28:46.950 --> 00:28:50.290
<00:28:46.950>Uh, <00:28:47.150>to, <00:28:47.350>to <00:28:47.550>solve <00:28:47.750>the <00:28:47.950>problem <00:28:48.150>or <00:28:48.350>Yeah,

431
00:28:50.290 --> 00:28:51.770
<00:28:50.290>To <00:28:50.556>solve <00:28:50.822>the <00:28:51.089>problem, <00:28:51.355>basically? <00:28:51.622>Yeah.

432
00:28:51.770 --> 00:28:53.930
<00:28:51.770>We, <00:28:51.970>we <00:28:52.170>do <00:28:52.370>that. <00:28:52.570>We <00:28:52.770>have <00:28:52.970>code <00:28:53.170>fixes,

433
00:28:54.380 --> 00:28:57.890
<00:28:54.380>which <00:28:54.520>you <00:28:54.660>can <00:28:54.800>use <00:28:54.940>a <00:28:55.080>shortcut <00:28:55.220>to <00:28:55.360>fix <00:28:55.500>the <00:28:55.640>problem. <00:28:55.780>Um,

434
00:28:58.550 --> 00:29:00.890
<00:28:58.550>but <00:28:58.830>it's, <00:28:59.110>it's <00:28:59.389>limited <00:28:59.669>and <00:28:59.950>you,

435
00:29:01.270 --> 00:29:04.330
<00:29:01.270>you <00:29:01.445>will <00:29:01.620>never <00:29:01.795>want <00:29:01.970>to <00:29:02.145>apply <00:29:02.320>this <00:29:02.495>massively. <00:29:02.670>Like,

436
00:29:04.510 --> 00:29:09.490
<00:29:04.510>I'm <00:29:04.637>gonna <00:29:04.764>solve <00:29:04.891>this <00:29:05.019>2000, <00:29:05.146>uh, <00:29:05.273>problems <00:29:05.400>by <00:29:05.528>clicking <00:29:05.655>a <00:29:05.782>button. <00:29:05.910>Uh,

437
00:29:09.490 --> 00:29:10.930
<00:29:09.490>there <00:29:09.706>would <00:29:09.922>be <00:29:10.138>too <00:29:10.354>much <00:29:10.570>impact <00:29:10.786>because

438
00:29:10.990 --> 00:29:15.050
<00:29:10.990>One <00:29:11.077>of <00:29:11.165>the <00:29:11.252>questions <00:29:11.340>is <00:29:11.427>about <00:29:11.515>what <00:29:11.602>about <00:29:11.690>chat <00:29:11.777>G <00:29:11.865>P <00:29:11.952>T <00:29:12.040>generated <00:29:12.127>code? <00:29:12.215>Is <00:29:12.302>it <00:29:12.390>clean?

439
00:29:15.050 --> 00:29:19.770
<00:29:15.050>And <00:29:15.132>the <00:29:15.214>answer <00:29:15.297>is <00:29:15.379>of <00:29:15.461>course, <00:29:15.544>no. <00:29:15.626>But, <00:29:15.708>uh, <00:29:15.791>I <00:29:15.873>mean <00:29:15.955>chat <00:29:16.038>G <00:29:16.120>p <00:29:16.202>T <00:29:16.285>allows <00:29:16.367>for <00:29:16.450>plugins.

440
00:29:19.770 --> 00:29:20.060
Could,

441
00:29:20.060 --> 00:29:23.970
<00:29:20.060>could <00:29:20.167>you <00:29:20.275>use <00:29:20.383>sonar <00:29:20.490>inside <00:29:20.598>a <00:29:20.706>plugin <00:29:20.813>there <00:29:20.921>to <00:29:21.029>ultimately <00:29:21.136>limit <00:29:21.244>it <00:29:21.352>while <00:29:21.460>it's

442
00:29:23.970 --> 00:29:24.810
<00:29:23.970>showing? <00:29:24.348>You <00:29:24.726>could,

443
00:29:25.510 --> 00:29:28.250
<00:29:25.510>You <00:29:25.637>could, <00:29:25.764>but <00:29:25.891>that <00:29:26.019>would <00:29:26.146>have <00:29:26.273>a <00:29:26.400>limited <00:29:26.528>impact. <00:29:26.655>I <00:29:26.782>think <00:29:26.910>chat,

444
00:29:28.370 --> 00:29:32.770
<00:29:28.370>G <00:29:28.486>P <00:29:28.603>T <00:29:28.719>at <00:29:28.836>some <00:29:28.953>stage <00:29:29.070>will <00:29:29.186>generate, <00:29:29.303>uh, <00:29:29.419>snippets <00:29:29.536>which <00:29:29.653>are <00:29:29.770>clean,

445
00:29:33.910 --> 00:29:37.530
<00:29:33.910>but <00:29:34.050>it <00:29:34.190>doesn't <00:29:34.330>mean <00:29:34.470>the, <00:29:34.610>the <00:29:34.750>overall <00:29:34.890>code <00:29:35.030>will <00:29:35.170>be <00:29:35.310>clean.

446
00:29:37.630 --> 00:29:41.880
<00:29:37.630>So <00:29:37.717>I <00:29:37.805>think <00:29:37.892>it <00:29:37.980>can <00:29:38.067>help <00:29:38.155>a <00:29:38.242>little <00:29:38.330>bit <00:29:38.417>in <00:29:38.505>the <00:29:38.592>short <00:29:38.680>term, <00:29:38.767>but <00:29:38.855>not <00:29:38.942>in <00:29:39.030>the,

447
00:29:41.900 --> 00:29:42.733
<00:29:41.900>in <00:29:42.149>the <00:29:42.399>long <00:29:42.649>run.

448
00:29:43.360 --> 00:29:44.840
<00:29:43.360>Excellent. <00:29:43.550>Well <00:29:43.740>that's <00:29:43.930>all <00:29:44.121>we <00:29:44.311>got <00:29:44.501>time <00:29:44.692>for.

449
00:29:45.210 --> 00:29:46.960
<00:29:45.210>Sonar <00:29:45.385>are <00:29:45.560>here <00:29:45.735>in <00:29:45.910>the <00:29:46.085>expo <00:29:46.260>hall <00:29:46.435>as <00:29:46.610>well,

450
00:29:46.960 --> 00:29:49.760
<00:29:46.960>so <00:29:47.067>you <00:29:47.175>can <00:29:47.283>ask <00:29:47.390>more <00:29:47.498>questions <00:29:47.606>if <00:29:47.713>you <00:29:47.821>ask <00:29:47.929>most <00:29:48.036>questions <00:29:48.144>on <00:29:48.252>the <00:29:48.360>app.

451
00:29:49.790 --> 00:29:54.160
<00:29:49.790>He's <00:29:49.883>gonna <00:29:49.976>look <00:29:50.070>at <00:29:50.163>them <00:29:50.256>later <00:29:50.350>and <00:29:50.443>answer <00:29:50.536>all <00:29:50.629>of <00:29:50.723>them <00:29:50.816>perfectly <00:29:50.909>and <00:29:51.003>then <00:29:51.096>we <00:29:51.190>go

452
00:29:54.160 --> 00:29:56.480
<00:29:54.160>from <00:29:54.300>there. <00:29:54.440>Okay. <00:29:54.580>Thank <00:29:54.720>you <00:29:54.860>very <00:29:55.000>much <00:29:55.140>again. <00:29:55.280>Thank <00:29:55.420>you. <00:29:55.560>Peace.

453
00:29:56.480 --> 00:29:57.313
Thanks.

454
00:29:59.180 --> 00:30:02.240
<00:29:59.180>And <00:29:59.280>here <00:29:59.380>we're <00:29:59.480>gonna <00:29:59.580>be <00:29:59.680>back <00:29:59.780>in <00:29:59.880>10 <00:29:59.980>minutes <00:30:00.080>and <00:30:00.180>we're <00:30:00.280>gonna <00:30:00.380>talk <00:30:00.480>about <00:30:00.580>Vodafone.