00:00:16.400
good morning everybody
00:00:21.279
i'm here because i want to discuss about
00:00:23.519
extending the metaphorical framework
00:00:26.000
we all use to discuss the consequences
00:00:27.920
of technical decision making
00:00:30.640
or perhaps it's an experiment in
00:00:32.520
self-justification
00:00:34.000
my name is sebastian and i have a metric
00:00:36.399
facton of technical debt
00:00:38.960
i work for street easy which is a real
00:00:40.800
estate search engine slash portal
00:00:43.520
based in new york city and we started
00:00:45.760
almost eight years ago in 2005 when
00:00:47.760
rails was at
00:00:49.399
0.13.1
00:00:51.920
we now have as of last count 212 models
00:00:55.440
209 controllers
00:00:57.440
almost 28 000 commits and 10 developers
00:01:00.160
working on that code
00:01:01.840
we've slowly grown grew from three
00:01:04.320
developers
00:01:05.199
five years eight years ago to about five
00:01:07.920
four years ago to 10 developers right
00:01:09.760
now
00:01:10.640
and as you can imagine that means we've
00:01:13.439
accumulated a lot
00:01:14.880
of technical debt so raise your hand if
00:01:18.640
you have
00:01:19.920
technical debt in your projects
00:01:24.799
raise your hand if you're ashamed of the
00:01:26.320
technical debt you have in your projects
00:01:30.079
so now changing back to the
00:01:33.680
real estate metaphor which is what i'm
00:01:35.119
trying to do raise your hand if you live
00:01:37.119
with your parents
00:01:40.000
raise your hand if you rent your
00:01:42.000
apartment or
00:01:43.200
home raise your hand if you bought your
00:01:45.200
house
00:01:46.560
those of you who bought your house are
00:01:47.920
you ashamed of the size of your mortgage
00:01:54.240
that's good so the concept of technical
00:01:57.840
debt
00:01:58.320
was basically a metaphor
00:02:01.360
invented by ward cunningham who also
00:02:03.840
happens to be the inventor of the idea
00:02:05.280
of the wiki
00:02:06.840
uh on sunday night there was a
00:02:09.679
speaker's event at new relic where
00:02:13.040
i got there early and i started chatting
00:02:14.480
with some of their developers and they
00:02:15.920
asked me about my talk and i said
00:02:17.280
it's going to be about technical debt
00:02:18.640
and there's this older guy who comes and
00:02:21.120
says oh great i invented the term of the
00:02:22.800
girl dead
00:02:23.440
like yeah i saw your name tag i wasn't
00:02:25.520
sure
00:02:26.959
and he started talking about a lot of
00:02:28.480
things about the metaphor where it came
00:02:30.480
from
00:02:31.280
and he he told me the only thing i could
00:02:33.360
remember he told me
00:02:34.720
precisely the way he said it so i could
00:02:36.400
quote him is he loves to be quoted
00:02:39.360
but he said that the idea of technical
00:02:41.200
debt started as
00:02:43.519
in a discussion about a project for a
00:02:45.680
financial company he came up with the
00:02:47.200
idea of explaining to them
00:02:49.040
how some of the decisions they made they
00:02:50.959
will have to be revisited and they will
00:02:52.480
have to go back
00:02:53.519
and fix some things and the term
00:02:56.720
depth was a very good way to convey that
00:02:59.200
to them it started as a metaphor to
00:03:00.720
communicate with non-technical people
00:03:02.640
but the consequences of how you develop
00:03:04.720
a project
00:03:07.040
also coincidentally later on in that
00:03:08.720
same event i met
00:03:10.480
uh with david heinemeyer-hanson he makes
00:03:12.560
the same question
00:03:13.519
what he's going to talk about and i tell
00:03:15.840
him about
00:03:16.720
what war just told me he said so it was
00:03:19.040
an extraction
00:03:20.400
he came up with an idea to discuss a
00:03:22.159
problem and he turned that into a
00:03:23.360
metaphor and he ran with it
00:03:26.239
and that's kind of what i intend to do
00:03:28.080
today i want to take that metaphor and
00:03:29.760
stretch it and see how far
00:03:31.200
i can do it before it breaks because
00:03:33.920
it's a metaphor that it's also useful
00:03:35.519
to discuss with peers about the
00:03:38.319
decisions we're making and
00:03:39.680
lately it's been used more and more in
00:03:41.840
that regard
00:03:44.159
it's basically the idea that i gladly
00:03:45.920
pay you tuesday for hamburger today
00:03:48.400
it's deferring over time the cost
00:03:51.680
of a decision while getting the benefits
00:03:54.000
today
00:03:56.560
looking over the web and reading about
00:03:58.080
documents the best definition i found is
00:04:00.879
code in which a reasonable engineer in
00:04:02.640
the present wishes was different
00:04:05.120
is somebody who now wants to change it
00:04:08.319
that's technical debt and it has a lot
00:04:11.040
to do with the idea of
00:04:12.480
a tree falling in the forest and someone
00:04:14.319
being there to hear it fall or not
00:04:17.600
technical that needs an engineer wishing
00:04:20.079
it was different
00:04:21.120
if no one wishes is different then
00:04:23.360
there's no technical debt
00:04:24.639
if it works don't fix it technical debt
00:04:28.560
is
00:04:28.880
that paid with time you have to go back
00:04:32.000
and work
00:04:32.720
on things you didn't want to pay up
00:04:34.880
front
00:04:36.320
but the interests are paid with pain
00:04:39.199
there's no doubt
00:04:40.720
if there's no pain if it doesn't bother
00:04:44.320
anyone then it's okay there's no debt
00:04:47.280
you're not paying it's like getting a
00:04:48.400
credit card with zero percent apr
00:04:51.040
it's a great tool to manage your
00:04:52.560
finances as long as it's zero percent
00:04:55.040
apr
00:04:55.520
the moment they start ramping up your
00:04:56.800
interest you should go back and pay it
00:05:00.080
and it's kind of what we tend to call it
00:05:02.400
3dc pain driven development
00:05:05.199
when something hurts by all means go and
00:05:07.520
fix it
00:05:08.320
but if it doesn't let it be
00:05:12.400
if we're going to talk about the
00:05:14.479
different types of technical debt
00:05:16.160
i like to use this quadrant of
00:05:19.600
the unexpected and the planned
00:05:23.039
and the tactical and the strategic when
00:05:26.000
we talk about unexpected it's
00:05:28.639
that that suddenly becomes painful
00:05:30.560
because things have changed
00:05:32.479
your company pivoted you didn't expect
00:05:34.479
that pivot when you made the original
00:05:36.000
decision but now things have changed
00:05:37.759
your context is different
00:05:39.680
you have to go back and change things so
00:05:41.520
that they now adapt to the present
00:05:43.759
you were not expecting that when you've
00:05:45.680
made the original decision
00:05:47.759
you can plan for it you can be proactive
00:05:50.880
and use good design that's easy to
00:05:53.120
change afterwards
00:05:54.400
you can prepare for refactoring early on
00:05:57.919
but until things change you don't know
00:06:00.240
what's going to happen and what's going
00:06:01.360
to be the new
00:06:02.319
change there's also the unexpected
00:06:07.039
i call it strategical that you changed
00:06:09.520
you now know better
00:06:11.120
you've learned new techniques you now
00:06:13.360
look at the code and say that was stupid
00:06:15.600
i should not have written it that way
00:06:17.199
but back then i didn't know it was
00:06:18.800
stupid it was my best
00:06:20.080
effort at the time it's a great thing
00:06:22.240
that we've progressed and we've learned
00:06:24.240
enough to now be able to suffer
00:06:27.440
those consequences you are a better
00:06:29.759
person now
00:06:31.120
go back and fix your this your your bad
00:06:33.600
mistakes from the past
00:06:35.840
then there's the planned technical debt
00:06:38.720
the idea that
00:06:39.680
later is cheaper that we don't have the
00:06:42.800
time right now
00:06:44.400
to do a hundred percent test code
00:06:46.160
coverage because
00:06:47.680
we need to get this code out of the door
00:06:49.680
right now the cost of delaying it in
00:06:51.759
time is too high
00:06:53.039
versus the benefits of getting it better
00:06:56.080
right now it'll be cheaper to do it
00:06:58.400
later
00:06:59.120
later our time will have a lesser cost
00:07:02.160
later we'll have time we don't hopefully
00:07:06.000
shipping it today will permit the
00:07:07.360
company to be alive later when we can
00:07:09.440
fix it
00:07:11.360
and there's the plan strategic later is
00:07:14.240
better not just cheaper but
00:07:16.240
later you know better the idea of
00:07:19.039
deferring a decision as
00:07:20.880
far as you can because you will have
00:07:23.759
more information you will be able to
00:07:25.360
make
00:07:25.759
a better decision later on it's the idea
00:07:28.960
of
00:07:29.840
it's it's betting on yakni you are
00:07:33.280
not going to need it you defer
00:07:37.120
the feature until somebody really needs
00:07:39.599
it
00:07:40.720
and we as developers we are very good at
00:07:43.440
not following that advice
00:07:45.039
we want to build things and we want to
00:07:47.440
build them right we are proud of our
00:07:48.960
work
00:07:49.599
we want it to look pretty we want it to
00:07:51.520
look perfect we want tests to be there
00:07:54.000
we want to do test driven development
00:07:55.840
but the reality of the world is that
00:07:57.360
it's not always
00:07:58.000
possible to do so and having
00:08:01.840
delaying that until later it's
00:08:05.120
it's usually a better decision than
00:08:07.280
getting it right is the idea that
00:08:08.960
good enough is better than perfect
00:08:12.080
and if we go back to the metaphor of
00:08:14.319
real estate
00:08:15.919
the idea of the the unexpected tactical
00:08:19.599
that the things change around you it's
00:08:22.560
that that can have
00:08:23.759
very high cost if if things change
00:08:26.400
suddenly you might find yourself
00:08:28.160
paying 80 interest on a paycheck loan
00:08:31.120
just so you could cover
00:08:32.159
those medical costs that came out of
00:08:33.680
nowhere it's kind of like a loan shark
00:08:36.719
the idea of the strategical technical
00:08:38.640
debt is closer to a credit card
00:08:40.479
you tend to have a more manageable
00:08:43.599
interest rate you can cover the payments
00:08:45.839
as long as you don't accumulate too much
00:08:48.000
you want to keep it under control you
00:08:49.680
want to use it for
00:08:51.279
short changes and you you don't want to
00:08:53.920
use it as your main tool
00:08:55.839
for managing your finances
00:08:59.279
then you have the rental lease you have
00:09:02.000
to live somewhere
00:09:02.880
and that's kind of what happens with
00:09:04.000
developers too we need to ship
00:09:05.920
features we need because otherwise we
00:09:08.560
don't get paid
00:09:09.440
that's what pays our salary pretty code
00:09:11.839
doesn't
00:09:12.560
pay your salary features do
00:09:16.480
the the idea of having a rental lease a
00:09:18.640
short term
00:09:19.920
that you when you sign a lease you're
00:09:22.240
basically committing of
00:09:23.519
paying a couple thousand dollars every
00:09:25.600
month for the next year
00:09:26.959
you are creating that it's that with low
00:09:30.080
interest or no interest but the idea
00:09:32.080
that you will have to come up with that
00:09:33.360
much money every month
00:09:34.640
it's there you will have to keep paying
00:09:37.600
it
00:09:38.080
over time and it's usually a very good
00:09:40.240
decision if you're talking about
00:09:41.760
short-term living you should not pay
00:09:44.000
your rent using your credit card
00:09:45.680
and you should not pay your rent using a
00:09:47.839
pay a
00:09:48.880
payday loan then you have the home
00:09:51.680
mortgage
00:09:52.240
the long-term planning the idea that you
00:09:54.880
can put some money right now
00:09:56.880
get a large house and pay a bit bit
00:10:00.240
by bit every month and also the
00:10:02.480
expectation that five years from now
00:10:05.120
that those mortgage payments are going
00:10:07.120
to be
00:10:08.720
very much less impactful on your
00:10:11.680
finances than they are right now you try
00:10:13.360
to stretch as more
00:10:14.480
as much as you can afford but as time
00:10:16.320
passes by you get a
00:10:17.600
raise you get a better living that's
00:10:19.040
what you're hoping for that's the bet
00:10:20.399
you're making
00:10:22.240
because debt is leverage you're taking
00:10:25.760
the little bit of money you have right
00:10:27.279
now or the little bit of time you have
00:10:28.560
right now
00:10:29.279
you try to make as much as you can from
00:10:31.200
from it
00:10:32.560
by betting on someone that is a
00:10:34.800
trade-off you're trading off
00:10:36.720
something good enough right now versus
00:10:39.760
and later payments versus something
00:10:43.680
that you might not be able to afford
00:10:45.120
right now if you have a million dollars
00:10:47.360
in cash in the bank
00:10:48.480
then buying property with it it's a good
00:10:50.320
idea but not everybody does have a
00:10:52.079
million dollar in the bank
00:10:53.360
and if you have a million dollar in the
00:10:54.399
bank you can probably
00:10:56.399
get a loan for a house with that paying
00:10:58.800
half of
00:10:59.519
the house and getting very low interest
00:11:01.279
payments you still can use
00:11:03.040
debt as a leverage to take as much
00:11:05.680
advantage as possible from the resources
00:11:07.839
you have right now
00:11:09.360
and that is a bet it's a bet that the
00:11:12.160
future is going to be better than the
00:11:13.680
present for paying
00:11:14.959
those costs if it's not so if you
00:11:17.839
believe
00:11:18.959
that it's going to be bad for you in the
00:11:21.360
future don't get in that don't buy a
00:11:23.200
house if you
00:11:24.160
think you're going to lose your job
00:11:25.279
right now because you're going to lose
00:11:27.360
the down payment you put on the house
00:11:28.800
too not just uh
00:11:30.880
that and you're going to lose the house
00:11:33.680
and
00:11:34.640
but it's a bet that things are going to
00:11:35.839
be better that you will be able to pay
00:11:37.839
it off
00:11:38.480
later and it's going to be less painful
00:11:40.000
than paying it off right now
00:11:42.800
and it we reached the point where that i
00:11:46.480
really want to make in this talk is that
00:11:48.640
technical debt is a good sign
00:11:51.040
if you don't have technical debt you're
00:11:52.800
probably overpaying
00:11:54.160
upfront if you don't have technical debt
00:11:57.440
you are building things that are
00:12:00.880
better than necessary or even worse
00:12:04.079
you're building things that you think
00:12:05.680
are better than necessary but the future
00:12:07.279
will prove you wrong
00:12:09.040
you're doing things it's
00:12:12.240
like people being happy when they get a
00:12:15.519
refund at tax time
00:12:17.600
you overpaid you let you lend money to
00:12:20.560
the federal government
00:12:21.680
at a zero percent distance interest rate
00:12:23.760
you could have used that money
00:12:25.519
instead of getting a refund a year later
00:12:27.760
the ideal is
00:12:28.959
to get to have to pay 100 you paid
00:12:32.720
exactly the amount of taxes you owed and
00:12:35.760
you saved
00:12:36.880
for yourself a hundred dollars you could
00:12:38.480
use for other things in the meantime
00:12:41.279
technical debt is a great thing to have
00:12:43.760
as long as it's manageable
00:12:46.079
it also means being able to track how
00:12:48.959
much
00:12:49.360
technical that you have how much that
00:12:53.839
is good it's a good amount of debt to
00:12:56.959
have
00:12:58.000
well it depends on a lot of things
00:13:01.040
it's kind of like when you need to live
00:13:03.360
somewhere should you rent or should you
00:13:05.360
buy
00:13:06.800
and there are plenty of rent versus buy
00:13:09.120
calculators
00:13:10.480
they're all based around the idea of
00:13:12.320
interest rates of investment returns of
00:13:14.800
things like closing costs but one of the
00:13:17.360
most significant factors
00:13:19.519
is length of ownership if you're going
00:13:22.160
to live somewhere
00:13:23.440
for three years you're always better off
00:13:25.519
renting than buying
00:13:27.440
if you're going to live some somewhere
00:13:28.720
for seven years you're almost
00:13:30.639
always going to be better buying than
00:13:32.000
renting that
00:13:34.320
the the length of the loan
00:13:38.079
matters a lot and the things that you
00:13:40.480
never expect like closing costs
00:13:42.480
make that difference more obvious once
00:13:45.040
you write it down
00:13:47.040
so are you a tenant or are you an owner
00:13:49.680
in your project
00:13:51.760
things like what's the project lifetime
00:13:53.839
is your project are you a consultant
00:13:56.160
working on a six-month engagement
00:13:58.320
on for somebody else and also with a
00:14:02.160
team that every six months
00:14:03.760
changes with new developers with with uh
00:14:06.959
where you have to train people because
00:14:10.800
one of the largest sources of pain
00:14:14.240
and thus larger sources of technical
00:14:16.639
debt is
00:14:17.920
new hires when somebody comes into a
00:14:20.399
code base they don't understand
00:14:22.079
it is going to be painful so if you
00:14:24.720
follow best practices if you don't
00:14:26.320
deviate from the norms of rails
00:14:28.560
if you use exactly the the
00:14:31.839
by the book patterns it's going to be
00:14:33.920
easier to explain to new hires
00:14:36.480
how the project works how the code base
00:14:38.320
is established
00:14:40.560
but you're not going to get the benefits
00:14:42.399
of that you get sometimes
00:14:44.000
by breaking those patterns by creating
00:14:46.079
your own
00:14:47.279
variation on a framework that might make
00:14:49.920
sense if you're
00:14:50.959
working on a long-term project at 3dc
00:14:54.560
every time there's a new employee we go
00:14:56.800
through the same routine of finding pain
00:14:58.959
points
00:14:59.519
and i tell the new hires like go ahead
00:15:01.680
and fix it if you think
00:15:03.519
it's worth your time right now fix it
00:15:05.839
because you are the one feeling the pain
00:15:07.519
i don't feel it right now
00:15:08.639
that part i understand it works for me
00:15:10.639
but if you think it's
00:15:12.079
it's broken go ahead and fix it there is
00:15:14.399
pain thus there's debt and
00:15:16.240
it might be worth fixing it it has a lot
00:15:19.519
to do too with debt
00:15:20.720
liquidity how easy is it to pay your
00:15:23.120
debt
00:15:24.079
and it's if you are
00:15:27.120
writing the software that's going to
00:15:28.480
launch a rocket to the moon
00:15:30.399
and you find yourself uh you discover a
00:15:33.680
pain point
00:15:35.120
in the code that you decide you want to
00:15:36.959
fix but the rocket is in the middle of
00:15:38.639
the trip then you can't fix it
00:15:40.800
then you better pay that upfront you
00:15:42.800
can't accumulate that debt
00:15:44.240
but if you're working on a web app that
00:15:46.000
can be deployed five times a day
00:15:48.399
then technical debt is easy to
00:15:49.839
accumulate it's like as soon as you feel
00:15:51.839
a little bit of pain you can go and fix
00:15:53.600
it and ship it
00:15:55.360
as soon as you feel a lot of pain in
00:15:56.959
some areas you can spend some time
00:15:58.639
fixing it and deploying it
00:16:00.800
how easy is it to pay your debt has a
00:16:03.199
lot to do with how much you can
00:16:04.480
accumulate
00:16:06.240
and remember there is a lot of debt that
00:16:08.000
surprise that you were not expecting
00:16:10.160
that that things change so
00:16:14.000
writing good code is creating potential
00:16:16.639
that if
00:16:17.360
the context changes so you should
00:16:19.759
prepare for that too
00:16:21.120
how easy is going to be to pay debt in
00:16:22.880
this section of the code
00:16:24.399
if it suddenly shows up because the
00:16:26.880
context change
00:16:28.160
and that's where good design comes from
00:16:30.560
but
00:16:31.440
again you don't need to over do the good
00:16:33.440
design you just need to prepare you need
00:16:34.959
to make sure you're not closing
00:16:36.880
doors by picking the wrong architecture
00:16:40.399
but you don't need to solve every single
00:16:41.839
problem beforehand either
00:16:44.480
it's also the idea of the debt schedule
00:16:46.000
how long are you going to pay are you
00:16:47.279
getting a
00:16:47.920
15-year mortgage or a 30-year mortgage
00:16:50.480
are you getting a fixed apr
00:16:51.920
or a variable apr how often you need to
00:16:54.639
pay if you need to pay every month
00:16:56.480
then a little bit of interest like with
00:16:58.480
a credit card you can
00:16:59.759
accumulate some debt but not that much
00:17:02.399
you don't want to get half a million
00:17:03.839
dollars in debt on a credit card that
00:17:05.360
charges you 20
00:17:06.400
apr and you have to pay every month the
00:17:09.120
the
00:17:09.600
minimum balance but if you get a 30 on a
00:17:12.640
30-year lease
00:17:13.760
on a 30-year mortgage for a house and
00:17:16.000
whatever you're paying every month is is
00:17:18.480
something you can afford and you're it's
00:17:20.160
fine sometimes
00:17:22.000
technical debt doesn't you don't have to
00:17:25.120
pay it
00:17:25.600
and that's one of the main differences
00:17:28.480
with real estate
00:17:30.799
is that you can go it's more like a
00:17:32.640
credit card a zero percent apr where you
00:17:34.400
manage to get a new card every year and
00:17:36.080
transfer the balance and you can
00:17:37.520
accumulate it it and a lot of people
00:17:39.760
have taken advantage of those offers
00:17:42.640
you can have a lot of zero percent that
00:17:45.120
apr debt
00:17:46.000
you can accumulate a lot of technical
00:17:48.160
debt that's not painful and i bet you
00:17:49.919
that most of you
00:17:51.280
the technical that you have is not
00:17:54.320
charging you interest you're not
00:17:56.320
suffering from it right now
00:17:58.240
you might at some point but you're not
00:18:00.320
yet
00:18:02.240
it's like what do you do when you have a
00:18:05.840
house
00:18:06.240
should you paint a wall redo the kitchen
00:18:08.240
or build a pool well it depends
00:18:10.080
it depends on whether you own or rent it
00:18:12.640
depends on whether you expect to live
00:18:14.000
there for seven years or 15 years or one
00:18:16.960
year
00:18:18.000
it depends on the value you think it
00:18:19.440
will bring to the property building a
00:18:21.200
pool and a rental house it's
00:18:23.520
a stupid idea but building a pool and a
00:18:25.760
house you expect to live for 15 years
00:18:27.760
it'll be great because you'll be able to
00:18:29.760
use the pool enjoy it and it might
00:18:31.440
increase the value of the house
00:18:33.280
go ahead and do it get in that get a
00:18:35.600
loan to do it
00:18:36.640
it might make sense paying it cash if
00:18:38.799
you're renting it's a stupid thing
00:18:41.039
same thing if you're renting you might
00:18:42.400
want to paint a wall a different color
00:18:44.160
you know you will
00:18:44.880
have to paint it back to white before
00:18:46.400
returning the apartment or like they'll
00:18:47.919
keep your security deposit
00:18:49.520
but you can plan for it you can say okay
00:18:51.039
the happiness i get from painting this
00:18:53.039
wall blue
00:18:53.760
is worth the having to paint it back to
00:18:56.160
white later
00:18:57.760
thinking in terms of time frames and
00:19:00.720
cost benefit and the size of the
00:19:02.320
interest payment you will have the pain
00:19:04.320
you'll have to pay later is the the best
00:19:07.200
way to think about
00:19:08.960
whether accumulating that is worth it or
00:19:10.880
not
00:19:12.400
and then we get to the subject of
00:19:13.679
refinancing which is what often happens
00:19:15.760
when you have a
00:19:16.640
large part of your project that becomes
00:19:18.240
more and more painful
00:19:19.760
you go and you spend a month fixing it
00:19:22.720
you don't go and rebuild the entire
00:19:24.480
application you don't don't go into
00:19:27.120
bankruptcy
00:19:27.840
where you basically rewrite everything
00:19:29.440
you give up you say the amount of pain
00:19:31.760
this is generating is way it overcomes
00:19:35.039
overwhelms the value of the entire
00:19:37.360
application it's
00:19:38.480
we're better off rebuilding it from
00:19:40.080
scratch but most of the time you're fine
00:19:42.240
just refinancing
00:19:43.600
just discussing with a bank that will
00:19:45.679
give you some money on their different
00:19:47.840
interest terms so that now you can
00:19:49.919
afford to pay the interest
00:19:52.160
but you've solved the problem you had
00:19:53.600
you lowered your pain levels
00:19:55.520
again most of the time you're better off
00:19:58.080
just lowering the pain level rather than
00:20:00.240
getting rid of it all together because
00:20:02.880
the future will be different because
00:20:04.240
getting it
00:20:04.799
rid of it all together will not make it
00:20:06.559
better because down the road it will
00:20:08.480
still be painful because
00:20:09.679
the context will change accumulating
00:20:11.919
that it's not a bad idea as long as you
00:20:14.159
can manage it and it's
00:20:17.360
not painful enough that forces you to go
00:20:19.440
bankrupt
00:20:20.799
but bankruptcy it's always an option you
00:20:24.240
and and as developers we love to start
00:20:27.280
projects from scratch so we tend to
00:20:28.880
think about bankruptcy as the perfect
00:20:30.720
option
00:20:31.520
especially when we land into a new job
00:20:33.919
and no one else is
00:20:35.200
there to stop us really try hard against
00:20:38.000
it because
00:20:39.280
if you reach if you join a company that
00:20:41.760
has a
00:20:42.400
product that's working there's a reason
00:20:44.480
why it's working it might be
00:20:46.000
ugly code it might be hard to maintain
00:20:48.559
but it's been working for a while
00:20:49.919
otherwise they wouldn't be able to pay
00:20:51.440
your your salary well
00:20:53.600
there might be startup financing
00:20:57.200
laws that distort reality there but you
00:21:00.000
can be
00:21:00.960
you're working on something that has
00:21:03.039
been working for a while that it's not
00:21:04.880
as
00:21:05.120
ugly as you think it is think very very
00:21:08.000
hard
00:21:08.480
before you go bankrupt just like you do
00:21:10.799
in the real world
00:21:11.679
it might be the best way to solve your
00:21:13.360
problems at some point if you
00:21:14.880
if you're in such a bad shape but most
00:21:17.679
of the time you're better off trying to
00:21:19.520
repay try to refinance try to
00:21:21.600
renegotiate your your
00:21:23.200
mortgages because that is a tool
00:21:26.320
use it wisely and remember if you have
00:21:29.679
no debt
00:21:30.400
you're overpaying that is a good saying
00:21:33.200
no
00:21:33.679
that you're doing things right as long
00:21:35.840
as it doesn't become painful enough that
00:21:37.760
you want to go bankrupt
00:21:39.760
so questions good thank you
00:21:43.280
and enjoy the rest of our conference
00:22:19.520
you