A lot of attention is given to the overall performance and reliability of GitHub. Rightfully so. But I think the more interesting thing to question is the paradigm that we use with GitHub. It's the wrong shape for how we build software today, and we need better tools, workflows, and infrastructure primitives that meet the new demand.
Software engineering has changed
I realize this statement is a lot like saying "water is wet."
We live in a fundamentally different world for developing software today. Are there familiar things? Definitely. Are there things from the past that we can use in this new world? Absolutely. Code is still code after all. As a mentor used to preach to me, it's bytes in and bytes out.
The bottlenecks we underinvested in are still around, from source control to CI/CD to code review and even deployments. Only now they are killing the newfound velocity we have.
The pain of these bottlenecks is compounding because everyone can now contribute code. Code has expanded outside of an engineering team and into other teams like sales, support, and marketing. Meaning, a 10-minute build is felt by literally everyone in a company, not just a small subset.
This has profound implications, as it calls into question the assumptions and things we have accepted as normal. It raises questions that I think are still unanswered:
Who owns the code? Or, put another way, who is responsible for the code that gets deployed?
How do we trust the code?
How do we review all of this new code being generated?
... continue reading