Dunzo and Urbanclap

I realise that Dunzo and Urbanclap (and many other apps) grew in a particular way. Initially they weren’t sure of the exact problem that they were solving, and instead focussed on a particular “problem class”.

And then over time, based on pattern recognition and segmentation/cluster analysis of the kind of problems that people were using these apps to solve, they started providing more targeted solutions that made better business sense.

Dunzo started off as a “we’ll do anything for you” app. People making fun of the company would talk about a Dunzo executive who would come home, collect your bean bag, get the beans refilled and bring it back to you, and only charge for the beans.

I’m pretty sure that there were many other such weird use cases in which people sort of abused Dunzo in its early days. However, most of the users of the app, I’m guessing, used it for sending packages across town, and to fetch stuff for them from shops and restaurants. And now, four years down the line, Dunzo highlights these specific streamlined use cases in the app, and has figured out a good way of charging for each of them.

It’s similar with Urbanclap. While I didn’t use them in the early days, I used their competitor HouseJoy. I used the app to request for “a plumber”. A plumber duly arrived and did all sorts of odd jobs in our apartment building, some of which were dangerous. And then at the end we paid him in cash, and he told us that “if someone from the app calls, tell them you paid me only 200 rupees” (we had paid him 2000).

Soon, after being a marketplace for all sorts of odd jobs, Urbanclap and its ilk noticed patterns and started specific services. So last week we got someone from Urbanclap to “repair our water heater” (this had a fixed fee on the app). It is another set of such specific services that UrbanClap offers.

I may not have said much new in this post, but it’s basically a crystallisation of some of my thoughts of late – sometimes it’s okay to not have a particularly precise business plan as long as you know what problem class you’re tackling. If you manage to get funded and are willing to burn money, you can learn the best set of problems from the market (within your identified class).

It’s an expensive process for sure, since until you figure this out you’ll be spending a lot of time and money doing random shit, but if you and your investors are willing to bear this kind of expense, it might be worth it.

The worst thing that can happen to you, though, is that after you’ve burnt your company’s money in learning about the market’s precise problem statement, another well-capitalised firm moves faster than you to address this specific market. The question is how well you can put to use your learnings from the early period for later on.

RSVP

I’m reminded of this anecdote from class 11. A girl in my class had invited me to her birthday party. Knowing that there was a clash, I had immediately responded to her saying that I was sorry but I wouldn’t be able to make it. She immediately got offended – that I had told her directly that I wouldn’t come. She would possibly have been less offended had I told her I would come and then not showed up.

A lot of people in India don’t get the concept of how to reply to invitations. Like my old friend, these people think it’s a sort of insult to tell someone that they can’t make it for an event or a function. And so they end up giving false responses or non-responses which doesn’t leave the host any wiser. That leads to massively messed up planning, and possible wastage of food and gifts.

I must say I’ve been guilty of this in the past as well – maybe affected by that 11th standard incident, I have started giving non-committal responses to events that I know I won’t go to. And messed up my hosts’ planning. Having been on the other side multiple times in the last one month, however, I hereby undertake that I will give accurate responses to any invite I get, as far as things are under my control.

Over the last ten days, the wife had kept a massive doll display at home on the occasion of Dasara. We had made an elaborate plan of calling people from different “sides” on different days – in the interest of not mixing groups, which can have a massive negative effect on conversation.

And then some people threatened to destroy these carefully made plans by asking if they could come at a time when they were not invited! Some people were nice enough to tell us that the time when we had invited them was not convenient for them, and requested us right there to give them an alternate slot which we did. Others, however, responded in the affirmative, failed to show up and then wanted to come on a day when we weren’t prepared to receive guests (or worse, on days when were expected other guests from other “sides”).

The other side is also a bit painful here – when people give you an open invitation and tell you to “come any time”. While this gives you greater optionality than a specific slot, this also creates greater pressure on you to accept the invitation. And I’m guilty of responding vaguely to some of these invitations as well. Next time someone gives me an open invite, I will either say no, or try to tell them as soon as possible a specific date and time when I’ll be there.

