Sunday, October 02, 2011

The Native-App economy and its future

Since the launch of iPhone, everyone has been trying to replicate the App Store model that Apple created. Every operator, OEM and even independent companies are trying to create their own app stores and native app platforms.

The app store/native app model is inherently a walled garden model. This is analogous to AOL in the early days of the internet. AOL was the first one to truly bring internet to the 'masses'. Internet was very young at the time, and was difficult to use. AOL, by controlling the ecosystem and adding restrictions so that everything works well within it, was able to drive adoption for the internet.

In 1999, DoCoMo launched iMode in Japan and did what AOL did - but to mobile devices. All of a sudden, people could open emails, look up stock prices, check the weather and even read magazines all from their phone. iMode was extremely popular and put Japan way ahead of the world in mobile use. Following DoCoMo, other Japanese operators also created their own 'private ecosystems' and achieved considerable success.

The common theme between all of them is that they created a very strong value proposition by productizing  new, difficult to use technology.

However, as time went on, these walled gardens became barriers and hampered innovation in the space.
The technology matured and people wanted 'more' out of it. They started to created services that ran independently, and the 'walls' started to crumble.

It also got difficult for publishers to time to build services and innovate on business models that weren't a part of this 'walled garden'. Slowly but surely, things started moving to the 'open internet' and even though the initial experience was not as good as the walled garden, both consumers and publishers embraced it.


I believe that the Native Apps fall under the same category. With the launch of iPhone, smartphones finally became powerful enough to be able to do things that 'common people' would want. However, because the technology was still developing, the only way to create a great experience was to go 'native' and build a proprietary app. Apple was able to use this to their advantage and create the app store.

With HTML5 developing at an amazing speed, more and more people will start to see the clear advantages of building on an open platform. Its a massive waste of effort having to write native apps on different mobile operating systems that run on hardware of pretty much the same capability.

There are already companies that have started to work in this space, allowing users to get the best of both worlds. The technology is still young, but extremely promising, and a couple of years down the line, the notion of 'you must build your app for 5 different platforms' will be a thing of the past, just like AOL. There will still be some native apps, like we have them on desktop/laptop but they will be extremely specialized.

App stores - as a way to discover 'apps' might always stay on but 'native' as a platform should start counting its days. Until then, its the age of the 'native app'.


Photo credit: http://sethmurphy.com/node/8 

Thursday, September 29, 2011

Want to know your users better? Run your own analytics!

(Originally posted on theicebreak blog.)

Theicebreak is all about understanding relationships. It makes sense then that we would want to ensure that we have a strong understanding of who we are in a relationship with - our user base.

To do so, we really focus on tracking every feature and functionality through cohort analysis, as championed by Fred Wilson, Dave McClure,  Eric Ries's lean startup movement and others.

There are now a couple of services that provide easy tools to do so for startups, including everyone's favorites...Mixpanel and KISSMetrics. We tried them all, but immediately hit some crucial limitations of these online platforms:
  1. We have multiple interfaces (web, mobile, api) and we would have to individually integrate with analytics on each one. A way to solve this is to integrate on the server side.
  2. We wanted to combine this data with other attributes, for example, break down a certain feature by male vs female users, or married vs engaged couples.
  3. We needed to be able to run custom queries and reports based on the data in a simple way.
  4. This data is private and very important for the company, and we would like to 'own' it.
  5. It should be inexpensive :)
Most of the analytics services (except the really expensive/complex ones) are typically focused on implementing the tracking in javascript or other front-end APIs. Some of them do support server side logging, but it is limited.

The only way we could meet the above requirements is to build our own system. Once we started to write it, it actually turned out to be quite easier than we originally thought, and also a lot more powerful.

The key requirements (besides solving the problems I described above) were:
  1. It should be quick to build and simple to use.
  2. It should be re-usable, and possible to run lots of complex analyses with ease.
  3. It shouldn't take any more effort to log different action types as the site grows.
We created a very simple 'events' table called event_log (we use mysql). This table basically had 5 fields:
uid
event_type
event_action_id
time_created
description
Any action that a user takes, like answering an icebreaker, changing the password, posting a moment, updating stats, etc. gets an entry in this table. We also store the event_action_id that points to the actual action. This way we can dig deeper if needed. We focus on actual 'actions', not page views.

This is done via a simple api call to log an entry to this table after the user performs an action. This has been extremely powerful for us, and forms the basis of most of our decision making reports.

Because the table is simple but contains all the necessary fields, we can now run complex cohorts as well as simple reports just off of this table. There can be joins and other analyses that can be very easily executed without too much overhead. It also really simplifies the task of getting the same data on different types of actions, as it's all normalized in a clean, single table.

