What is Technical Debt? (as a software developer)

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 ต.ค. 2024
  • Technical Debt can overwhelm software development teams. It can turn a nimble and efficient team into a slow moving train wreck. In this video, learn about Technical Debt is in the context of software engineering. We talk about what technical debt is, how to avoid it creeping into your systems, and how to address existing technical debt.
    Looking to get hands on experience building on AWS with a REAL project? Check out my course - The AWS Learning Accelerator! courses.beabet...
    📚 MY RECOMMENDED READING LIST FOR SOFTWARE DEVELOPERS📚
    Clean Code - amzn.to/37T7xdP
    Clean Architecture - amzn.to/3sCEGCe
    Head First Design Patterns - amzn.to/37WXAMy
    Domain Driver Design - amzn.to/3aWSW2W
    Code Complete - amzn.to/3ksQDrB
    The Pragmatic Programmer - amzn.to/3uH4kaQ
    Algorithms - amzn.to/3syvyP5
    Working Effectively with Legacy Code - amzn.to/3kvMza7
    Refactoring - amzn.to/3r6FQ8U
    🎙 MY RECORDING EQUIPMENT 🎙
    Shure SM58 Microphone - amzn.to/3r5Hrf9
    Behringer UM2 Audio Interface - amzn.to/2MuEllM
    XLR Cable - amzn.to/3uGyZFx
    Acoustic Sound Absorbing Foam Panels - amzn.to/3ktIrY6
    Desk Microphone Mount - amzn.to/3qXMVIO
    Logitech C920s Webcam - amzn.to/303zGu9
    Fujilm XS10 Camera - amzn.to/3uGa30E
    Fujifilm XF 35mm F2 Lens - amzn.to/3rentPe
    Neewer 2 Piece Studio Lights - amzn.to/3uyoa8p
    💻 MY DESKTOP EQUIPMENT 💻
    Dell 34 inch Ultrawide Monitor - amzn.to/2NJwph6
    Autonomous ErgoChair 2 - bit.ly/2YzomEm
    Autonomous SmartDesk 2 Standing Desk - bit.ly/2YzomEm
    MX Master 3 Productivity Mouse - amzn.to/3aYwKVZ
    Das Keyboard Prime 13 MX Brown Mechanical- amzn.to/3uH6VBF
    Veikk A15 Drawing Tablet - amzn.to/3uBRWsN
    🌎 Find me here:
    Twitter - / beabetterdevv
    Instagram - / beabetterdevv
    Patreon - Donations help fund additional content - / beabetterdev
    #TechnicalDebt
    #TechDebt
    #SoftwareEngineer
    #SoftwareDeveloper

