In this new age of software development it's easier than ever to execute on an idea in an unfamiliar codebase. Do it.

It doesn't matter if someone has already had the same idea before. The output isn't what's important (though it's certainly nice when the output is merged), but giving yourself permission to explore the idea to the end. Our creativity as software engineers has been tempered by languages, frameworks, and how quickly we can learn them, and now those limitations are lifted.

The truth is you probably don't have all the context necessary to make a truly valuable non-trivial contribution. That shouldn't stop you. Spiking on that idea gives your mind a chance to stretch and better understand a problem space. Exploring an idea in one area may lead to inspiration in another. We've known for decades that spiking an idea is the best way to learn more about the codebase, and that hasn't changed even if AI is writing all of the code.

A recent example is a spike I worked on to improve the memory of the Copilot CLI by adding an associative memory layer. I worked with Copilot to better understand it's current memory implementation -- how it's stored, when it's leveraged and why it is set up the way it is. This led me to discussion posts and academic writing I never would have otherwise considered. The outcome was over 6k lines changed and a much greater appreciate for how difficult agent memory is.

This code will never be merged.

In the moment it was exciting to think that I could be on to something, but the reality is it's too big of a problem and I don't know enough to know what I don't know. But it was still worth doing. I know more than I did a week ago and it doesn't matter that the code will never ship.

It turns out there's a whole team I wasn't aware of thinking about this problem. To them, my branch likely looks naive and stupid, and maybe it is. It doesn't matter.

Don't let your fear of learning there's a whole team already working on a problem deter you from trying.