Paying Down Technical Knowledge Debt

I don’t really need to know these things in order to contribute to various parts of Swift. In fact, to make progress, I have to accept the unknown. I don’t really understand what -Bsymbolic does, but that doesn’t prevent me from fixing bugs.

But at some point, too many unknowns cause me to slow down. Sometimes the Swift Android build stops working due to a seemingly unrelated change to another part of apple/swift. If I’ve taken too much “technical knowledge debt”, I sometimes just try completely random things until the build starts working again. “I don’t know why, but adding this linker flag seems to fix it!”

Technical knowledge debt is like technical debt

If I accrue too much debt, my work slows to a crawl. I have to spend a significant amount of time paying it off.