ความคิดเห็น • 50

  • @justinoneill2837
    @justinoneill2837 3 ปีที่แล้ว +32

    _"Whenever you do something in a sub-optimal way that produces artifacts that you need to address later"_
    I was looking for a short n sweet definition of this and you nailed it with this 1-liner.

    • @BeABetterDev
      @BeABetterDev  3 ปีที่แล้ว +3

      I'm glad that resonated with you Justin!

    • @sjkdec18
      @sjkdec18 26 วันที่ผ่านมา

      how about "when 'good enough' comes back to bite you in the ass"?

    • @nelmatrix3942
      @nelmatrix3942 14 วันที่ผ่านมา

      Let me refine that definition for you:
      "Technical depth is what you get whenever you do something in a sub-optimal way that produces artifact that you need to address later."

  • @josephhernandez8086
    @josephhernandez8086 ปีที่แล้ว +6

    I have worked in 3 companies in the span of 6 years, every where I go i face this problem. I have to rebuild many features from scratch and deal with it. Thanks for the knowledge bro.

  • @BroadwayRonMexico
    @BroadwayRonMexico ปีที่แล้ว +4

    My go-to example to define technical debt is Bethesda's engine over the years. It's been iterated upon a lot and even been renamed twice, but at its core, the Creation Engine they use now is still built on code used in Morrowind back in 2002 (a game which had a lot of shortcuts taken and was rushed to meet budget and schedule constraints), and everything they add to and change with the engine just breaks more stuff. A lot of Fallout 76's legendary buggyness is the result of Morrowind spaghetti code that had a ton of corners cut in the first place, and too much has been built on

    • @BeABetterDev
      @BeABetterDev  ปีที่แล้ว

      I love this as an example :D

  • @bikrambora
    @bikrambora 4 ปีที่แล้ว +6

    You've been doing some really amazing content! I've been following the live demos/coding playlist, it's brilliant!

    • @BeABetterDev
      @BeABetterDev  4 ปีที่แล้ว +1

      Thank you so much Bikram! Glad you are enjoying the videos :)

  • @octobotdev
    @octobotdev ปีที่แล้ว +1

    Loved the definitions, very clear!

  • @ApplicableProgramming
    @ApplicableProgramming 4 ปีที่แล้ว +5

    Agree, especially with the point of cleaning the code. A LOT of companies, managers but also programmers ignore this part. The moment they see the feature they consider it done and move to the next one, however a cleanup is also part of making some feature.
    I also believe that this has to do with self-respect to a certain level, you have to stand with your chests straight. So if you stand by and defend the quality of your code, respect your work, then the others will respect your work, and you will make a better code, and a better code means less debth. Of course with a reason as you mentioned, sometimes you do what you have to do, but do come back to it, and educate people around you why it is important (usually it is not difficult to show some examples of how it bites back long term)

    • @ambigus7
      @ambigus7 3 ปีที่แล้ว +1

      Absolutly Agree! It is really hard! To educate people to understand all this Key Points on Development Universe!

    • @justinoneill2837
      @justinoneill2837 3 ปีที่แล้ว

      @@ambigus7 yep! and most of the time they don't even want to listen to you

  • @rohitupadhyay4665
    @rohitupadhyay4665 4 ปีที่แล้ว +2

    Would like to see a day in your life video, talking about how do you plan your day and future work pipeline, side projects, work life balance etc.

    • @BeABetterDev
      @BeABetterDev  4 ปีที่แล้ว +2

      Thanks for the idea!

    • @ambigus7
      @ambigus7 3 ปีที่แล้ว

      @@BeABetterDev +1 Will be great!

  • @ambigus7
    @ambigus7 3 ปีที่แล้ว +2

    Excellent work! I just need this video to understand a lot of things! Thanks You are a really great Dev!

    • @BeABetterDev
      @BeABetterDev  3 ปีที่แล้ว

      Thanks Miguel! Glad you enjoyed :)

  • @IgnoreMyChan
    @IgnoreMyChan 4 ปีที่แล้ว +18

    Also known as "The Future-Me Problem".

    • @BeABetterDev
      @BeABetterDev  4 ปีที่แล้ว +3

      100% agree with you. I love this quote lol

  • @canyousayadaora8287
    @canyousayadaora8287 2 ปีที่แล้ว

    Awesome context!. thank you for a clear definition

  • @arunsoundar
    @arunsoundar ปีที่แล้ว

    Few other common examples
    1. Managing NFR's (Security, Performance, Browser Compatibility) etc
    2. Upgrading Tech stack because of lack of support from Legacy/ Deprecrated methods
    3. Addressing Customer issues where there is a challenge everytime in a specific piece of code that needs introspection , which may/may not lead to Tech debt
    4. Keeping pace with current industry - make face changes to specific softwares if needs to be rebuilt
    5. Always keep your Architectural, Plaform components inline with latest versions of software (OWASP A06-2023)
    6. Keep an eye on Upgradation to infra very frequently and look for bottlenecks / improvements

  • @MargaTravino
    @MargaTravino 3 ปีที่แล้ว +1

    very good explanation, thank you so much!

    • @BeABetterDev
      @BeABetterDev  3 ปีที่แล้ว

      Hi Marga, you're very welcome!

  • @DevsLikeUs
    @DevsLikeUs 4 ปีที่แล้ว +2

    Great explanation.

  • @mbehboodian
    @mbehboodian 3 ปีที่แล้ว +4

    Good content, thanks!
    also you fingers are signs of being a experienced programmer :)

    • @BeABetterDev
      @BeABetterDev  3 ปีที่แล้ว +1

      Lol! I've been told they are piano fingers but I suppose there is not much difference between overuse of keyboard or piano ;)

    • @venktesh6600
      @venktesh6600 3 ปีที่แล้ว

      I don't think evolution takes that fast..!! Its from the gene codes not computer codes I guess..

  • @danielwaiguru4359
    @danielwaiguru4359 2 ปีที่แล้ว

    Make a feature work, then refactor, best approach when you have tight deadlines

  • @gregf9160
    @gregf9160 4 ปีที่แล้ว +1

    All excellent points. I've been fighting against this all my pro life.

  • @mohmedishak8853
    @mohmedishak8853 2 ปีที่แล้ว +1

    This is so informative 😭

  • @jacquied2013
    @jacquied2013 2 ปีที่แล้ว

    Great explanation! Thanks

  • @devonlamond
    @devonlamond 4 ปีที่แล้ว

    Life lesson, really, tied into development!

  • @FeverDev64
    @FeverDev64 ปีที่แล้ว

    Technical Debt Victim here. As a game developer, I made all the 20 levels of a game in a SINGLE level which resulted in huge loading times and unusable expereience. To solve this I tried to optimize everything but at the end , I just had to go back to the roots. Load a SINGLE level instead.

  • @aminos-nour
    @aminos-nour ปีที่แล้ว

    thank u bro well explained 👍👍👍👍

  • @ambigus7
    @ambigus7 3 ปีที่แล้ว +1

    Sonarqube returns me 32d (32 days) of Technical Debt of my code. Which is a good number of days to this metric?

  • @andriys5772
    @andriys5772 4 ปีที่แล้ว +2

    Thank you

  • @nandibhebhe859
    @nandibhebhe859 2 ปีที่แล้ว

    Hello, do you work on updating resume to a SM position?

  • @ayomikunsamuel7743
    @ayomikunsamuel7743 ปีที่แล้ว

    Can technical debt actually be elimited, or best is to minimize it as best as possible?

  • @ItsMeMarieClaire
    @ItsMeMarieClaire 24 วันที่ผ่านมา

    4:15 🔥🔥🔥

  • @ramseyabsessien8990
    @ramseyabsessien8990 3 ปีที่แล้ว

    Imagine a nurse practitioner trying to switch career to a scrum master and have to understand this!

  • @venktesh6600
    @venktesh6600 3 ปีที่แล้ว

    Its nothing but a Economical Debt, its the same human behaviour thats causing technical debt. therefore, its better to call it a "Technical Corruption" OR "Technical Dishonesty" OR "Technical Hypocrisy" to give the correct picture to your audience and IT beginners. isn't it?

  • @sleepnabox
    @sleepnabox 2 ปีที่แล้ว +2

    Im in "rebuild the system" mode lol. It's terrible.

    • @BeABetterDev
      @BeABetterDev  2 ปีที่แล้ว

      Keep your head up, you'll get there eventually :)

  • @camgere
    @camgere ปีที่แล้ว

    Pay me now or pay me later. It's later.