PS: Of late I’ve started becoming actively (but subconsciously) rude to people who show up at my door unannounced. It throws me off massively. Sometimes my wife wonders why I bothered coming back from England at all!

 

Menu Design

Yet another family function yesterday, and we skipped lunch entirely. While it was at a temple and it was well known that lunch would be served rather late (two red flags already), it was more of scheduling issues that we decided to go there for breakfast instead.

Breakfast was pretty good (the wife was pleasantly surprised – she has completely given up on function meals), though I started feeling hungry earlier than I would have wanted to.

In any case, coming back to my original rant on quality of function meals going down, I have a new hypothesis related to an old one. Basically, it’s the increasing bargaining power of the caterers.

Until just about ten years ago, my family eschewed “caterers” and instead employed cooks whose job was to cook with the ingredients provided. The cook, upon being given a menu, would give a list of ingredients and we would procure them. Based on the list, they would bring the appropriate number of cooks, who would be paid on a person hour basis.

It was in the 1990s, I think, along with liberalisation (when you could easily buy groceries in the open market), that cooks moved up the value chain to become caterers. They spared the hosts of the problem of procuring raw materials, and started providing meals, and charging on a per-plate basis. It was just that our family was late to adopt to this practice.

Soon, caterers started providing all-in-one service. The guy who catered for our wedding, for example, also provided the photography services, pooja materials, decoration of the wedding hall and all other sundries. In fact, he would have also been willing to provide for the priests, had we so demanded. “I have set up my business such that the parties getting married don’t need to do anything. They can just turn up and get married”, he had once told us.

And as caterers moved further up the value chain, they became superstars. Moreover, their operations became more process driven which meant that there needed to be standardisation. And standardisation meant less customisation, and they started pushing back.

You would say, “one sweet is enough”, and they would push back with “no, you need two. Our experience suggests that’s the best”. You might ask for some “exotic” item, but they would provide a valid-sounding reason as to why that was not possible.

And so it would go – nowadays if you engage any of these superstar caterers, you have very little control over the menu. You get your choice of sweets and stuff, but in terms of the overall menu, the caterer makes most of the decisions. So even if you are particularly inclined to provide nutritious food to your guests, there is a good chance your caterer will overrule.

Now I make a leap of faith – by hypothesising that this standardisation of the menu is responsible for the declining quality of food and menu choice in most functions and weddings. In other words, now that we are at the Nash equilibrium of caterer control and a certain menu that isn’t nutritious, there isn’t much we can do to improve the quality of food served at functions.

I guess I’ll just stick to eating at home before going to functions, especially when it’s going to be food served on a banana leaf.

Festive lunches

There was a point in time (maybe early childhood) when I used to look forward to going to weddings just for the food. Maybe my parents’ network was such that most weddings we went to served good food, or I was too young to be discerning, but I would love the food at most functions and absolutely belt it.

Of late things haven’t been so kind. Maybe the general standard of wedding lunches has fallen (the last “function” where I remember the food being spectacularly good was my sister-in-law’s wedding, and that was in early 2017), or I’ve become more discerning in terms of the kind of food I like, but it’s not the case any more.

Recently I had written about how several functions serve lunch and dinner really late, and that we should make it a habit to eat at home before we go for such functions. The other problem is that even when food is served promptly, it frequently leaves me rather underwhelmed.

It doesn’t have to always do the quality of cooking, though. For example, most of the food at the wedding I attended today was cooked really well, and was tasty, but it was perhaps the choice of menu that has left me rather underwhelmed and hungry even after eating a lunch with 3 different sweets!

The problem with Indian wedding food is that they are massive carb fests. The main dish, if one were to call it, is rice (people like my daughter don’t mind at all – she belted a whole load of plain rice today). And then there are accompaniments, most of which seem watered down (and really, what is it about functions just not serving huLi (sambar) nowadays? At least that’s usually reasonably think and has lentils in it). ¬†And then there are sweets.

