I have been working with Copilot non-stop since being laid off from Microsoft, and having a lot of fun doing it. In fact: I have a fun idea and I could use your help. I'll leave that until the end.

The Problem

In my last post (newsletter) I talked about what I was working on at Microsoft right before I left, and why it was so exciting:

I was giving workshops to thousands of internal folks (mostly engineers) on how best to increase efficiency with AI which, in my case, meant Copilot. I had workshops lined up for months, and was receiving multiple inquiries every day! It was absolute madness, but worth it as I was helping thousands of folks and also getting some great feedback.
The key was this: focus on them and their work. Just a dash of Copilot, here and there, goes a very, very long way and it really can bring joy to your day.

I am well aware that people are experiencing ridiculous fatigue when it comes to Copilot. In fact, I asked this question at the end of the post:

... what are your top two or three concerns when it comes to working with AI and Code?

I received an avalanche of replies, which I can summarize with:

  • It will take jobs away and devalue our work. Entire teams will be replaced by a few devs with AI tools.
  • Programmers will forget how to program.
  • Code quality will decline or be entirely untrustworthy.
  • It takes too much time to vet the code.

I agree with some of these sentiments, but I also think that Copilot is a tool, like any other, that we will need to learn how to use. Moreover, we will need to show new programmers how to use it properly so the concerns above are minimized.

Either way - these are valid concerns, but what if you sidestepped the code generation part and let Copilot do other things that help you through your day? With a little customization and an open mind, you can add so much to your day with what I like to call Copilot's "Good Parts".

Let's take a look.

Massive Time Savers

Have you ever plodded through a codebase trying to figure out what's going on, or where a particular thing is happening? Copilot can do that for you without touching the code at all! It can also answer general coding questions quickly, write helpful shell scripts, and generate documentation for you based on Git commits.

None of these things actually generate code aside from the shell scripts, but those are utilities that aren't necessarily meant for production.

Here are a few others that I really like:

  • Generate formatted Git commit messages which you customize with custom instructions.
  • Fix CSS problems or, better yet, make something look less atrocious.
  • Generate test data for a database using DDL or a JSON object as context.
  • Create a database for you using nothing but a spec document.
  • Create a database change script using two DDL files.
  • Add open source documents for your project, including CoC, issue templates, LICENSE, SECURITY.md, and a CHANGELOG based on Git commits.

This is just the beginning! You can do so much more by fine-tuning Copilot and telling it exactly what you want to see.

Customizing and Templating

Many people don't quite understand what's possible with custom instructions. Yes, you can give it code styles or "nudges" as to how to do things, but you can also get very specific.

For instance, if you're a C# person, it's likely your company has a very specific way they want classes created. You can tell Copilot this (using .github/copilot-instructions.md in the root of your project):

Every class in the project should follow this convention:

```csharp
/// <summary>
/// Class <c>Thing</c> represents X business concern.
/// </summary>
public class Thing {

  //Sensible factory methods here. Use test logic to decide.
  
  public override ToString(){
    //use a sensible property selection here
  }

  public string ToJson(){
    //serialize this class
  }
}
```

I worked for a senior dev once who would become quite agitated if we didn't override ToString() on our classes. Call it a quirk, I guess.

The point is: Copilot is very good at following templates, which is extremely useful when dealing with boilerplate code!

Go Ahead, Explore!

This is probably my favorite "Good Thing" with Copilot: I get to play around and find out. I love exploring things, whether it's a new language or framework, or maybe an open source application I want to use. Unfortunately, this kind of thing takes time.

For instance: the good people at Tailwind Labs just created Compass, which is a Next.js template for hosting an online course:

I'm a Tailwind UI customer and something like this could be extremely useful for me. The only problem is that 1) I have very little time these days and 2) I don't know Next.js at all (I really should change that).

Without Copilot, exploring this template would be a quick "no-go". With Copilot, however... well see for yourself! In 45 minutes I was able to switch out the Compass video player to use Vimeo (where I host my stuff), and convert my course pages (written in Markdown with frontmatter for the course and lesson data) to the mdx and JS format the Next site needed. I also learned a bit about Next.js and React, which is always fun.

As I mentioned, I recorded all of it with some light editing to make it more watchable. I captured the time, too, so you would believe me:

Here's My Idea

There is so much hype and nonsense surrounding Copilot that I was thinking of putting together a set of videos, articles, and workshop outlines to help people get the most out of Copilot in the real world.

At first, I thought it would be fun to post some videos to my YouTube channel. Then I thought it might be good to create a new channel focused on Copilot alone. And then I thought "hmmm - what if I went all in and created a site that contained everything", including courses (free and paid) and workshops that you could sign your team up to.

Anyway: here's where you can help. It's another question and, like last time, you can reply to this email (if you're reading this as a newsletter) or ping me on social (links below). Would you be interested in watching me build a new business venture focused on Copilot, using Copilot itself?

If so, what topics would interest you most and/or least?

As an entrepreneur, I use AI for quite a few things and it's extremely helpful. The biggest, of course, is prototyping an idea and getting it out there. I also use it to think about marketing ideas, branding, and newsletter ideas. I never let it create the actual content for me - just outlining and providing some structure.

Thanks for reading!
Rob