List

Of Buyers And Renters and keeping a roof over our heads

Of Buyers And Renters and keeping a roof over our heads

by Sebastian Delmont

The talk presented by Sebastian Delmont at Rails Conf 2013 explores the metaphor of technical debt within the context of real estate ownership and financial strategies. Delmont draws parallels between the decisions made in software development and those involved in purchasing, renting, and managing property, utilizing the concept of technical debt to highlight the ramifications of those decisions.

Key Points Discussed:
- Technical Debt as a Metaphor: Introduced by Ward Cunningham, technical debt represents the long-term costs associated with short-term decisions in project development. It reflects the necessary trade-offs developers make when prioritizing immediate needs over future maintainability.
- Types of Technical Debt: Delmont categorizes technical debt into four quadrants: unexpected vs. planned and tactical vs. strategic. This classification helps developers understand when and why certain debts accumulate, such as in response to project pivots or newfound knowledge.
- Pain-Driven Development: The idea of only addressing technical debt when it becomes painfully evident parallels financial scenarios where high-interest loans need immediate attention. Developers should focus on fixing issues that actively disrupt productivity.
- Real Estate Analogies: Delmont uses real estate concepts to explain technical debt. Renting represents short-term development needs, while mortgages symbolize long-term projects that require ongoing commitment. The analogy extends to how one evaluates the feasibility of refinancing technical debt as a way to manage financial stress in development.
- Managing Technical Debt: Practical strategies for handling technical debt include knowing when to invest effort into repairing it, leveraging future improvements, and understanding the market-like dynamics in software development—where decisions reflect ongoing conditions and potential future paths.

Conclusions and Takeaways:
- Having some technical debt is not inherently negative; it can indicate a pragmatic approach to software development, suggesting a balanced trade-off optimally aligning with business needs.
- The key is to manage this debt effectively, ensuring that it does not exceed manageable limits where pain arises, necessitating intervention.
- Developers should thoughtfully navigate the balance between developing robust code and allowing for flexibility in project execution, considering the consequences of their choices in both the short and long term.

Overall, the presentation emphasizes that understanding and strategically managing technical debt can enhance project outcomes and foster better decision-making in software development.

What do home ownership and leveraged buyouts can teach us about how to use technical debt to our advantage? How can we sleep soundly at night when we have accumulated mountains and mountains of technical debt? When is good enough good enough and when are we just deceiving ourselves?

Help us caption & translate this video!

http://amara.org/v/FGae/

Rails Conf 2013

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