There are some fried items but they are served in such small quantities that you can’t really get “fat nutrition” from it. There is a token amount of ghee served at the beginning of the meal, but that’s about it! There’s not much protein and vegetables in the meal either.

So you “belt” the meal and fill yourself, only to find yourself hungry an hour later. And this has happened on the last four or five occasions when I’ve eaten “function food”.

Maybe it has to do with my regular diet which has of late become more “high density“, that I find these low density meals rather underwhelming. Maybe all the wedding meals I enjoyed came at a time when my regular diet was low density as well. Maybe people were more liberal with ghee and vegetables back then (this is unlikely since people in India are, on average, far more prosperous now than they were in my childhood).

Oh, and did I mention that my daughter belted copious amounts of plain rice at today’s lunch? An hour later she too was complaining of hunger. I guess I’ll let her figure out about density of food her own way!

Foxes and Cranes

One of my favourite childhood stories is the one about the fox and the crane, which is basically about home ground advantage.

First, the fox invites the crane for lunch and serves him paayasa in a large plate. The large plate is easy for the fox to lick off the paayasa, but the crane is unable to eat it at all. To take revenge, the crane invites the fox back for lunch, and proceeds to serve him paayasa in a tall jug.

I’ve seen this play out in several situations in recent times, especially when it comes to planning kids’ activities.

Our daughter doesn’t nap in the afternoons – instead she goes to bed early (7 pm). Based on this single data point, when we were planning her birthday party last week, we thought 330 to 6 was a “reasonable time” for the party. “It would get over by her bed time”, we had reasoned.

As it turned out, two little guests came late as they had napped off in the afternoon, and another promptly crashed on his way to the party. On our side, the party finished at 630, and the daughter was nicely tucked into bed by 730. I don’t know if I should consider it a “success”.

It was a similar case at the Dasara doll party we hosted for her school friends yesterday. We had sent out the invites to that well before the birthday, and had again given out a 330 to 6 window during which they could come and see our doll display. Two children had napped off and ended up coming at 545!

We’ve been “foxed” on some occasions as well, being invited for parties and occasions that take place late in the evening which is simply inconvenient for us because our daughter sleeps off early.

On a more general note, I wonder what a good time is for a party where the hosts aren’t expected to serve meals. Morning parties inevitably creep up into lunch time. The reason we’ve hit upon our 330 to 6 window is that it is clearly “tea time” and nobody will expect to have a “big meal” at that time. Clearly, it seems like a lot of kids nap in that time, especially on weekends.

5 to 7 might be a more accommodating window, especially to accommodate the afternoon nappers but the problem is it ends at a time that is too late for tea and too early (for most people, if not for us) for dinner! And if you serve meals at non-standard times that can end up screwing up with the guests’ “systems”, and they may not look upon the event nicely in hindsight.

Speaking of events that have messed with my “system” in hindsight, what is it about functions that don’t serve lunch until 2 pm or dinner until 9 pm? We’ve come across so many of these in the last few months (and in one case, the 9 pm dinner consisted of rice and spiced hot water that went by the name of rasam), that we’re seriously considering a policy decision to eat before we go out for large, especially religious, events.

PS: In terms of timing, in large events it might be the guests who are “foxed” since they end up arriving at the “edge” of the event. For small events the hosts get “foxed”. Twice in two weeks this year we invited people home for dinner at 7 pm. And both times they turned up at 9. And that messed with our systems so much that we haven’t called too many people for dinner after that!

 

Priorities are a zero sum game

This came out of a WhatsApp group flame war, but it’s true – priorities are a zero sum game. Whenever you prioritise something, it comes at the cost of something that you have deprioritised.

If you say that “A is a priority in addition to B”, you are being dishonest, for in your book you can either prioritise A, or you can prioritise B. If you want to increase the priority of B, it necessarily comes at the cost of A.

It doesn’t matter what you are talking about here. It could be national economic policy. It could be your company’s vision statement. It could be about how you choose to spend your time. It could be how a computer operating system works. Priorities are necessarily an ordered list, and there is always something that is of the highest priority.

