Agile FAQs
  About   Slides   Home  

 
Managed Chaos
Naresh Jain's Random Thoughts on Software Development and Adventure Sports
     
`
 
RSS Feed
Recent Thoughts
Tags
Recent Comments

Lessons Learnt from Restaurant Business

  • Focus on Rapid Delivery: No one likes to wait for food. No one likes to get cold, stale food. Food is best when its served fresh and hot. The exact same thinking applies to software. If I go to a restaurant and order for starters, main course and deserts, its stupid to expect that I’ll oder everything one-shot and accept everything delivered together. Most probably I’m going to order the starters. Once you get the starters, I’ll see it’s quantity, also taste them and then decide on the main course. And so on. From the restaurant’s point of view,
    • They don’t get nor expect all the requirements upfront.
    • They believe and embrace iterative and incremental delivery model.
    • They deliver food as and when its ready. (focus on throughput). In fact restaurants in India, serve you really fast and they want you to eat and leave as quickly as possible, so that they can server more customers. They really focus on throughput and flow.
    • They keep their customers busy (hooked in)
    • They don’t want to keep the food waiting to be served (inventory)
  • Innovation: Profits and Competition are very high and hence restaurants are very innovation driven. They know only good food is not sufficient to keep customers loyal. They constantly do the following to attract repeat orders:
    • Chef’s recommendation and today’s special deals
    • Free Home Delivery
    • Improve interiors and ambience
    • Come up with appealing offers and packages
    • Evolve their menus by adding new items to their menus and food offerings. Constantly try to improve it based on most frequently ordered items
    • Heavy focus on service and customer satisfaction
    • Try to build a personal rapport with each of their customers. Make them feel special when they come.
    • Constantly look at eliminating waste.
      • If plates, spoons, knife, forks and tissues are frequently required, they store them very close to each table. So that they can avoid their movement and hence save time.
      • Try to make their order taking, processing and deliver process more efficient and less error prone (mistake proofing).
      • They divide their responsibilities into various roles like Order taking, delivering food and cleaning up the table. (Same thing might not work well in software because intrinsic knowledge is much higher)
      • The Chefs inside the kitchen learn to keep their work-area clean so that they don’t get caught up in the mess, trying to find things they need.
      • Chefs also do a lot of interesting mistake proofing to avoid confusion between ingredients
      • Restaurants watch food consumption trends and prepare (plan) their food ingredients based on those patterns. For Ex: they know on weekends, they’ll have huge demand, they plan accordingly. (avoid inventory)

We have also seen how a small, really successful restaurant starts scaling by opening franchisees and soon its brand is completely destroyed. Be aware of the scaling black-holes.

  • I dont think this analogy holds.

    The reason starters are served first is because it is not possible to consume all the food immediately, and the main course would get cold by the time you get to it. To take an alternate analogy, if I buy a car, I dont expect to get the wheels first, then the engine, then the chassis.

    Secondly, its not iterative. If I want a change in the soup, its not doing to be redone and brought out again. Maybe once for something small like adding more salt or pepper, but thats it.

    Thirdly, there is reasonable amount of inventory. Yes, restaurants are throughput focussed, but it is by creating a lot of work in progress inventory before opening. A lot of stuff is bought, washed, cut and partially cooked up front before the restaurant opens based on forecasted demand. Dessert is pre-made. Food is chilled/microwaved plus some final cooking before serving. All this is to speed up delivery time. No one will wait 2 hours for their bisibele bath 🙂

  • I dont think this analogy holds.

    The reason starters are served first is because it is not possible to consume all the food immediately, and the main course would get cold by the time you get to it. To take an alternate analogy, if I buy a car, I dont expect to get the wheels first, then the engine, then the chassis.

    Secondly, its not iterative. If I want a change in the soup, its not doing to be redone and brought out again. Maybe once for something small like adding more salt or pepper, but thats it.

    Thirdly, there is reasonable amount of inventory. Yes, restaurants are throughput focussed, but it is by creating a lot of work in progress inventory before opening. A lot of stuff is bought, washed, cut and partially cooked up front before the restaurant opens based on forecasted demand. Dessert is pre-made. Food is chilled/microwaved plus some final cooking before serving. All this is to speed up delivery time. No one will wait 2 hours for their bisibele bath 🙂

  • Kalpesh

    Siddhartha,

    There can be no one to one analogy. All analogies are OK in part.
    Put anything – construction/art/music/restaurant. There can be 1 thing which can be used to break the analogy (as you show in your example above).

    The idea is to pick the good parts of some process and try to see, if i fits and if so, how it can be adapted to whatever you are doing.

    Waterfall – in a way is the way industries work(ed).
    Agile – came from the same set of industry, I guess.

    And we try to apply it as it is to software. This will have its shortcomings to be realized & we become too rigid, to change.

    Naresh: BTW, if you like – you can see Gordon Ramsay’s Kitchen Nightmares. Its kind of a reality show where Gordon comes to rescue a bad running restaurant.

    http://www.hulu.com/kitchen-nightmares

    One thing I can say for sure – the passion, experience of execution can bring about good results anywhere.

  • Kalpesh

    Siddhartha,

    There can be no one to one analogy. All analogies are OK in part.
    Put anything – construction/art/music/restaurant. There can be 1 thing which can be used to break the analogy (as you show in your example above).

    The idea is to pick the good parts of some process and try to see, if i fits and if so, how it can be adapted to whatever you are doing.

    Waterfall – in a way is the way industries work(ed).
    Agile – came from the same set of industry, I guess.

    And we try to apply it as it is to software. This will have its shortcomings to be realized & we become too rigid, to change.

    Naresh: BTW, if you like – you can see Gordon Ramsay’s Kitchen Nightmares. Its kind of a reality show where Gordon comes to rescue a bad running restaurant.

    http://www.hulu.com/kitchen-nightmares

    One thing I can say for sure – the passion, experience of execution can bring about good results anywhere.

  • Kalpesh

    And its weird that we think, we know everything of everything. 🙂

    I mean – we can comment on how the restaurant business can be improved etc. But, I am doubtful of our understanding of business from an outsider’s perspectives.

    I am not saying the changes don’t help.
    But, there are things hidden, that only an expert of the process (with experience) can see & break the deadlock.

    I appreciate your suggestions on changes/improvements. In a way, it sounds common sense. I think, people would be thinking of doing small changes.

    Don’t we all know how govt should work? what can be done to improve etc?

    The idea is there could be issues related to people – which are difficult to make. A process if executed by robots can be improved. People change the equation of the process where people being one of the variable part of the process, which can impact everything.

  • Kalpesh

    And its weird that we think, we know everything of everything. 🙂

    I mean – we can comment on how the restaurant business can be improved etc. But, I am doubtful of our understanding of business from an outsider’s perspectives.

    I am not saying the changes don’t help.
    But, there are things hidden, that only an expert of the process (with experience) can see & break the deadlock.

    I appreciate your suggestions on changes/improvements. In a way, it sounds common sense. I think, people would be thinking of doing small changes.

    Don’t we all know how govt should work? what can be done to improve etc?

    The idea is there could be issues related to people – which are difficult to make. A process if executed by robots can be improved. People change the equation of the process where people being one of the variable part of the process, which can impact everything.

  • Kalpesh

    BTW, I don’t mean any offense. 🙂
    You are right in your observations.

  • Kalpesh

    BTW, I don’t mean any offense. 🙂
    You are right in your observations.

  • The reason starters are served first is because it is not possible to consume all the food immediately, and the main course would get cold by the time you get to it

    Exactly my point. In the restaurant they understand that customers can’t eat all food one shot and it will get cold, so lets serve them in the order they will eat such that they enjoy every bit of it. But what do we do in traditional software projects? We batch all features together, make our customers beg us for releases and finally we give something that’s not enjoyable. Should it not be like how good restaurants serve their customers?

    Secondly, its not iterative. If I want a change in the soup, its not doing to be redone and brought out again.

    May be not all places, but good restaurant will remake the soup from scratch if you did not like it. One has to give them the feedback and they will fix it.

    When I’m thinking from enjoying the soup point of view, even making some changes like adding salt or heating it or cooking it more, makes it enjoyable for me.

    Thirdly, there is reasonable amount of inventory

    I don’t consider having stuff that moves everyday as inventory. That’s all work in progress. But they are not buying stuff 6 months in advance. It will perish. Similarly in software features and their value perishes if you hold on to them for too long.

  • The reason starters are served first is because it is not possible to consume all the food immediately, and the main course would get cold by the time you get to it

    Exactly my point. In the restaurant they understand that customers can’t eat all food one shot and it will get cold, so lets serve them in the order they will eat such that they enjoy every bit of it. But what do we do in traditional software projects? We batch all features together, make our customers beg us for releases and finally we give something that’s not enjoyable. Should it not be like how good restaurants serve their customers?

    Secondly, its not iterative. If I want a change in the soup, its not doing to be redone and brought out again.

    May be not all places, but good restaurant will remake the soup from scratch if you did not like it. One has to give them the feedback and they will fix it.

    When I’m thinking from enjoying the soup point of view, even making some changes like adding salt or heating it or cooking it more, makes it enjoyable for me.

    Thirdly, there is reasonable amount of inventory

    I don’t consider having stuff that moves everyday as inventory. That’s all work in progress. But they are not buying stuff 6 months in advance. It will perish. Similarly in software features and their value perishes if you hold on to them for too long.


    Licensed under
Creative Commons License