New features need to pass tests
In 2007 during the creation of naijalingo, Obilo and I had just finished iGbadun.com and it was doing great by Nigerian Internet standards at the time. We had 3000 People registered, a couple hundred people visiting and participating everyday and some of the kinds of topics people brought up on the site was hilarious and engaging.
Building naijalingo the plan was simple, we wanted to build an urban dictionary but for Nigeria, but Obilo and I never just cloned things. We have always believed "Good artists copy and Great artists steal" ~ Pablo Picasso. We needed some way to differentiate ourselves besides the design of the site. With our newfound knowledge from creating a social network we decided to incorporate some of the things that were working well on iGbadun (This was mostly my fault if not all). The anonymous blog we made on iGbadun was one, so we made a forum on naijalingo. People having profiles was another and so we made that too and then over one weekend I built a plugin for firefox where you could search naijalingo instead of google from the search bar. All these features just so we could be different from Urban Dictionary and as imagined they turned out to be disasters. The forum turned out to be filled with cobwebs and crickets. The profile was half baked and useless and lord knows who used the Firefox plugin besides me. The mistake was that we added features that we saw worked somewhere else but did not test if the new product needed it too.
What I never thought of was the hidden costs of creating these features. When there was a significant Firefox update, my plugin would break, I unsuccessfully spent time trying to get people from iGbadun to start discussions on naijalingo. Naijalingo was supposed to be fun, this was supposed to be just a project we made cause we were both fascinated about Nigerian pidgin so it was fun to build, but quickly it became work. Work I did not like and then it was abandoned, because every time I thought of naijalingo I just felt guilty about all the things I was not maintaining.
"The amount of time you spend discussing the potential value of a feature, is inversely proportional to the impact of that feature on your product" ~ someone on twitter... I forget
Put your features to the test
Since then I have always subscribed to testing the need for a feature before you write it. Have you been asked a million times for it? Has someone offered you money to build it? Are people leaving your site because you do not have it? Every feature you spend time building should have a measurable impact on your site.
I particularly like the way Buffer App tested if people would pay for their product. They made sure there was a demand for the product before they put the effort into creating it. I strongly believe every feature/idea should be first met with a NO answer until proven valuable.
So as you would imagine, when I re-wrote naijalingo in Rails in 2014, it was a good avenue to rid myself of these unwanted features.
Every feature is like a new born baby. It is always fun when making it, but if not for the right reasons you will spend the the rest of your life resenting it.
Subscribe to The Art of Coding
Get the latest posts delivered right to your inbox