GitHub recently said it was “re-founding” itself on Copilot instead of git. GitHub has always been about the workflow — there are plenty of other hosted git providers, but GitHub was the first to put together pull requests, issues, and collaboration into a single workflow. Re-founding on Copilot is a way to acknowledge that AI will drastically change the developer workflow.
Some more general lessons on how AI changes workflows, using the developer workflow as an example
The same but faster steps. Copilot is an incumbent business model when used this way. Doing the same things that we’ve always done, but just faster with the help of AI. That means autocompleted code or AI-assisted code reviews. AI-generated commit messages.
Compressing the workflow. AI might help us skip steps in the workflow. Developers have tried to make pre-commit workflows work for decades, but they’ve always failed because they can’t be centralized well (if you automatically change the code before it’s committed, there’s a chance that your automated changes end up with a broken main branch).
What if AI could determine “low-risk” change sets that could be merged without a review?
Why have AI-generated commit messages if they don’t matter in the first place? Commit messages could be generated on-demand (or post-commit)
Automatic merge conflict resolution and automatic linting and style checking.
A new workflow. If so many of the steps don’t make sense anymore, the whole workflow might come into question.
Maybe issue tracking comes before code in future DevOps platforms.
AI will write most code in the future. What’s the implication? Does all the code need to be checked in?
Extends the platform to support more workflows. Especially in enterprise software, almost every company’s workflow is different in a certain way. SaaS products extend themselves into platforms in a variety of ways — letting users customize via a WYSIWYG interface, configuration, or even code. But platform extension comes with its own problems — open up too much and you can’t support your customers on a large scale. Open up too little, and niche platforms chip away at your customer base.
DSLs often fail. But products might find it easier to become platforms in the age of AI. Giving the users the ability to autogenerate DSLs or generic code to extend their platform (even if they are semi-technical, or not technical at all). Imagine every platform could be as extensible as Salesforce — its own programming language and toolchain.
Maybe the Copilot generates placeholders with dynamically generated implementation like https://askmarvin.ai/welcome/what_is_marvin/ and engineers still have the option to write their own implementation if needed, avoiding the pitfalls of DSL?