IN HOSTILE ENVIRONMENTS @kll #PyConBLKN 2018. WHO? Luka Kladaric - - PowerPoint PPT Presentation
IN HOSTILE ENVIRONMENTS @kll #PyConBLKN 2018. WHO? Luka Kladaric - - PowerPoint PPT Presentation
SHIPPING QUALITY SOFTWARE IN HOSTILE ENVIRONMENTS @kll #PyConBLKN 2018. WHO? Luka Kladaric Chaos Manager @ Sekura Collective recovering web developer of 10+ years architecture, infrastructure & security consultant also a startup founder
WHO?
Luka Kladaric Chaos Manager @ Sekura Collective recovering web developer of 10+ years architecture, infrastructure & security consultant also a startup founder and remote work evangelist
2 — @kll #PyConBLKN 2018.HOSTILE ENVIRONMENTS?
3 — @kll #PyConBLKN 2018.WHAT IS TECH DEBT?
4 — @kll #PyConBLKN 2018.Tech debt is the implied cost of additional rework caused by choosing an easy solution over a longer and better approach.
5 — @kll #PyConBLKN 2018.Tech debt is: an API that returns a list of results without pagination
6 — @kll #PyConBLKN 2018.Tech debt is: fragile code that everything runs through
7 — @kll #PyConBLKN 2018.Tech debt is: entire systems that have become too complex to change or deprecate
8 — @kll #PyConBLKN 2018.Tech debt is: parts of the codebase nobody wants to touch
9 — @kll #PyConBLKN 2018.Tech debt is: broken development tools and processes lack of confidence in the build and deploy process
10 — @kll #PyConBLKN 2018.Tech debt is: everything the team wishes they could change, but can't afford to
11 — @kll #PyConBLKN 2018.WHERE DOES IT COME FROM?
12 — @kll #PyConBLKN 2018.Insufficient up-front definition Tight coupling of components Lack of attention to the foundations Evolution over time
13 — @kll #PyConBLKN 2018.WHAT'S THE HARM?
14 — @kll #PyConBLKN 2018.DEVELOPERS ARE JUST SPOILED...
15 — @kll #PyConBLKN 2018.FALSE.
16 — @kll #PyConBLKN 2018.Unaddressed tech debt breeds more tech debt
17 — @kll #PyConBLKN 2018."We'll get back to that later" "why does X have to be clean, when Y isn't?"
18 — @kll #PyConBLKN 2018.Productivity over time decreases Deadlines slip
19 — @kll #PyConBLKN 2018.CASE STUDY
20 — @kll #PyConBLKN 2018.So I get a call one day.
21 — @kll #PyConBLKN 2018.Within a few days, my alarms start going off
22 — @kll #PyConBLKN 2018.Massive monolithic git repo
23 — @kll #PyConBLKN 2018.No concept of stable
24 — @kll #PyConBLKN 2018.Hand-crafted build server
25 — @kll #PyConBLKN 2018.No local dev environments Everyone works directly on production systems
26 — @kll #PyConBLKN 2018.No db schema migration system or versioning
27 — @kll #PyConBLKN 2018.Over 1/2 of the servers not deployable from scratch
28 — @kll #PyConBLKN 2018.Code review tool is self-hosted abandonware
29 — @kll #PyConBLKN 2018.Outages a daily occurrence
30 — @kll #PyConBLKN 2018.Everyone focused on shipping features
31 — @kll #PyConBLKN 2018.How do you even begin to fix this?
32 — @kll #PyConBLKN 2018.It took over a year and a half.
33 — @kll #PyConBLKN 2018.HOW?
34 — @kll #PyConBLKN 2018.build server rebuilt from scratch
35 — @kll #PyConBLKN 2018.build and deploy jobs defined 100% in code
36 — @kll #PyConBLKN 2018.monolithic git repository split up into 40 smaller repositories
37 — @kll #PyConBLKN 2018.all servers rebuilt and redeployed with Ansible
38 — @kll #PyConBLKN 2018.better code review tool
39 — @kll #PyConBLKN 2018.most dev work doesn't require VPN any more
40 — @kll #PyConBLKN 2018.etc.
41 — @kll #PyConBLKN 2018.JOB WELL DONE!
42 — @kll #PyConBLKN 2018.The moral of this story is: don't wait for permission to do your job right.
43 — @kll #PyConBLKN 2018.- 1. If you see something broken, fix it
- 2. If you don't have time to fix it - write it down
- 3. But do come back to it when you can steal a minute
- 4. Even if it takes months to make progress
The team was well aware of how broken things were. If we pushed for it to be a single massive project, it would've never happened.
45 — @kll #PyConBLKN 2018.EXCEPT...
46 — @kll #PyConBLKN 2018.That's not how things should be.
47 — @kll #PyConBLKN 2018.How do we do better?
48 — @kll #PyConBLKN 2018."Tech debt" work is difficult to sell
49 — @kll #PyConBLKN 2018.It's not like paying off your credit card
50 — @kll #PyConBLKN 2018.It's incredibly difficult to schedule work to address tech debt
51 — @kll #PyConBLKN 2018.If You Don’t Schedule Time for Maintenance, Your Equipment Will Schedule It for You
52 — @kll #PyConBLKN 2018.I recently came across an article that changed the way I think about this
53 — @kll #PyConBLKN 2018.Sprints, marathons and root canals by Gojko Adzic
HTTPS://GOJKO.NET/2018/08/30/SPRINTS-MARATHONS-ROOT-CANALS.HTML
54 — @kll #PyConBLKN 2018.New name: sustainability work
55 — @kll #PyConBLKN 2018.Budget vs planning
56 — @kll #PyConBLKN 2018.Helps with morale
57 — @kll #PyConBLKN 2018.QUESTIONS?
@kll #PyConBLKN 2018.THANK YOU!
Luka Kladaric twitter: @kll luka@sekura.io www.sekura.io
@kll #PyConBLKN 2018.