This, however, doesn’t mean that priorities cannot change. A good system is one in which priorities are dynamic, and change according to the needs of the situation. A good example of changing priorities is the “shortest remaining time job first” paradigm that operating systems use.

Wimpy

This was posted by the dean of Alumni Affairs on LinkedIn.

The comments so far have been boilerplate – some just listing out some nicknames, and others saying a lot of them are not for public consumption.

In any case, for me, my nickname is a source of identity. I think there are a few criteria that it satisfies that make it so.

  • My “real name”, as I write it in most places (“Karthik S”), is incredibly common. So identifying myself as “Karthik” or “Karthik S” or “S Karthik” is hard. Not that many people (especially those I mostly interacted with more than 10 years back) easily identify me by my “full name”
  • My nickname is not obscene (I’ve found that names such as “cock”, “dildo”, “condom”, which are rather common in places like IITM don’t stick after graduation)
  • My nickname is rather unique. I don’t know anyone else (at all – either at IITM or otherwise) named Wimpy (apart from the Popeye character). So among people who know that Wimpy is one of my names, identifying myself thus means they can instantly recognise me

Guests at a party over the weekend included a couple of guys from IITM. My wife primarily know them by their nicknames (since that’s how I’ve always referred to them), and proceeded to introduce them as such to her friends (it helps again that both of them have rather unique nicknames, and common first names) using their nicknames.

So “seniors” at elite institutions – when you go through the rituals of giving “freshies” their names – keep in mind that if you make your choice well, the names you endow will continue to be used for decades. So eschew the lunds and the condoms and the dildos, and get creative. And a nice back story for the name helps as well!

Java and IIT Madras

At the end of my B.Tech. in Computer Science and Engineering from IIT Madras, I was very clear about one thing – I didn’t want to be an engineer. I didn’t want to pursue a career in Computer Science, either. This was after entering IIT with a reputation of being a “stud programmer”, and being cocky and telling people that my hobby was “programming”.

I must have written about this enough times on this blog that I can’t be bothered about finding links, but my Computer Science degree at IIT Madras made me hate programming. I didn’t mind (some of) the maths, but it was the actual coding bit that I actively came to hate. And when an internship told me that research wasn’t something I was going to be good at, fleeing the field was an obvious decision and I quickly went to business school.

Thinking back about it, I think my problem is that I give up when faced with steep learning curves. I like systems that are easy and intuitive to use, and have a great user experience. The “geeky” products that are difficult to use and geeks take pride in, I have no patience for. I remember learning to code macros in Microsoft Excel in my first post B-school job in 2006 being the time when I started falling in love with Computer Science once again.

The big problem with CSE in IIT Madras was that they made you code. A lot. Which you might think is totally normal for a program in computer science. Except that all the professors there were perhaps like me, and wanted systems that were easy to use, which means that just about anything we needed to build, we needed to build a user interface for. And in 2002, that meant coding in Java, and producing those ugly applets which were interactive but anything but easy to use.

The amount of Java coding I did in those four years is not funny. And Java is a difficult language to code – it’s incredibly verbose and complicated (especially compared to something like Python, for example), and impossible to code without a book or a dictionary of APIs handy. And because it’s so verbose, it’s buggy. And you find it difficult to make things work. And even when you make it work, the UI that it produces is incredibly ugly.

So it amused me to come across this piece of news that my old department has “developed a new framework that could make the programs written in JAVA language more efficient“. I don’t know who uses Java any more (I thought the language of choice among computer scientists nowadays is Python. While it’s infinitely easier than Java, it again produces really ugly graphics), but it’s interesting that people in my old department are still at it. And even going about making things more efficient!

Also, you might find the article itself (this is on the IIT alumni website) amusing. Go ahead and give it a read.

To solve this problem, V Krishna and Manas Thakur tweaked the two compilation procedures. In the first compilation step, more elaborate and time-consuming analysis is performed and wherever the conversion stalls due to unavailability of the library from the computer, a partial result is created. Now, during the second stage of compilation, the just in-time compilers, with available libraries from the computer, work to resolve the partial values to generate final values and finally a more precise result. As the time taken during the first exhaustive compilation does not get included in execution time, the whole procedure still remains time-saving, while leading to highly efficient codes