As an example, a basic cohort table can be easily generated by a query similar to:
SELECT
week(u.time_created) AS cohort,
week(g.time_created) AS period,
count(*) FROM event_log g
JOIN user u ON u.uid=g.uid
WHERE
u.time_created > '2011-01-01' AND
g.event_type = 1
GROUP BY cohort, period
ORDER BY cohort, period
A quick post-processing of the results and you can generate some very useful charts out of it; below is an example simulation of how retention would look for a typical website for a few weeks following a launch-spike.


Adding a simple dropdown for the event type, and you can get the same chart broken down by events. You can also very easily add other filters by doing joins with other tables and get real insights on who your users are.

For example, we can run reports like:
  • What's the usage of the icebreaker feature among married males?
  • What's the overall retention broken down by each relationship type (i.e. married, dating, etc)?
  • Do males add more stats or females, and how do these numbers change over time?





This is a good initial approach; it provides a lot more flexibility than other services, and will work effectively until you hit a few million users. Then you will start having 'scaling issues' (a good problem to have).

There are definitely some drawbacks to this approach, like:
  • The events table can grow really large. We only track the 'important' events, and for the unimportant ones, we track it at intervals (for example, we only log one visit per day). You can also vertically split the table to keep the size under control.
  • This is not connected to front-end analytics; doing so might complicate the system.
  • You have to write this from scratch. Even though it was relatively easy for us to write, it's still more effort than adding 3 lines of javascript code.
  • It can get slow... but it's not a user-facing feature, and we can cache the results. We also run this on a replica database, so it doesn't really affect the performance of our live service.

We use these cohort reports in conjunction with regular analytics (getclicky and Google analytics) for traditional page views, visitors, funnels, campaigns, and conversions. This has helped us understand a ton about how the site is being used, and what our users want and are doing.

Wednesday, July 27, 2011

Spotify, MOG, Rdio, Rhapsody for Bollywood Music

I now have at-least 6 different devices that are used to play music, so I think its high time to look seriously at streaming music services.

I tried Spotify, Rdio, MOG and Rhapsody. All of them seem to have good audio quality, and a pretty solid music catalog for western music. 

My requirements are simple:

Must have:
  • Good Bollywood music catalog
  • Share accounts, so that both me and my wife can listen to music at work
  • Android, iPhone, PC support
Nice to have:
  • Offline playback
  • Upload songs already owned by me

SpotifyMOGRdioRhapsody
Bollywood CatalogYesYesLackingLacking
Shared AccountNoYesDidn't CheckDidn't Check
Android, iPhone, PCYesYesDidn't CheckDidn't Check

To test the bollywood catalog, I used following combination of  music:
SpotifyMOGRdioRhapsody
Zindagi Na Milegi Dubara (2011)YesYesNoNo
Delhi Belly (2011)NoNoNoNo
Sangam (1964)YesYesYesYes
Purani jeans (Song)YesYesYesYes
Patiala house (2010)YesYesYesYes
Double Dhamaal (2011)YesYesNoNo

Based on my requirements, MOG is a clear winner. It has (almost) the full bollywood catalog. I also like some of its other features:
  • MOG Radio
  • Public playlists
  • No desktop download required 
  • Available on a wide variety of devices, like Sonos, Roku, etc.
