Why "Scratching Your Own Itch" is a Bad Idea for Developers
There's a popular idea that if you have a need for something then it's
likely that other people will too. It's often termed "scratching your
own itch".
Developers like to take this idea and assume that if there's something
they need or want and build an app to meet that scenario others will
also buy that app to meet the same need.
I think this view ignores a big issue.
The "others" in this scenario are typically other developers, and developers like writing code to solve their own problems.
The corollary of this is that developers don't look to buy solutions written by other developers to solve their problems.
Yes this is a huge generalisation but I believe it also holds a lot of
truth. Just ask a developer you know how often they buy solutions to
their problems verses writing their own solutions.
The mis-assumption is that other developers will buy
their app as they have the same problem because they are just like them.
The problem is that just like them the other developers will be
creating their own apps to solve the same problem.
Developers building small apps for other developers isn't a great way to find a big market and sell lots of apps.
By all means build such apps just don't get upset if you don't get millions of downloads.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)






Comments
John J. Franey replied on Thu, 2012/12/13 - 9:19am
In many different open source developer's forums, you see 'scratch your own itch'. Mostly it comes from the core developers in response to a request from a user for a new added feature which does NOT yet exist. The user is making a case for the value of the feature hoping that a core developer will pick it up and implement for the user. The core developer, with a long work queue, is unconvinced of the feature's value and is not able to clear the work queue of other immediate priorities. The core developer would respond: 'scratch your own itch' in order to challenge the user to prove the value of the feature by implementing and using it.
In this usage, 'scratch your own itch' is very good for all: users and core developers. It builds community around a software system. It encourages innovation. It keeps developers focused on practical, proven features. It discourages bloat.
I agree with the gist of your article. I don't agree with your meaning of this term, and I don't like the headline.
Philippe Lhoste replied on Wed, 2012/12/19 - 5:26am
I fully agree with John J. Franey, the analysis is misdirected.
First, this often applies to open source, and to minor features. You rarely, if ever, create a full VCS (for example) because you are unsatisfied with the existing ones (unless your name is Linus...).
On the other hand, if you are competent in the domain and language used, you can bring improvements you need (or fix bugs that annoy you) to the softwares you use, as long as its source is open.
I made several improvements to the SciTE editor, which is my preferred one, partly because I like the way it is made, partly because it fulfill all my needs, some of them because I brought the improvements I wanted to have. The motto of the maintainer is: "I will include the improvement if you bring a good fix" — he cannot implement all the suggestions, he doesn't want to do it if he doesn't feel the need, but he is not opposed to new features, unless they clash with the general philosophy of the software. Or he provides guidance to put them more in line with the design.
Note that we can also invoke another common saying: "Eat your own dog food" (not sure where this vaguely gross analogy comes from :-))
It is very similar, but at a higher level: if you make or contribute to a software, use it daily to test it. It is true for my editor, it also applies to programming tools: if you make a VCS, use it to track your code; if you write a compiler, a good test is to rewrite it in the language you design (if possible, I don't this this applies to Dart or PHP); if you make a Web framework, hey, power your site with it! :-D
Michael Paul replied on Wed, 2012/12/19 - 7:21am
I agree with Matt, but in the context of business. If you are a developer wanting to create a new business, just the ideia of "Scratching Your Own Itch" may not be a good ideia.
I made this mistake with a personal project that sounds awesome to me, as a developer, but didn't sound that way for others. If you want to create a business, read more about why this is wrong in http://book.personalmba.com/iron-law-of-the-market/.
Philippe Lhoste replied on Thu, 2012/12/20 - 2:01am
in response to:
Michael Paul
I don't disagree on the business side of things, except that's not what the saying is about, so the base of the article (and the title, as said above) is built on wrong assumptions.
The first sentence:
is just plain wrong, because as we shown above, it is not what the saying is about. It is about solving problems for yourself. If the solution applies to other people as well, all the best!
Wans Wins replied on Thu, 2012/12/20 - 1:24pm
What you said in this article is actually the "Not Invented Here Syndrome" and it's very harmful to TI departments. Actually it's an anti-pattern!
We sure need to give choice for people for sure, but saying that buy libs/component/apps is a bad idea is just plain wrong. We are living in a world that time-to-market is essential to maintain business.
And you shouldn't say "just ask a developer you know" to justify your position, cause software development is huge and have many contexts and communities. I've the opportunity to work with communities that suffer NIH Syndrome all the way, but some others that make PoCs and choose wisely build-or-buy.
Best regards,
Wanderson Santos (@wanswins)