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 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 44 — @kll #PyConBLKN 2018.
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.
Recommend
More recommend