Kris, Angelica & Johnny react to the recently announced Go team changes, discuss the finding that 80% of developers surveyed by Stack Overflow are unhappy & disagree about the concept of tech debt (but agree that somethingās gotta give).
Kris Brandow: I donāt know if I agree with that first premise you had. I think, a) thereās a little bit of a fallacy in there, of āOh, Iād rather live in this timeline, or this time period.ā This is the only time period we live in, so this is what weāre used to. I think that that makes a mistake of assuming that this technology has been unilaterally good, or even net good, and I donāt know if thatās the case. I think that there have been a lot of very, very bad things that have happened to society as a whole as a result of the technology and software that we have, that were much less severe in the past because we didnāt have the software enabling it. But I also think that - sure, we have all of the software, it has built the modern world, but the question is not āIs the modern world good?ā or āAre we doing good?ā, but āAre we where we should be given the technology and advancements we have?ā And I think the answer to that is unequivocally no.
I think the advancements weāve had in hardware kind of prove out that software has not improved nearly enough over time. And in fact, it has regressed some. Our hardware has gotten tens of billions of times better over the last 60 years.
And I would not say that our software has gotten ā maybe itās gotten a thousand times better over the same time period, but weāre orders of magnitude off there. And I think the reason weāre orders of magnitude off is because we ā I think we look too much, we focus too much on the micro issues, at the end of the day. Like the kind of āHow did we accumulate all of this technical debt?ā, instead of asking āWhy is it that we have technical debt at all? Why is it that we assume that you have to have this thing as part of the process? Why is that a base assumption?ā Why canāt it be that we know how to build things because weāve been building them for a while, and for the most part, for most systems, you build it, and it works, and you move on to the next thing. And of course thereās going to be problems. Itās not to say that itāll be perfect every time, itās not to say there will be no issues, but that the amount of problems is small enough that we donāt constantly feel the need to have to spend months redoing things and reworking things.
[00:51:55.24] I think itās a failing of us as an industry that we get ourselves in this position over and over and over and over again, and I think itās from those same base level things. People pick up technology off the shelf. They donāt actually understand what the core parts of it are. They think that they need to be using it, and they quickly find out that no, we donāt know how to operate this, and now weāve got to go back and learn, but āOops, thereās no time to learn.ā And so we get stuck in this cycle of just being trapped with this software, and trapped with these things that we canāt really pay down over time as much as we want. But thatās not necessarily because we made those choices. Itās because somebody, somewhere made those choices and said āNo, you must do these things. No, we must operate this way.ā
We as an industry say āNo, of course you should be using Kubernetes. Of course you should be using gRPC and GraphQL and OpenAPI, and all of these things. If you donāt want to use these things, youāre just wasting your time.
Youāre just trying to reinvent the wheel. Youāre not really doing it.ā But at the end of the day, how do you actually learn how any of this stuff works if you never actually build it yourself, if you never actually sit down and learn about it or understand it? So I think thatās what weāre really facing.
Once again, I do not believe that the complaint about technical debt is actually about technical debt. I think thatās where weāre probably differing, Johnny, is that it really feels to me like this technical debt thing is a symptom of a much larger cultural problem that needs to be resolved, which aligns with also the dislike of the hustle culture, the dislike of this capitalistic layoffs, and lack of job security.
So it just feels to me like thatās the root of it, and thatās where we have to start addressing the problem. Itās like, how do we make it so that at the end of the day we donāt actually wind up with much, if any, technical debt? I want to believe that we as an industry can get to a point where we can successfully build a software project, and have it run for more than a couple years, and not want to burn the whole thing down and rebuild it. I feel like we should be able to get there. I feel like thatās something we should be able to do.