[[Notes]] - Topics: [[Organization]], [[Productivity]] - People: Extra Credits - Source: https://www.youtube.com/watch?v=L5NfbpLmMHI --- ## Summary - [[If you don't have time to do it right, when will you have time to do it over?]] - Technical debt arises from early issues being ignored. Like financial debt, these issues compound exponentially, making them harder to address later. - Create and gather **technical assets** - positively compounding solutions. As many as you can. - Technical debt/assets encompass everything when it comes to making, not just code. - Establish good systems early - Interdependent workflows and best practices. - [[It's not about doing it once a quarter, once a month, or once a week. It's about doing it every day - especially on days you really don't want to.]] - [[You do not rise to the level of your goals. You fall to the level of your systems.]] ## Notes ### Pressure and chaos - Projects nearing end of completion can be derailed. The solutions are very hard, especially with the looming deadline. This causes more pressure, causing more chaos. - "Technical debt has finally come due" ### Compounding problems - Technical debt are early problems that are ignored until later. These early problems **compound exponentially**, making them much harder to address later, **just like financial debt**. - A small problem can grow without any one notice. - A work-around, or a way to control technical debt may be the create or gather **technical assets**. Just like finances (and debt), these assets also compound exponentially, but in a positive way, which may provide some room to help us take care of debt. - "Minimizing technical debt is a huge challenge." ### In the beginning... - "Fix it now or later" is a trade-off every software team has to make. - In the beginning, we have to move quickly. The hacking in of work may cause bugs to slip in as well. - **Technical debt is by no means limited to just writing code**. - Technical debt in design may arise from the lack of organization in files and of files. - Issues that aren't seriously blocking anyone tend to be overlooked. - **Everyone just assumes they'll get fixed at some point** - Or... Nobody really knows how to fix these problems, but everyone needs to keep moving forward. ### Later on... - The cost of redoing work is almost always more expensive later. - "**Many critical systems may rely on buggy, backed in code**". - **Systems relying on bugs to function are the most fragile systems you can have**. These must be address as soon as possible - ideally when things are calm. That way, you can operate with less distractions and chaotic pressure. - Time spent fixing fires, or worse, trying to find things is wasted time. - Some problems revolve around collaborating around work. How one person approaches and organizes code/design may not make sense to other people. Having some form of shared understanding really helps folks. Start on the same page. - Late stage organization is not impossible, but close to impossible given the constraints. You have to figure out if it's worth it. - [[Always consider the morale and relationships of your teams. These are some of the most valuable resources you can have.]] - Addressing spaghetti-like problems may prevent people from working on important features and content. - Sometimes things get so bad, "that it's easier to throw it all away and start over." - "Fixing anything when your game is live ends up being way, way more expensive." ### Sometimes, hacking is okay - Hacking things together is expected for prototypes. The purpose of prototypes isn't to look pretty, but to prove an idea. - **Prototypes are intentional throw-away content**. Never build production content on top of prototype content. ### Early and often - Adopt good habits from the beginning and stick to them. Make sure everyone is aligned on how to do things. Start early and repeat often. - [[You do not rise to the level of your goals. You fall to the level of your systems.]] - [[If you don't have time to do it right, when will you have time to do it over?]] ## Original ![[Technical debt - Improving the production pipeline-1.jpg]] ![[Technical debt - Improving the production pipeline-2.jpg]] ![[Technical debt - Improving the production pipeline-3.jpg]]