Gap in giveaways and disposal

There is a gap in the market between second hand sales and garbage disposal, and I’m not sure what’s a good way to address it.

These are things that you own that might be useful for someone, but you don’t know who it might be useful for. If one such person is located, you are willing to give the stuff away for free, but you don’t want to make any effort or spend anything to dispose it.

The part of London I used to live in had evolved a simple way of achieving this – people would simply leave stuff out in their front yards very close to the footpath (the compounds didn’t have gates). People walking past were free to pick up whatever they wanted, and after things had been left out for a sufficient period of time, the council would be called and they would pick it up as “garbage”.

Unfortunately when I moved out of London earlier this year, the house we were living in was on the main road (right next to Ealing Broadway station), and this method of disposal of unwanted things wasn’t available to us. And we had to incur significant cost to dispose of some of our stuff.

The wife put up some of them on the UK equivalent of OLX, and managed to sell off a lot of our stuff for not very high amounts (though I think we got more for our mixie than what we’d paid for it 10 years ago). We made money, yes, but it possibly wasn’t significant enough to cover the cost of my wife’s time.

And then there were the books – there were no second hand bookshops available that would pay anything reasonable for the books. So I had to actually cart all the books to the local Oxfam centre to be given away to charity (apart from stuff friends picked up).

Clothes, similarly, had to be dropped off at a charity centre (there was a Cancer Research UK shop right across the road from our house, so that helped). Again, I don’t know if everything we left there was used, but that was the lowest cost way for us to dispose of them.

Coming back, this gap in the market exists in India as well. The market is a bit better here because you have house cleaners and cooks and drivers you interact with on a regular basis, who are happy to take your unwanted stuff off you and dispose it. The problem is that they are picky on what they take and dispose – they have transaction costs, just like us, and don’t want to take on stuff that they will find it hard to move on.

And what makes matters worse is that even putting it in the trash is not a proper solution here – the municipal trash collectors ask for a bribe to take these things off you!

In some sense, this is a classic market design problem – where the transaction cost of the sale overwhelms the value of items being bought and sold. The things we want to dispose of have value to someone, for which they might be willing to pay, but the costs of finding these people are so high that you end up paying to dispose them.

Basically what we need is a service where someone comes and picks up all your “semi-trash”, sorts through it to find stuff that might be useful for someone else and then transfer it to markets where it can reach people who want it. And things that aren’t useful to anyone will go into garbage.

The problem with this service is that there is a natural upper bound on what people will be willing to pay for this service – zero. And when you factor in the market for lemons here (people might use this to dispose of absolute garbage rather than semi-trash that might be useful for someone), you know why “solution doesn’t exist”.

Time out of nowhere

I was supposed to be in Mumbai today for a meeting. Heavy rains and a “red alert” meant that the meeting got cancelled and I’m in Bangalore. This was a “high transaction cost” meeting – I was supposed to spend the entire day in Mumbai to be able to do the meeting comfortably. Now the whole day is “free”.

The meeting will be rescheduled for another day, and that day, which as it stands would have been spent in Bangalore, will have to be spent in Mumbai. In that sense the meeting has just been postponed rather than being cancelled.

Yet I feel that “time has been created” thanks to the cancellation. I hadn’t budgeted for any work to be done today outside of that meeting, and now suddenly I have lots of time.

And it has already started – with some Parkinson Principle. I was supposed to finish my presentation for today’s meeting last night. Postponement has meant I’ve been approaching it rather slowly, and still ploughing through it. I expect to finish it by tonight.

OK I just got a call now and it seems the meeting has been rescheduled to tomorrow. So I’m off to Bombay tomorrow morning, and with the meeting being so close, there is no “time gain”, for time gained today is lost tomorrow. Even with a steep discount rate, there’s no benefit here.

However, if the meeting had been postponed to next week, or sometime later, then I would’ve celebrated, and continued to have a gala time today!