How Github Copilot disrupted my workflow
Tags: productivity, webdev, programming, ai
Published: 2023-04-30 11:27:26

_To **Copilot** or not to **Copilot**?_

My feelings about Github Copilot have evolved as the product has gone through its various stages. I work actively on [NotionApps](https://www.notionapps.com). 

**Background**
I was one of the beta users of GitHub Copilot. The idea of helping developers be more productive by reducing boilerplate and bugs seemed promising. I played around with Copilot once every week during that period but stopped soon after as I could not find how it'd fit into my workflow. 

**After public launch**
I was still hesitant to dive into it because of my earlier reservations. I started hearing more public chatter about it, but I refrained from using it as I wanted to see some common use cases/patterns from the community, waiting for the noise to settle down. 

**A few months later**
I started hearing about Copilot from some developers I look upto on Twitter and in my circles. I thought, what the hell, let's give it a try. I paid for Copilot 2 months ago and started using it. 
At first, it felt nice. Oh, the magic of generative AI! The suggestions seemed simple but helpful. It worked well when used for simple auto-completion, like creating utility functions, simple key-value maps, etc. But as time passed by, I felt it was hindering my workflow. Here are a few problems that made me give up on Github Copilot, 

1. Auto-completion often provides wrong suggestions. It's easier to reject outright wrong suggestions. But it is harder to reject partially wrong suggestions because it still has some useful boilerplate code. That means I would spend some time debugging/changing the copilot code to make it work for me.
2. As I start writing a more complicated workflow, it seems to affect my thought process. The autocomplete disrupts what I'm thinking. I have to clear the suggestion to resume my thinking process. 
3. I use VSCode. Sometimes these suggestions hinder with intellisense. It takes me more time to invoke intellisense's auto-completion than it would otherwise if I had _just_ intellisense working with me. 


**Conclusion & Suggestions**
Although I will pause my Copilot subscription for now, I have great hope for the future. I wanted to add a few suggestions on how to make it work more seamlessly. I believe complaints should come with alternative suggestions/solutions. 

1. For VSCode, a way to make it work better along with intellisense. Maybe show Copilot's suggestions the same way intellisense does it (non-intrusive). Or maybe, how Notion allows people to use the command, _Cmd/Ctrl + /_ to enable Notion AI. 
2. I wish Copilot would gather more context from all parts of the codebase. For example, if I am writing code using a utility function, the copilot should understand what that utility function does and what I'm trying to do. Then, provide suggestions that are meaningful for the caller of the method, the current method, and the related functions that might be useful, creating a logical narrative of what I'm trying to do and using the code already available to help me achieve it. 
3. Maybe Copilot could become an inline ChatGPT for VScode? It talks to me rather than just throwing code and improves based on my suggestions. At times, I use ChatGPT to ask for some suggestions and it feels less disruptive to my workflow.

I do not want to be dependent on Copilot, but I want to look at it as a rubber duck/friend to help me ship faster. I don't know if it's just me or if other people are facing the same problems. What have your experiences been with Copilot so far?