My current pet project is HDD-indexer, an utility that indexes the movie files on a disk and downloads its metadata from the internet. I was quite vocal and passionate about it, because it stemmed from a personal need. I was optimistic, and excited to create it with hopes that I would find it a joy to use something I had created with my own hands (typing code, if). I finished enough work to consider it functional, this was the start of this week. A friend messaged a website - imdbnator.com - that did something eerily similar. It scanned the files and presented metadata from IMDb. All in blazing seconds. With movie posters. It was way better than what I had managed to do. I went into an immediate withdrawal.
This wasn't the first time I was disappointed in finding out that my ideas were not novel, or that I was not the only one working on them. I have been there before, maybe a lot more times than I realize. So this time, I sat thinking about it. Initially, I was just groaning about "not again...". But then I realized that I had fallen into a pitfall.
By being in this subjugated state of despair, I failed to move forward. I stagnated. Hence, the comparison to being inside a pit. I didn't like it in there. I wanted out. But I did not know how. All earlier instances of finding out other works that existed similar and better than mine were towards the end of my tenure. This one happened right in the middle of it. Right when I was the most active, the most passionate, the most vulnerable.
Once I hit the bottom, I can only look up, or at least that's the positive note I kept making to myself. Here I lay, sort of direction-less, deciding how I get out of this self-imposed prison. Which brought me to these 5-steps of getting out of pitfalls from discovering the unoriginality of your work:
1. Identify and understand what is the work that surpasses yours. Do not assume anything. Do not believe without taking a look by yourself first. Most of the time, our fears dictate what we see and feel, not actual facts. So while you may fear that whatever latest development was released yesterday makes your work moot, it may not really be so. Maybe it only does one of the things which is common with your work, maybe it has taken a completely new approach, maybe it looks like it's better but it isn't. It's possible, even more likely than the entire work being redundant by now. Go take a look. See. Decide. Understand.
2. Compare rigorously how your work differs from the other(s). By now you must know both projects - your own, and the other. What are its differences? How and where does it (start to) differ? Are you behind it in terms of development? Or are you on a different path altogether? Is there value in both approaches? Think on all of these, find answers, think on them some more.
3. Find one thing that is an advantage your work has over the other project. This one thing is your anchor - you're going to hold on to it, hook over a rope, and make it your initial climbing point. You've got something that's better, or absent in the other project. Start from that. This gives you two things - confidence to continue, and the direction. If possible, you can work towards adding this feature to the other project, or integrating it into yours. Whatever the case, make sure you ARE different again. Then you have something to do that's interesting again.
4. Discuss your project, your future plans, what you intend to develop. Write it, sketch it. Make sure you have a visual understanding of what's next.
5. Write a short script or document explaining what you intend to do. Write the skeleton, high-level abstractions, whatever. Just etch it out. This way, when you come back later, you have a place to continue without going into the pitfall again.
Once you follow these, you're well on your way to start doing nice things again.