DEV Community

Ben Halpern
Ben Halpern

Posted on

What do you do if you're in the middle of a project and you realize it already exists in the world?

I got this question in a DM and I thought it made for a good community discussion (of course anyone is welcome to make a post like this, but I'm happy to take the mantle for reach).

How do you react in the situation? Is it appropriate to keep going, if so what should you be mindful of?

Top comments (79)

Collapse
 
vuild profile image
Vuild

Everything already exists. Do it better (figure out first, not self-hype) or pivot but be firm.

Collapse
 
michaelthiessen profile image
Michael Thiessen

Exactly this. Do it better along one dimension:

  • easier to use
  • more fun
  • more powerful
  • for a specific type of person
  • etc.
Collapse
 
vuild profile image
Vuild • Edited

Yes Michael, πŸ‘ Focus.

They can even merge. Easier to use & more fun can be one thing "better UI".

For example, my comment there is suffering from "reddit syndrome". It's a succinct masterpiece of course, but it is also more popular because it is at the top. The UI is determining content. That is influencing people which is distorting things. It's a sweet sweet comment, but there are better ones in the thread which are lower down the page so getting lower engagement. Later ones too that are better. it's not an easy fix & while devto team was making a polls feature...

Someone came along & built dev.three with the promise of machine learning predictive adaptive personalizing AI comment ranking behavior.

That's basically how it happens. If Goo search slips much more, DDG will really get in. If Chrome doesn't pull itself together, Brave gets in.

"It already exists". Kinda.

Edit, Addendum: If you people make that one my top comment again. @peter 😑

dev.four has comment edit timestamps so you don't end up liking things that people can bait & switch. πŸ€—

Collapse
 
rvictorino profile image
Robin Victorino

Good point!

I usually follow this rules:

  • Do I feel like I can do something better in any of those dimensions regarding to the time I plan to allocate to it?
  • Am I really close to achieving something that can teach me a lot / would clarify something I never understood / anything in that spectrum

If one of those rules is met, then I'd continue working on it, even if I drop it later.

If others (by contributing/publishing) or me (by learning) have earned anything, it was not vain.

Collapse
 
nektro profile image
Meghan (she/her)

A fair amount of the things I've made, I started because it already existed and I wanted to have my take on it. Everyone has a unique perspective, and new approaches to old tasks can revolutionize them forever. Stay strong πŸ’—

Collapse
 
jamonjamon profile image
Jaimie Carter

Good point.

Collapse
 
ben profile image
Ben Halpern

Yes!

Collapse
 
wolfhoundjesse profile image
Jesse M. Holmes

I feel this!

Collapse
 
yucer profile image
yucer

You are thinking like an Artist.

Scientists and Hackers (the original concept) try to solve a problem once and reuse knowledge and solutions.

Also remember that it is not only about you. It is about the community that surounds the projects. They will be divided.

Nevertheles, there are always other reasons related to
Project management. For example if the owner of the other project invest few time, reject many changes, etc..

Collapse
 
ben profile image
Ben Halpern

I'd say my answer is that no project is static and you can think of the existing project as similar in this time and place, but you could eventually go in a different direction with the evolution of your project so it's not so bad to duplicate for now.

In terms of learning, duplication isn't so bad either.

If you really do have a finite amount of functionality you are trying to build for a library or framework and the exact same thing already exists and is being maintained well, it is probably an opportunity to get involved in the project that already exists. And if you find you want to take things in a different direction at any point, you can get back to your own idea.

As an entrepreneur I'm actually quite a proponent of a sort of "first replicate, then expand" path in terms of getting into a new space. Replicate doesn't mean generic clone, but you can replicate an existing business model that works before being more "innovative" once you've achieved parity. I think the concept of "replicate then extend" could bode well for any project.

Collapse
 
mitchjacksontech profile image
Mitch Jackson

Pizza Hut doesn't stop making pizza just because Domino's already does. Be aware of, and focus on, what differentiates you from the competition.

Collapse
 
andrewbrooks profile image
Andrew Brooks πŸ‘¨β€πŸ’»

The existence of a similar application can be a positive indicator that there is a market for your idea.

It's absolutely possibly to have similar products for the same market.

From there identify any pain points that you can use to provide a unique angle for your own product that the existing solution doesn't cover.

If anything build it out just for the learning experience.

But it shouldn't be instantly trashed due to another solution's existence. Just look at the signs and see if you can carve out your own piece of that user market.

Collapse
 
isaacdlyman profile image
Isaac Lyman

If it's a money-making project, this is actually a good thing--competition means there's a market, people are willing to buy what you're making. You'll have to stand out in some way, of course, but it's much better to compete for your share of a lively market than to be building the world's best app nobody wants.

If it's a learning project, it doesn't much matter what already exists. There are thousands of to-do apps out there, but I built one anyway and learned a ton in the process.

If it's an open-source, "giving back" project, there's an argument to be made for abandoning your own project and helping out with the existing one. But there are also several examples of people building their own thing--a module bundler, a framework, a functional toolkit--that ended up having a major influence on the future of existing projects, or even overtook them to become the default solution.

Don't give up just because it's been done before. Unoriginality is one of the foundations of creativity.

Collapse
 
vuild profile image
Vuild

I've often said...

"Unoriginality is one of the foundations of creativity." πŸ‘ˆπŸ”₯ 100%.

Collapse
 
yucer profile image
yucer

Good that you have made the attempt of looking for some rule and special cases.

I am with you in that open source project should not be duplicated too much.

Big companies reuse all they propietary software code as much as possible.

We might forget the past but, the fact that we can use opensource projects today was because of the free software community and the preasure they gave to the market.

They could only achieve that because of they phylosophy of build and reuse.

Big companies don't use to make redundant solutions, they just concentrate resources on a good, competitive one.

If the opensource community has twenty projects to make the same thing, that is beauty and very dynamic, but from the economical perspective... "the resources are divided".

Collapse
 
yucer profile image
yucer • Edited

Also there are other costs for the community like the increase of second level dependencies with redundant functionality.

So another criteria would be.. Is it a top level (appliance) project or is it one framework that would be used by many projects?

I would say more basic dependencies sould try to don't repeat themselves.

For the propietary software and componentware marketplace it is something different. I would say.. You have the right to push the market but if you don't contribute back to the opensource projects used, a lot of complexity might accumulate in your customizations and the manteniance costs will grow up to the stress point.

Collapse
 
flrnd profile image
Florian Rand • Edited

I teach branding in a small design school here where I live. My students ask me a very similar question all the time and I always throw back the question to them:

How many toothpaste brands can you buy at the super market? And national wide? Or worldwide? How many toothpaste brands exist worldwide?

So yes, if you have an idea even if you start first, you are going to have some kind of competition. Those who can't understand this, just pay atention next time in a supermarket shelf and count different brands of the same product. Apps aren't any different. It's about solving a necesity or creating it.

Collapse
 
jdforsythe profile image
Jeremy Forsythe

This is sometimes true, but it really depends on the app. How many successful snapchats exist? How many successful Facebooks? The software world can be (not must be) different.

Myspace is dead, because Facebook did it better. On the other side of the coin even Google failed to dethrone FB with basically unlimited capital on their side. Sometimes your competitor is too big/popular to fail.

Collapse
 
flrnd profile image
Florian Rand • Edited

Also, we can apply this to other industries. What I love about your comment is precisely that you pointed a big problem for starting companies or launching products. You can't pretend to launch the next Facebook without the necessary resources to fight you in, or a very well planned strategy. It's a matter of common sense and reality, and a lot more complex than just developing a product. We all would be millionaire!

Thankyou for bringing this up!

Collapse
 
flrnd profile image
Florian Rand • Edited

Agree! Yes I missed that part in my comment and you are 110% right!

Collapse
 
vuild profile image
Vuild

This.

You can make a todo app nobody has ever heard of that pays rent. You can make two & self compete.

It's not winner takes all.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

You should remind yourself to do better research before your next project. Then consider this found project as though you didn't have your own yet. Avoid the fallacy of sunk costs.

If it does what you need, use it. If it doesn't, keep going. Be wart of Not-Invented-Here syndrome, but don't fall for Invented-Here Syndrome.

Collapse
 
ben profile image
Ben Halpern

That can be a tough road, as parity is usually a moving target

Yeah, it's more to give you an idea of where to start because innovation is kind of even a faster moving target.

Here's a pretty tangible example: I started by implementing a lot of Medium's features when first building DEV, gradually finding my own ways to do things differently and now we have a whole bunch of super awesome unique things but I didn't try to differentiate in any super meaningful way off the bat except a few basic things I thought were sort of table stakes (like syntax highlighting).

I'd repeat this pattern in the future. If you have an entirely novel idea, that's great, but if you want to create a useful tool in a known market, you don't need to do entirely new things. You can pick and choose from some cool existing ideas. As long as you understand why you're considering doing that and not cargo-culting off of existing implementations, borrowing the good stuff is a great path.

Collapse
 
rhymes profile image
rhymes • Edited

I would be wary working on a project knowing there are no competitors. It's either a truly innovative idea (which should probably be patented?) or there's something you haven't researched enough :-)

Good luck and don't quit!

Collapse
 
vuild profile image
Vuild

My paper umbrella is fine. You just don't get tech.

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

Ask: "Is there something about my version that improves on the existing implementation(s)?" (This includes performance, maintainability, documentation, and/or license.)

If the answer is definitely "no," switch to the existing implementation.

Collapse
 
dotnetcoreblog profile image
Jamie

Add blockchain support!

On a more serious note as others have pointed out, just because it already exists doesn't mean that you can't profit from it (depending on your definition of profit). Simply seeing the project through to completion can score you net gains is two areas:

  1. You learnt something
  2. You beat everyone else who gave up because a competitor already exists

I mean how will it look to folks if you give up because you have competitors?

Plus, as was said on a recent episode of the Complete Developer podcast:

You don't have to monetise everything

Collapse
 
avatarkaleb profile image
Kaleb M

I would take want to clarify why I'm working on the project. For example, if I was creating a personal portfolio - I could use a template or use some of my own flair. Since it's my own space, I'd probably go with still working on it!

As far as business ideas, if it's already out there - I would see how well it's received, how good of a product it is, and if what I'm doing could improve it to take market share. If not, and the project isn't for learning only, I'd find a new one :)

Collapse
 
documentednerd profile image
Kevin Mack

Keep going, more than likely you are still doing something in a different way. How many apps exist for tracking to-do lists, but there is always a new way to do it. You're unique take is meaningful, and should be done and deserves to exist.

Collapse
 
documentednerd profile image
Kevin Mack

And one more note, if anything look at how they did it and find one point to improve upon or take a different direction

Collapse
 
theringleman profile image
Sam Ringleman

Keep going. What you make is not going to be the same product. They may serve the same purpose. However, your approach to the problem is going to be different.

Strictly from a self growth and learning perspective, what you will learn through this process has extreme value. Designing the system from seemingly the ground up. Building out your database schema, or even hooking into an existing API are worth it just for learning.

The other benefit, what you build for you, is inevitably going to work for someone else. Just because there is an existing product, does not mean that it cannot be done better. Don't limit your creativity just because someone else has already built something similar.

It's not the destination, it's the journey. - Ralph Waldo Emerson

Some comments may only be visible to logged-in visitors. Sign in to view all comments.