Its UI is a bit strangely designed, but should fine once I get used to it :)

    Go MOGging :)

    Thursday, June 30, 2011

    The 'social graph' lock-in is overvalued

    We keep reading that the biggest asset Facebook has is their social graph, the network of friends and friends of friends that is close to impossible for other companies to replicate.

    Facebook initially grew their network not just because people wanted to be friends with others on an online service, but because it provided a real value that people wanted to capture (according to my friend who was at school when facebook was getting big, that value was to get invited to all the parties, or spy on a girl).

    If a service provides enough value for people, they will go through any amounts of pain to sign up to capture that. Think of dating sites like eharmony and match, they are extremely boring to sign up with forms that run for a mile, but loads of people still sign up.

    I had attended the summit series conference few months ago, and they had their own special social network which you could sign up. The had very long forms, no facebook connect and even no email notifications. However, everybody still signed up and it was a very vibrant service during the conference... it was exclusive and it was useful.

    Google plus, though a bit too early to say, is similar. I just signed up and found enough value because of the easier privacy controls (and also the photo syncing feature).. if this does well, my 'social graph' will take no time in moving to google from facebook.

    At the end of the day, if a service has a real use for people, it will not be that difficult for them
     to get people on board. If the focus on a bottom-up approach on focusing on the value, people will sign up. In today's world where everything spreads so fast, the social graph will take no time to move with users.

    Monday, June 27, 2011

    Bitcoins!

    Have been playing around with bitcoins lately. Even though I seriously doubt the long-term viability of such a currency, I think its pretty amazing to be able to use it right now.

    If you haven't heard about it, Bitcoin is a P2P, completely decentralized currency. Its like a digital version of having cash, with all the benifits (and disadvantages) of cash. Its anonymous and can't really be tracked (just like cash), but can also get stolen if someone gets access to your files.

    People have been using it to buy t-shirts and accesoriesserver space and a physical NY restaurant even accepts payments using bitcoins. Imagine traveling the world without worrying about currency exchange problems and having a single currency that works everywhere.



    To get started, check out bitcoin.org or download the app. on your computer and send me your bitcoin address so I can send you some!. If you are feeling rather generous, my address is 1JcNMmEUYCieADecgUNkjE3vYTanJhD9wu :)

    Dwipal

    Sunday, April 17, 2011

    Where is my digital magazine?


    With the millions of new blog posts, news articles, tweets and updates posted daily, getting to the content we want in real time is easier than ever. The only caveat: we need to know what we want.

    Traditionally, we have relied on the major publishers and distributors to feed us the content in the form of newspapers, magazines, journals, books, etc. The publishers would decide what content would 'sell', and will then 'productize' it so people can get access to it.

    This model worked really well for over a century. However, there was one big inefficiency with this model: The content creator didn't really get much in terms of control or revenue. In fact, for most cases, less than 15% of the revenue of a book goes to the author. The publishers and distributors were able to pull this off because they basically controlled the supply chain.

    Now, with the power of the 'internets', anybody can create a piece of content and make it accessible to users in the same way as a big publisher does. So there are a million new pieces of content created every day, ready to be consumed.Of all the awesomeness of this new model, one thing that is terribly broken is the part where publishers curate the content to make sure that it is of a certain quality before it reaches the users.


    In the publishing industry, there are people dedicated to reviewing thousands of articles, book ideas and other content before something gets published. Because of the limited space available in physical media, they have to be quite picky what gets included and what doesn't.

    I think that there is a massive opportunity right now to do this with online content. I have been relying on my social graph to get interesting content daily, but its still too much content and too little variety. What is needed is for someone to create a special 'magazine' on the internet that is both personalized for my taste, but also contains enough variety so that I can 'stumble' across interesting topics.

    I highly doubt that something like this can be completely crowd sourced. It will have to be a hybrid between a person collecting interesting content along with stuff that is popular. There is a dire need of a 'human touch' here - a curator for online content.

    Unless someone does this right, it is going to be difficult to justify its value. However, the time is ripe for someone to create a 'Facebook of Content'.. a place where everyone goes to get the latest news customized for their taste, but also containing enough variety :).

    Till this happens, back to twitter + facebook + google news + google reader + timesofindia.

    Dwipal


    Photo credit: http://www.flickr.com/photos/vincentgallegos/4562911007/

    Friday, March 04, 2011

    Enforcing honest business practices in a 'Flat World'

    Last year, when my parents were visiting the US, I decided to get Indian TV programming so they can watch it here. As Dish Network bill can go above $100 per month with such programming, I decided to go the Internet route by signing up with a service called WatchIndia.tv.

    WatchIndia streams TV channels directly from India (including the ads, which is nice) over the internet. Its a subscription based service with monthly/yearly subscriptions. I purchased their 1 year service package.

    Within a few weeks of getting the service, their quality started going down. It will constantly buffer or not work at all, and was overall very slow.The worst happened in december, when the set top box stopped working, and I was without indian programming for over a month during holidays.

    Their customer support was polite but not helpful at all, and after a lot of arguing, they fixed my box and told me that I will get 3 months of extension to my service. My service would now expire in June instead of March.


    Yesterday, I suddenly received an email from them saying they have 'renewed' my subscription for the next year and charged my credit card. I immediately called them to cancel it and refund the charge but they refused to do so without major fees. There was no notification that my subscription was going to get renewed, and I had not signed up for auto-renewal in the first place.


    Now, the thing about WatchIndia is, even though they are focused primarily on US consumers, they have no US presence. There is no US office address or contact information (except a toll free customer support number). The only recourse I have is to dispute the charge on credit card, which I can luckily do. Basically, the company used typical sleazy tactics to renew my account and refusing to cancel the subscription.

    This brings a question to the fact that as more of international companies start selling their services in the US, what recourse do the US consumers have so that they follow the law. Most states in the US have strict guidelines on companies that subscribe people for auto-renewal on their credit cards, and you can file a complain at the BBB in case they break the laws. However, international companies might not follow these guidelines, and its very difficult to actually go after them if they break the rules.

    Hopefully, as more of these services start getting traction, the legal system will evolve to keep them from cheating their customers. Until then, we just need to be careful :).


    VIM 7.3 with Persistent Undo

    VIM 7.3 recently got released, and supports persistent undo!


    This post describes a simple way to configure it. You have to compile it / get it from unstable repo, but totally worth it :)

    Enjoy!

    Monday, February 14, 2011

    TheIceBreak Tech Overview


    A few people asked me what we use at TheIceBreak, so here it goes:
    • Linux / Apache / MySQL / Python
    • Pylons Framework (SQLAlchemy ORM, Mako Templating Engine)
    • Lucene for Search
    • JQuery for website
    • Appcelerator Titanium for mobile app.
    • Redis for caching
    • GIT for source control, hosted on github
    • nginx as load balancer
    • Linode VPS for hosting webservers / database
    • Amazon S3 for images
     Besides this, it consists of:
    • 3 main servers: Web, Search, Database
    • 1 dev server, which also contains a database replica (in case the main server crashes)
    • The dev server also hosts a 'stage2', which is as similar in structure to the live site as it can. Everything that is pushed live goes through stage2 to make sure that nothing breaks.
    Using this setup, I have been able to keep the latency of most (dynamic) pages to under 150 ms. 

    Thursday, February 10, 2011

    On Leadership

    I recently watched an excellent episode of Fareed Zakaria GPS on the topic 'What makes a good leader' that was sitting on my DVR since months. He had some of the biggest leaders in business and politics (Lou Gerstner, Tony Blair, Admiral Mike Mullen and others) talk about their take on Leadership.

    I thought I would summarize what were the biggest tasks that a Leader should accomplish:
    1. Set up a clear long-term vision and guidelines for the company.
    2. Make sure that the execution follows this long term vision / guidelines. People are free to do whatever they want as long as it helps the company reach its vision. 
    3. Be a good listener, you will need all the data you can gather to come up with a good vision
    4. True leaders will show their strength during a downturn, its easy for anyone to do well when the company has a strong momentum for growth.
    Even though these points can easily be found in any leadership/101 class, its amazing how many companies and products fail at the basic task of having a clear vision and eventually loose their significance.

    I have had first hand experience with all the above points, and can't agree more with all of them. The last point was particularly interesting that you can identify a true leader only during a downturn. If you hire someone when your company has a lot of momentum and is growing well, you don't need a lot of leadership skills to run it (too much leadership might actually disrupt the growth). True leaders can really be identified clearly during a downturn.

    Finally, a great quote by Eisenhower: "Leadership is the art of getting someone else to do something you want done because he wants to do it".

    Saturday, February 05, 2011

    Crowdsourcing private data

    There have been numerous startups and trends that use crowdsourcing to generate their desired results. Most of them rely on people to publicly share the (public) information, whether they are tweets, status updates, checkins or shared links and then aggregate this information to generate interesting results. This model works great for public content, but completely breaks for anything that is private and personal. There have been a very small number of products that exploit this facet of crowdsourcing properly.

    Basically, the idea is simple: Get private data from users and present it to others in an aggregate, anonymous way so that it benefits them (users).

    The company that has done this quite well recently is Mint.com. They hold tremendous amount of private, transactional data from their users which is not directly shared with anyone. Then, they mine this data to generate interesting stats that give users a new insight on their usage. Utility companies have started to use this to show comparisons to their users, like I recently got a letter from our city that we are using more power than our neighbors.



    We use a similar model in my current startup TheIceBreak, where we provide insights that help users improve their personal relationships.

    With any service of this kind, it is absolutely important to maintain the trust of users. Failing to maintain the privacy or trying to move beyond the comfort zone of what people consider private will work against the utility of the service.

    The results from such a service can be quite fascinating, giving users an insight which they might never have had before. I am curious what other services will emerge in the future that follow a similar model.

    Monday, January 24, 2011

    Top-down vs. Bottom-up product development

    We were recently discussing a new feature for my new startup TheIceBreak that involves building functionality that has never been done before. In order to design it, we relied on a few assumptions that are difficult to validate without actually building the product.

    This reminded me of the fundamental differences between dogfood-style (bottom-up) vs vision driven (top-down) product development, and the companies that follow them: Google vs Apple, and how this approach defines how products are built.

    Google has a strong bottom-up culture and believes in being extensively data driven. All the products that are built at google go through extensive number-crunching and analysis before (except the 20% projects). It is very difficult for someone to justify a brand new product as there might not exist enough existing data to validate it. Also, someone who is a small contributor might not see the 'big picture' and help move the company in that direction.

    Apple (or Facebook), on the other hand, are driven by vision. There is, of course, a lot of data analysis that happens to get to the vision, but they repeatedly build new products which create a brand new market that never existed before. They have changed the company focus multiple times in a major way that it affects more than 50% of their revenue or users. It usually involves the high level teams define a clear product vision for the company, and everyone works towards executing on that path.

    Creating something that is truly groundbreaking is extremely difficult to validate using existing data, so it relies on someone who has a clear foresight on what is going to be useful. It is very difficult to create something using iterative, data driven techniques that will change people's behavior in a major way. It is, however, a great way to do incremental improvements to an existing product and get big results and can work quite well until someone 'changes the game'. Top-down, vision driven strategy can refute the existing mindset to create something truly revolutionary, but it relies on a 'leader' to be able to analyze the data they have and define this clear 'vision'.

    Having a clear overall vision for a company also helps the teams to know what's good and what's bad, and they have a clear path that they can execute on and be highly successful. This vision has to be broad enough to cover global trends, but also sharp enough so it can actually be followed, and it is absolutely the most critical thing for the long term success of a company.

    One can also argue that the difference is similar to a democracy vs dictatorship. On paper, under the ideal conditions, dictatorship based governance can be more efficient. However, its more prone to 'rouge dictators' which leads us to the belief that democracy is better in the long term.

    In the end, getting the right vision is extremely difficult (and a lot of people actually find it boring to try writing one down), but might be the biggest factor in determining long-term success of a company!



    Thursday, January 06, 2011

    Presentation Zen

    Just finished reading the book 'Presentation Zen' by Garr Reynolds.

    Its a really good book if you want to do an actual presentation, when you are the speaker on a podium and everyone else is listening.

    The concepts in this book revolve strongly around keeping the 'deck' as simple as possible with heavy use of images, etc. The author also suggests that instead of adding more details on the presentation, there should be a separate handout.

    This approach makes sense for one-way presentations to a large group of people, and there are some really good points made.

    I find that this approach is not very useful while presentating to a smaller group of people whome you are more involved with, like a product review with the team. Such presentations involve a lot of discussion, and its good to have all the data cleanly presented. There are lots of charts and tables (though, less bullet points), which does not blend well with the style in this book. People also expect to be able to just 'read' the deck and understand the key messages.

    There needs to be a balance between keeping the deck at a high level vs adding details. It needs to have enough details that people can recall the presentation by looking at the deck, but not so much that it overwhelms them.

    Monday, January 03, 2011

    Pivoting + Startups

    Pivot is one of the most overused terms in the startup world in 2010. The general thinking is that Pivoting is a good thing and founders are very proud to say that they have 'pivoted' X number of times for their current startup. I have seen funding pitches which even contain a slide on 'possible pivots', where the founders talk about how its easy for them to change their vision.

    Having 'pivoted' my own startup (Pickv -> TheIceBreak), I feel this is definitely something that is important in a startup's lifecycle. However, it is not all that fun or glamorous, and there are very strong reasons to have a plan that does not involve pivoting as the strategy.

    Pivoting usually involves changing the vision of the company. From what I have seen, there are 2 kinds of 'pivots':
    1. Pivot to a bigger opportunity: You have a generally decent product getting tiny amount of traction, but see a bigger opportunity so you switch over to that.
    2. Pivot to a new product: What you have done is not doing well, or has very little hope of getting traction, so you pivot to a new product that might or might not have anything to do with the original idea.
    In both cases,
    • Pivoting is extremely painful: You have spent a ton of time and energy really optimizing the service for a particular use case. Now you are dumping that use case.
    • Pivoting doesn't really solve the problem: It shifts the problem somewhere else, or results in a different problem. 
    • Too many Pivots = lack of vision: If you have a clear long term vision, there might be changes required in the execution where you take 'diversions' to get to the final goal, but there is not usually a full 180 degree pivot. If there are too many pivots, the long term vision might get lost and the company might flounder and stutter without getting anywhere.
    • Pivoting means something has failed, and its time to try something new. This applies to the first kind of pivot that I described earlier. While its good to accept failure early and move on, there should be enough time and resources spent on each iteration so it can reach its potential.
    In general, I am still a supporter for pivoting, but has to be done thoughtfully. There is absolutely nothing glamorous about doing so and it should generally be the last resort.