Saturday, March 08, 2014

Notes on entrepreneurship (Part 3)

Few updates since the last time I wrote the blog:
1. At the end of the entrepreneurship course, the website and an iOS app was implemented and I got an A grade ... yaay !!!

2. Since I was out-of-country during the final presentation to judges (VCs, Startup founders, etc), I created a youtube video to motivate this project and my teammate explained the remaining logistics of our project [10].


3. Vigilant team won 3rd place in HackRice 2014 competition for developing Android version along with SVM classifier [3] to predict threat level based on location and time of the day. We used crime data from Houston PD for 5 years, so yes this feature only worked for Houston :(

4. I was lucky enough to get selected to participate in Ignite Conference 2014 [4]. To get the ball rolling on the first day, we were asked to build as tall structure as possible in given time frame with marshmallow on the top using noodle sticks, tape and thread [5]. The next day, we got to visit Khosla Ventures and Square (and few other startups). On last two days, we had talks from several guest entrepreneurs where they spoke about their entrepreneurship journey. Here are few of the lessons I learnt (directly/indirectly from this conference):
4.a What ideas/projects to work on ?
- One of the most common advice you will receive is "fail fast, fail often and fail cheap". However, I suggest not to take it verbatim and understand that the emphasis is not on failing but learning. So, you should not go with the mindset that if I am anyways planning to fail early, let me start with a dumb idea. In fact, the mindset should be "test early/cheaply; if you do fail, don't get hung over it, instead learn quickly why did you fail; and then adapt". Let me put this in much broader context in terms of one of the most important lesson I have learnt in research and entrepreneurship: though most people will judge you by your bank balance and your citations, you (as a researcher or entrepreneur) should try to evaluate yourself by your ability to keep failures small and useful.
- Don't hesitate or hold yourself back if you are passionate about an idea that appears to be "black swan". But makes sure you "know what you know and know what you don't know". Then, evaluate whether things you don't know will halt the project, if so, find an expert who can help you with that.
- Before you think of quitting your job and start a venture, make a list of non-glamorous/routine stuff about startup you will have to do. Though many of these might be solvable by capital, if you do intend to go the lean startup way, ask yourself: Are you mentally flexible to get over your ego and do these task if need be ?
4.b Building a team and network:
- Build team that is smarter than you. And make sure you give back and focus on their growth too, else you will soon face with talent retention problem.
- Here are some of the key points to build and keep great teams: Minimize unnecessary bureaucracy [14], exercise merit-based promotion strategy, treat others with respect and most importantly, with respect to improvement of your startup, encourage everyone to pitch-in their ideas rather than giving everyone list of to-do items [15].
- Hire a really good sales team you can find. This is especially true in internet technology though it has scalability challenges. Why? People would much rather prefer to deal with a sales person rather than internet widget when they are paying huge money for the given service. This also means don't wait until your product testing phase to hire a sales team. Rather start with integrated sales-development team and use sales part of the team as to validate/refine the hypothesis by communicating with customers during the product development phase. Best case scenario, the founder is that person ... that first assumes the role of salesman, talks to clients/customers, figures out requirements, then by himself or by hiring really good team develops the product, markets it, and then keeps on iterating the whole process again [8].
- Networking is extremely critical. It usually takes time, else it seems inauthentic/insincere. So, don't use the number of LinkedIn connections/visiting cards in your wallet as measure of networking, instead count number of people who genuinely want to help you and vice versa. Other way to put it: networking is not about how many people you are acquainted to but rather how many mentors, benefactors and friends you have.
4.c Managing yourself:
- It is extremely important to find ways to manage stress and take care of your health. Also, if your better-half and family understands the challenges of startups and supports/love you, the stress/difficulties reduces exponentially.
- Especially in software development phase, use productivity rather than hours worked as measure.
- Know the difference between persistence and stubbornness. Remember persistence (without stubbornness) requires learning and pivoting given new information/lessons, rather than doing same things over and over again expecting different results [6].
- When working in team, your idea is only good to the degree to which you can explain it. If your team doesn't understand it, you can almost be sure that your customer won't be able to understand it. This skill will probably require an entirely new blogpost (which I might write later), but for now here are three things you can do:
a. Read books about presentation/explanation/UI design: Design of everyday things, Don't make me think, Back of Napkin, Art of explanation, Whiteboard selling, slide:ology and 100 things every designer needs to know.
b. Learn empathy (i.e. relating to team/developers/sales and especially customers).
c. Be specific. If you don't break up tasks into smaller items and clarify the purpose/big picture, people (either your team or investor) might feel overwhelmed and can sometime get defensive. One particular thing that every member on your team needs to be very crystal clear about is "minimum viable product".

Let me recap the high-level steps [16] described until now in this blog series:

Step 0: Define your means: "what I know",  "what do I have" and "whom do I know".

Step 1: Ideation: See part 1 of this series for high-level tips.
Step 1.1: Being little more specific about step 1: Create/Refine 60 second elevator pitch: The key idea is if you meet a key investor/evangelist/strategic partner in an elevator and if he asks you what are you working on, you should be able to summarize your business idea before the elevator reaches certain floor and that person has to leave. Here are few suggestions about creating your elevator pitch:
- Sit down and write your elevator pitch without too much thinking. First iteration will always be awful.
- Iterate, rehearse, iterate again and then rehearse again (and keep doing this) until your elevator pitch becomes second nature to you.
- Talk to your customers and experts in that field and try to incorporate their feedback.
- Be honest and don't promise "world peace". Remember, your words represents your thoughts/character and the investor is investing in you as much as he/she is investing in the idea.
- There is no one way to do this, so learn-by-example; aka do youtube/google search for "elevator pitch" and listen to them [7].
- Use analogy to simplify the problem.
- If possible, explain how the problem affects you, your family or someone you know.
- The first and last sentence are extremely important and connecting them helps to create a more effective delivery.
Here is one of the iteration of my elevator pitch:
Studies show that in the US alone, one out of four women get sexually assaulted in their life-time. This number is much higher when they travel to developing countries like India. Though this problem is highly complex, we believe that a fraction of it can be solved by technology-based deterrents that act as first line of defense when in danger. We present one such solution: Vigilant. Vigilant is an affordable and hassle-free personal safety solution that connects you to friends, family and authorities during emergency with just a click of a button. The goal of Vigilant is to make everyones life safer with the help of smarter software and hardware.
Step 2: Opportunity evaluation:
Step 2.1: Use high-level checklist described in part 1 of this series.
Step 2.2: Create a business model canvas: Before you read anything further, you should definitely watch this 2 min video describing the business model canvas. Also, read the book Business Model Generation to understand why and how to create a business model canvas. If you don't have time to read through the book, here is few websites that allows you to create one by step-by-step instructions: zoomstra, launchpad central, turbostart, wordpress plugin, collaboration website. You can also go through following lectures/tutorials to learn how to create one: Steve Blank's udacity class,  Alex's blog.
Step 2.3: Early customer validation/requirement gathering using one or more of the feedback/analytics tools (some are applicable only at later stages): These tools help you quantify/find out: what people think they want, how much they think they want to pay and how much they will really pay.
- False buy page or dummy (but fully functional) e-commerce page for buying clickers [1].
- Contact form plugin in wordpress.
- Feedback button in app.
- Site Traffic widget/plugin in wordpress.
- Facebook likes.
- Google forms for suggestions from early adopters: Here are few suggestions for coming up with good questions (ones that I didn't know earlier): Kevin's blog, Stanford's videos for customer discovery, Learn startup customer development templates, Alex's blog, Steve's suggestions, Kaushik's suggestions.
- Other tools that you can use for market research are Google's customer survey tool, Amazon's mechanical turk, Qualtrics.
- Pamphlet with google url shortener[2] and QR codes across campus.
- Other tools that allow to do customer validation: validately, foundersuite.

Step 3: Build a great team !!!
- See suggestions given above in point 4.b and 4.c.
- There are few websites that help you find your founders: FoundersDating, CoFoundersLab or attend a meetup or hackthons or startup weekend.

Step 4 (or 5): Implementation, marketing, validation, refining business model canvas and keep on iterating.
This step requires above mentioned feedback/analytics tool as well as marketing/branding tools:
- Checkout fiverr for really cool and cheap marketing ideas.
- Make sure you install SEO plugin for your wordpress. I am using this plugin, but there are equally good plugins in the market.
- Create a marketing message/keywords based on above feedback tools or google trends or google keyword tool. Then keep refining it with respect to location based on google insights. Similarly, there are several analytics tools that will help you in marketing/branding like Google Analytics, Amazon Analytics, Heap Analytics, AppAnnie, Distimo, etc.
- Advertise on Google, Facebook, Bing or LinkedIn. If you prefer traditional marketing tools, you can look at srds.
- Read Art of explanation and make a user-friendly video about your product. You can use one of the following tools to create the video: Sparkol, Explainify, LooseKeys, Amazon's Elastic Transcoder, Camtasia.
For exhaustive list of tools, refer to Steve Blank's list, YCombinator's list, Startup Weekend's list, PBWork's list, HBS list.

Step 5 (or 4): Funding your startup:
Step 5.1: Research on which type of investor you want to approach: angel investors [12], venture capitalist, crowdsourcing or super angels. Also, be perfectly clear about amount of funding you need and valuation of your company as this will determine amount of equity (or other form of compensation) you will have to give to the investor. There are other parameters to consider as well like how much involvement you want from investor. Here is small figure to understand the startup funding lifecycle [11]:

Step 5.2: Now research on the specific investors you want to target and classify them as either "ideal/ambitious" or "can live with/moderate". Start with investor's website and understand their funding philosophy. Then look into ventures they have funded and see how they are doing [13].
Step 5.3: Prepare your pitch deck:
- See tips from from my previous blogpost about presentation.
- Here is a really good 2-min video about pitching from Guy Kawasaki. Note the 10 slides at 10min 4 seconds.
Step 5.4: Remember there are other things more important than just capital for your startup. Ask advice and hopefully gain a mentor or board of director. Sometimes they can also refer you to another funding agency.

Since this is often the most confusion aspect of startup for a techie, let me try my best to explain and emphasize the difference between validation and planning [8, 9]. Usually, planning involves deep thinking so as to perform forecasting, whereas validation starts with brainstorming the hypothesis and then validating it through rapid customer feedback loop. Planning which is associated with waterfall-like model, starts with defining the specific goal and then coming up with strategies and detailed steps to move towards that goal. Validation, on other hand, is often associated with agile development/effectuation/lean startup methodology and then involves pivoting the goal based on customer/market feedback. Planning assumes that you know precisely what customer requirements are beforehand, validation doesn't. Since customer requirements are known, planning is suitable for large-scale established companies where the emphasis is on "execution" of those requirements. On other hand, since precise customer requirements are unknown in startups, emphasis is on "searching" of the requirements through validation of hypothesis [8]. This is why many entrepreneurs prefer a short business model canvas (which is a hypothesis generating and validating tool) over more comprehensive business models.

Reference:
[1] Implementing e-commerce page on the wordpress took me no more than 30 minutes using the plugin WooCommerce. It allows you to track orders, generate reports, and even manage coupons.
[2] Google's url shortener (and many more similar free services) helps you track the traffic through the given link. Here is a useful hack: Have multiple shortened urls for your webpage and use different ones for pamphlets in different geographical areas. Then use the analytics to do much more targeted ad campaign :)
[3] For ML geeks, I must confess that the model suffers from selection bias as it only contains the data when crime occurred, not when the crime didn't occurred. Since you have to finish the project in a day according to rules of hackathon, most of which were spent on data gathering/cleaning, I had no time to work on this :(
[4] One thing that surprised me was that even though this conference was in Silicon Valley, I was the only Computer Science graduate student there, all others were either MBAs or MDs or MD-PhDs or BioTech students.
[5] My team came second and built the structure that was 26 inch tall. The idea is to start the first structure with marshmallow and keep building lower structure. Also, it is important to reinforce the structure (building supporting vertical sticks and choosing multiple sticks for lower pillars) so that it does not collapse. Most of the teams that failed started by building as tall structure as they could without marshmallow and then tried to put marshmallow on the top, which caused entire structure to collapse because of the weight. So the take-away point for entrepreneurs from this exercise is do bottom-up incremental iterations/updates with customer involvement so as to mitigate risk. Here is the pic of our structure:
[6] From Mark Otero, CEO & Co-founder, Klicknation.
[7] Daniel Pink in his book "To sell is human" suggest following template: "Once upon a time ___. Every day, ___. One day ___. Because of that ___. Because of that ___. Until finally ___".
[8] Read Steve Blank's blog for more detail.
[9] http://www.effectuation.org/learn/effectuation-101
[10] In the video, the clip where people have duck-tape on their mouth is from another youtube video about raising voice against sexual violence, i.e. it was not created by me and hence don't give me credit if you want to cite it. I used the clip because it resonates with the motivation of my project :)
[11] http://en.wikipedia.org/wiki/Seed_round
[12] It might also be worthwhile to look into websites like angellist.
[13] Websites like CrunchBase and Techcrunch helps here. Other useful website you should definitely visit is Glassdoor to gauge the talent-retention ratio as well as willingness of upper-management to experiment new ideas. Why? It sometimes can be a metric to evaluate the founders and indirectly the investors. There are few ranking websites based on different criteria, one of them being Forbes Midas' list.
[14] For example: Rice Computer Science Graduate Student Association (CS GSA) is a flat organization and there are coordinators that have responsibilities/duties. Everyone can pitch in and help others, but when it comes to arbitration/point of contact/failure responsibility, the assigned coordinator is the one in-charge. For people outside the organization, that person is Overall coordinator, think of it as a President of the club and for the current year, that's me (thank you very much) :)
[15] Sure, some ideas might not align with the vision of the company and it may be dropped, but it has to be done in form of discussion rather than in an authoritative manner.
[16] Note, these are high-level steps, even though you might find the list of tools overwhelming. For detailed step-by-step instructions regarding startup process, please read one of several startup related books available on amazon or listen to startup lectures on udacity/coursera/youtube or better attend an incubator program near you.  

Saturday, October 12, 2013

Notes on entrepreneurship (Part 2)

In the first class, we divided ourselves into random groups, each with four people (mostly from different background). The idea was to pitch an startup idea within 10 minutes based on the means of our group members. This exercise was repeated again with different set of people. One thing I noticed after this exercise was even though it seems like nice idea to start with your means and build a startup based on that, people usually revert back to the idea that they are absolutely passionate about, irrespective of their means [8].

As an assignment that week, we were supposed to take $5 and in span of two hours make as much money as we can. My group decided to go with "Grocery delivery service for professors" and each of us were supposed to ask professors in our department to help with that. I got to speak to only few professors in Computer Science department (as it was Friday) and only Swarat was on-board with the idea. My team-mates were unable to get any professors from their respective department, so they decided to go with another idea: "Personalized cards and their delivery". We made $10 in tips with the first idea and ~$13 with the second idea. The lesson from this exercise was sales is hard, but probably the important part of a startup [9].

In the next class, each of us gave an elevator pitch of their idea for a startup. Let me put my idea with respect to previous post:
1. Means:
- What do I know ? Background in software development, research experience in building large-scale systems and knowledge of embedded systems.
- What do I have ? Very low capital ... student salary :(
- Whom do I know ? Software professionals in India and US (from my bachelors, masters and job experience), Marketing/Advertising professionals in India (my father's advertising firm and my MBA friends), Trustworthy partner in India (my best friend and brother Rohan), Research scientists (my advisor, my colleagues at Rice university [3], my collaborators, contacts from internships and also from my experience as President of Rice Computer Science Graduate Student Association). Other than couple of exceptions, until now I have been lucky enough to be surrounded by really nice people, which is why I believe this to be my strongest means [4].

2. Ideation:
In the previous blogpost, I vented my frustration over sexual assaults cases in India as well as provided high-level suggestions (which I must admit I had no control over). So, I decided to use my means to develop something that might help improve the situation (in whatever little way possible).
Unlike US, the commonly-accepted safety net in India is not government/police, but the social structure (i.e. your friends and family). Many of the personal safety solutions like pepper spray, taser or guns require state licenses in many countries and are even prohibited in few countries like Canada, China, Bangladesh, Singapore, Belgium, Denmark, Finland, Greece, Hungary, etc. Not to mention they are expensive and can often escalate the situation.  This is why many people follow a self-imposed curfew, that is either not leave home after dark or have someone accompany you.
With advent of smartphones, an obvious solution seems to be "have a personal safety app". Most of these apps have cool features such as sending GPS location to your friends and family but have a major flaw that make them non-functional: they require you to take out your phone, open the app and press an SOS button in it. Clearly, this is not what an average person would do in times of danger. Here are some of the feedback/comments on such apps [1]:
- I think a "dangerous environment" is the last place I would want an expensive item like an iPhone prominently displayed.
- ... app (might not be) readily available to access, on screen #8 somewhere on the 2nd or third row ...
- Pulling out your iPhone in the face of an attacker? That's one sure way to escalate the situation. And he now knows you have a nice phone too.
Reality check: Not only I am passionate about this problem, there does not exists a solution that works satisfactorily (i.e. "pain points") ... to me, they are just cosmetic app, the ones you buy for keepsake but does not serve any purpose to the society.

Before discussing next point, let me take a small detour and tell you what metric I use to determine the success of this startup [2]: At the end of the course (or may be few months past that), I am able to make an app that works seamlessly in real-life situation and which I can recommend to my loved ones without any hesitancy.

3. Opportunity evaluation:
Like many computer programmers, I have an habit of developing software that do exactly what I want but not what my audience would need. To ensure that it doesn't happen, I sent out an survey asking people what they would like in during times of emergency. The demographics of participants were as follows:
- 53% males and 47% females
- 82% of participants were between 20-30 years old and 14% between 30-40 years old.
- 59% from US, 16% from India and 8% from China
- 24% had Bachelors degree, 47% had Masters degree, 27% were PhD students.
- 32% earned between $10K-50K, 28% earned between $50K-100K, 16% earned above $100K and 20% were not currently earning.

Here is the summary of responses:

The above figures shows that majority of people (46%) wanted an external device like bluetooth-clicker that victim can press when he/she is in danger. This was a good indicator that I should go ahead and spend some time building such an app.

The next step was to understand what features a user would want/need in times of emergency:

Since some of these features require backend services (for sending emails/SMS, managing account/app) which need capital (I am not rich enough to maintain this kind of service on my own), I asked how much people are willing to pay for this kind of service. It was clear that most people preferred buy-once kind of a model:


Now, the checklist of opportunity evaluation:
a. Unique value proposition of my idea: "Affordable" and "hassle-free" way to connect to your friends, family and authorities in times of emergency ... with just a click of button.
b. Is it defensible: Nope, anyone with strong programming experience can replicate the features of my app. In fact, in long run, that is exactly what I want ... lot of good apps and competition that eventually help reduce the number of sexual assaults and make the world little safer place.
c. Is it profitable/sustainable: I really don't know :( ... It could be a product like dropbox, which people never thought they would want ... but once they got it, they can't imagine their life without it ... or it could be a total flop. The only way to be completely sure is by implementing it :)
d. Clearly defined customer: Young women traveling abroad or working late, senior citizens and frequent travelers.
e. Is it feasible and scalable: Yes, I used my experience in building large-scale cost-effective systems to build the backend. Also, my experience in C/C++ programming, knowledge of design patterns and user-friendly Apple documentation helped me: (a) learn the basics of Objective C in less than a week and (b) build the version 1.0 of the iOS app in less than a month.

Finally, I must reiterate the core principle of opportunity evaluation for a startup: It is not possible to know a priori whether an idea will turn out to be good business or not. So, I decided to stick to "affordable loss" principle and develop the app with as low cost as I could. Few of the hacks I used to ensure "affordable loss" are as follows:
- Moving most of the computing to clients rather than server (so as not to buy overly expensive servers).
- Using pay-as-you-use services wherever I felt absolutely necessary (for example: Amazon web-services).
- Using GIMP to develop my own logo (which I had to learn btw :P) rather than hiring a designer [6].
- Using wordpress for the startup website rather than spending days perfecting the CSS to make it mobile-compatible or hiring a web-developer.
- Focusing on minimum viable product (using Texas Instrument's SensorTag) rather than prematurely buying tons of bluetooth clicker from China [12].
- Using in-app purchases rather than setting up credit-card system in my website to provide features which other services charge me (for example: SMS/Email) [10].
- Not running after patents early on in the venture [5].
- Buying readily-made icons set rather than designing them yourselves [7].
- Choosing a hosting plan that has no hidden fees and that supports your choice of backend services.
- Using gmail as support email (rather than one provided by hosting services) and adding feedback button in app as well as contact form on the website (with some kind of captcha [13]). One tip I have for new developers is try to minimize the number of clicks/typing in app for sending feedbacks, for example: pre-fill "to-" address as well as "subject line".
- Utilizing the membership benefits of Apple/Google development program, i.e. off-loading testing [11], advertising/cross-promotion, expert feedback, reliable delivery of your software and version management.

References / footnotes:
[1] http://reviews.cnet.com/8301-19512_7-57452393-233/iwitness-app-claims-to-be-ultimate-deterrent-to-crime/
[2] Rather than use metrics like expected profit/revenue after first year or public offering or something on similar lines.
[3] I already have got 4 other PhD students from Rice university on-board to develop Android/Windows version of the app. This is in lines with another principle of Effectual Entrepreneurship: Form partnerships.
[4] The intent of this statement is not flattery, just an observation. Here is why I think so: though I never deliberately tried to enforce it, my circle of influence consists of three types of people: those who are genuinely nice, those who are smarter than me, and non-self-destructive people. Of course, the categories are not mutually exclusive and in fact people who are smarter are usually genuinely nice (probably because they only focus on self-upliftment, not on pulling others down). Here is a layman example most people can relate to: even in course with relative grading, a smart person knows that he/she is a student of global class and is not be threatened by his/her class-mates' progress ... which is probably why you will rarely find such a student shying away from group discussion (so as to gain advantage) or deliberately spreading false information to sabotage other's grades. May be things might not be such black-and-white in other fields, which is one of the reason why I absolutely love research and development.
[5] A patent attorney who attended our class thought one of the feature of our app is patentable, which might be true. But there are 2 problems with going that way: (a) the real cost of patent is not in getting it, but in defending it, (b) It will limit the features that other programmers who are smarter than me can introduce in their personal safety app (which goes against my success criteria for this particular problem). To be completely honest, there are ways around low-capital issue for those startups who really want to get a patent: (1) file provisional patent yourself under $200 (just read about how to define the scope of your patent and also about court dates), (2) ask your parent organization or angel investor to file a patent for you in exchange for royalties or stake in the startup (for example: Rice university's OTT office), (3) contact a patent troll to defend you patent.
[6] For people with little more budget, there are websites like http://99designs.com/ and https://www.elance.com/ that allows you to hire a free-lance designers/developers. A similar website for building mock prototypes of your products to show to investor is http://www.protomold.com/.
[7] There is always a tradeoff between time and money, you just have to figure out what is your exchange rate for time ;) ... for example: if someone is providing you service that will save you 1 hour, how much are you willing to pay for that service.
[8] Whether building your startup "based on your existing means" is better than "based on your passion and then expanding your means as you go" or vice versa, I really don't know. There are obvious advantages for both and also obvious disadvantages when pushing the respective principle to extreme.
[9] Even though you might think an idea is pretty good (and will benefit the customer), people are not willing to pay as much as you think ... probably because it's either suspicion that you are trying to dupe them or incorrect valuation of the product/market from your end or something else.
[10] Though it might seem simple to just plug-in existing credit-card library and setup a php page with mysql backend, things get a little complicated when you start thinking about transactional semantics and the fact that people can buy new devices or deleting the app and similar situations.
[11] In traditional company, a developer would be evaluated based on stupid metrics, such as bugs assigned, solved, etc. Though on paper they seem apt, they can have harmful side-effects for startup such as spending too much time perfecting a feature without any customer validation/feedback. So, instead of spending significant resources on testing, submit your app to Apple as and when you add new feature and indirectly ask them to test it :) ... Other way, for cheap testing is by using crowd-sourcing websites such as Amazon's mechanical turk (which I will ignore for this post).
[12] Since the SensorTag took a while to be delivered to my home address (thanks to my apt complex rejecting the package), I decided to use an accessory that I already owned for version 1.0 (i.e. headphones) and introduce bluetooth feature in the next version.
[13] There are lot of wordpress plugins that allow you to add captcha in your website in just few minutes.

Tuesday, October 01, 2013

Notes on entrepreneurship (Part 1)

In this semester, I am taking ENGI 540, an entrepreneurship class offered by Rice Center for Engineering Leadership that focuses on lean startup and effectuation principles. It follows "reverse classroom" approach where we are supposed to go through preparatory readings and watch online lectures before every class. In the class, we discuss what we accomplished every week and also interact with guest entrepreneurs, venture capitalists and IP lawyers. I thought it might be nice to blog about my experience and share few insights I got from taking this class.

In the first class and after reading through first few chapters of Effectual Entrepreneurship, I found following concepts very intriguing:
1. Defining one's "means", which my professor defines as "who you are, what you know, what you have and who you know". The core idea in a startup is to start with your mean and create opportunities; sometimes expanding one's means through partnership.

2. Ideation: One interesting habit that a budding entrepreneur can practice is make an idea journal, where you force yourself to come up with 1 new idea every week (or if you are ambitious every day). There are various tools available for idea generation like mind mapping, lateral thinking, brainstorming, ... (will leave this for some other blogpost). Here are some of the tips for generating business ideas:
(2.a) Look into areas of change: Eg: opportunities in healthcare domain (because of ObamaCare) and energy field (because of increase in oil/gas prices & environmental impact). You can also analyze the consumption habits based on demographics [3], especially in market that is rapidly changing, i.e. BRIC countries (Brazil, Russia, India and China).
(2.b) Pain points: Is there a problem that is bothering you that is not solved by any existing solutions ?
(2.c) Cross-domain: Can you apply your expertise in one field into other ? For example: if you have expertise in end-user/consumer marketing, you can find an opportunity in a field which only focuses on corporate services (by delivering those services to end-user).

3. Opportunity evaluation: It is not possible to know a priori whether an idea will turn out to be good business or not. Most successful entrepreneurs and investors claim there is only one way to see good business opportunity: Go ahead, implement it creatively with very low levels of investments and either find real customers who are willing to buy the product or service at reasonable price or locate partners who are willing to commit real resources to the ventures early on or ideally both [1]. Still there are few high-level checklist that you can use to check if your idea is good or not:
(3.a) Does your idea have unique value proposition; if yes, what is it ?
(3.b) Is your idea profitable and sustainable (i.e. profitable over long period of time) ?
(3.c) Is your idea defensible ? People protect their idea either by patents/copyrights/trade-secrets, etc. Sometimes early entry into the market and strong user-base also makes an idea defensible.
(3.d) Does it have a clearly defined customer ?
(3.e) Other questions: Is it feasible ? Is it scalable ?

4. Causal reasoning states: To the extent we can predict the future, we can control it; whereas effectual reasoning states: to the extent we can control the future, we don't need to predict it. So, instead of creating elaborate predictive business model before beginning a startup (which can be frightening), it might be a nice idea to follow the effectual strategy: focus on what is controllable about the future and only commit what you can afford to lose (i.e. "affordable loss" principle [2]). For extremely risk-averse people who might prefer inaction, I would like to cite Sarasvathy's quote: "20 years from now, you will be disappointed with things you didn't do than things you did do".

Reference:
[1] Effectual Entrepreneurship - Saravathy et al.
[2] A good application of affordable loss principle for iPhone development is given in this youtube video.
[3] Procter & Gamble changed the delivery mechanism of shampoo in India ... small packets instead of large bottles.

Monday, May 13, 2013

Religion and Science

When I first decided to write a blogpost on this topic, the first thought that struck me was "What can I write about religion and science that isn't already articulated by others ?". This was quickly replaced by another thought "If it is so, why majority of people have twisted views about them ?". The answer was pretty simple: In public venues or in mainstream media, people with extreme views are the ones who are most vocal, whereas moderates often seem unconcerned, callous or worse condescending.

Since moderates are often characterized as being tolerant (which is a good thing), let's try to understand what does it really mean to be tolerant. Is it same as being indifferent ? If you are tolerant, should you be vocal about it or is it sufficient to say "you believe what you want to believe, but don't bother me" [12] ? Should it be a choice or a requirement ? Would you be tolerant if you chose not to tolerate the intolerants (often called as terrorists, extremists, fascists, nazi, etc) [1]. Wait, it gets even more complex: Who defines the term "intolerant" ? For Islamic extremists, it's Western world stopping them from enforcing their interpretation of sharia law. For Western world, it's cowardly and inhuman attacks on civilians by these terrorists. For some, it's bible thumpers trying to dictate how they should live their life; for others, it's atheists (or may be liberals), who are ruining their family or moral values. The list goes on and on and is equally applicable in my beloved homeland India and gracious guest country USA (and I suspect every diverse nation in the world). Unfortunately, unlike Karl Popper I don't have a globally applicable answer to these questions [10]. A local answer is to be tolerant in terms of freedom of speech, but keep people responsible for their actions in terms of secular humanitarian laws [2]. Bottom-line: in a civil society, the simplest working principle seems to be that we educate ourselves (enough to be intellectually capable of deciding right from wrong), embrace the diversity, be tolerant of opposing views and let the law judge the people who we feel are intolerant. It might also help if we abandon our cloak of complacency, engage in serious and meaningful debates/discussions and elect representatives who share our thoughts. Before I come back to the original topic, let me explain the dangers of being intolerant: If you chose to accept so-called "little intolerance", you will soon find yourself governed by "little intolerant" elected officials and as history has showed us, they will soon be replaced by "little more intolerant"elected officials (who would win the elections by saying the former aren't intolerant enough) and the cycle will continue.

Since there are different definitions of the same term [3, 4], for sake of this blogpost, let me explain my interpretation of these terms.
1. You are a theist if you believe that God created the world and takes active interest in the world. For example: if you are a theist, in times of trouble you believe that God will intervene to provide you with guidance or in someway affect the outcome. How far and how often God intervenes depends on degree of your theist beliefs.
2. Almost all theists also follow one of many organized religions, which are based on revelations given by prophets or reincarnated Gods. It is important to note few things about organized religions:
  • There is a clear distinction between prophets and ordinary people, former being first-class citizens who are the only people that have access to these revelations.
  • Since revelations are the only mechanism for finding or validating "religious truths", it makes scientific inquiry impossible. This is because as of this day, there is no clear way to distinguish between the revelations of first-class citizens and hallucinations/delusions of ordinary people. This is also true for spirituality. So, religion has a concept of faith which requires you to believe something because the first-class citizens said so [5].
  • These revelations can be categorized into two parts: information about God (and hence the universe) and information about how to conduct ourselves in the world. Often, the former (for simplicity, let's call it knowledge) is used as main reason to stick to the latter (let's call it moral guiding principles or human values) in our day-to-day life. By definition, knowledge is considered to be absolute and universally-applicable [6] whereas the moral guiding principles are treated as relative [7]. The consensus among many intellectuals is that the scientific method is the best available tool for exploring and validating knowledge. For moral guiding principles, people often use either religion or philosophy or spirituality or law or introspection or advice from friends and family [8].
  • Most revelations are described in holy books and are often accompanied by a back story. Many anti-theists criticize the revelations because of validity of the back story rather than applicability of revelations themselves. Some theists believe them to be exact historical account whereas others theists believe them to be embellished so as to get the message through to the general public [9]. In these back stories, there is often mentions of so-called miracles and many use the argument that specification of these miracles is a proof of validity of the revelations and hence God [11]. However, non-reproducibility and often embellished centuries-old second-hand accounts make the likelihood of these miracles highly improbable, if not impossible, and hence they are not accepted as facts by the scientific community.
  • Even though it is often suggested that all religions say the same thing [12], many organized religions are very clear on one particular requirement: "To adhere to religion X, you must ignore teachings of all other religions and consider them to be pagans". So, ipso facto all religions don't say the same thing, it is what we chose to believe to promote tolerance. I, on the other hand, think we should celebrate pluralism and not be afraid of the fact that different religions say different things. The only reason we ever need to be tolerant is coexistence and survival of human race.
  • Many religions are based on the concept of two-world: physical world (where we live) and transcendent world (which is termed as heaven, paradise, etc). Some religions that have concept of rebirth and karma (eg: Buddhism and Hinduism), also have concept of enlightenment (nirvana or moksha), which is often referred to as state of being, rather than a physical location (like heaven). The hidden assumption in two-world philosophy and most religions is that human beings and earth has undivided attention of God and hence has special and central place in this universe. Science makes no such assumption and in fact many scientists believe human race and earth to be a product of a wonderful accident.
3. Science on other hand is based on "scientific method", which Oxford dictionary defines as "a method or procedure that has characterized natural science since the 17th century, consisting in systematic observation, measurement, and experiment, and the formulation, testing, and modification of hypotheses". Since there are already enormous amount on literature on this I won't discuss it in more detail. However, I do have few advices for young scientists:
  • Make sure you understand how to differentiate between science and pseudoscience.
  • Don't be afraid of uncertainty and not knowing everything. It's OK to say "I don't know", you will be surprised how often that phrase is used by renowned scientists.
  • Avoid the urge to be self-centric and to accept something to be fact because you feel it "deep inside" [12]. Also, don't make up stories, that have no scientific bases, to explain things you don't understand.
  • There is no such thing as faith in science. It is replaced by reasoning and experimentation. For example, when you read a research paper or a book, always exercise critical reasoning on it to make sure that the results are plausible. If you think something is fishy, conduct an experiment to validate its result and hypothesis [5]. This is also true when a professor explains you laws of motion or electricity or something else and claims it as science.
  • For reasoning and validation, stick to Occam's razor, i.e. don't just jump to the easiest/quickest answer, instead put effort to find the answer which requires fewest assumptions. For experimentation, at minimal, understand the correlation-causation fallacy and also statistical testing. One particular book that that you can start with is How to Solve it by Polya.
Even though both religion and science started because of human curiosity to explain the universe [13], both employ completely different methods/practices: revelations and scientific method, respectively. To make sense of the debate between them, it is necessary to recognize that these methods are inherently incompatible. So, unless all the parties agrees on a common method for finding and validating facts/truths, I think the whole argument will keep on spiraling itself. So, if a religious person choses to use the scientific method to convince me of the validity of the revelations, I welcome it; if not, I prefer not to engage in the discussion at all.

Just like religious missionaries, let me take a moment to state why you should use scientific inquiry for finding facts and solving problems ;) Look around what scientific inquiry has enabled us to discover and invent: medicines, cars, internet, computers, phones, planes, trains, camera, music players, guitars, paints, bricks, electricity, bulbs, etc. Whether you are a student or a nobel prize winner, a poor person or a millionaire, a prisoner or the president, your experimental findings and ideas will be judged purely on its merit and nothing else ... not on your status or gender or age or or religion or race or caste or nationality. You are allowed to ... no, you are encouraged to come up with new ideas, ask questions, doubt and investigate widely held beliefs. In fact, I urge you to doubt everything in this blogpost, discuss it with your teacher/professor/colleagues/priest/friend/family, read books about both religion and science and come up with your own opinions :)

Let me summarize this blogpost in a sentence: Whether religion or spirituality is inevitable and necessary part of of human life, I don't know; but I am absolutely sure that they don't have place in science classroom or textbook.

References and footnotes:
[1] The paradox of tolerance: http://jefflees.wordpress.com/2010/01/22/the-paradox-of-tolerance/
[2] The legal argument about tolerance gets more complicated if majority decides to collude to deliberately oppress the few, which has happened far too often in the past. However, we won't get into that and let's rely on inherent human goodness and assume that there are constitutional provisions to disallow that.
[3] http://en.wikipedia.org/wiki/God
[4] The Cambridge companion to atheism
[5] Scientists are expected to practice same level of skepticism to the theories of even the most accomplished scientists (be it Newton, Einstein, Darwin, Turing or Feynman), i.e. science does not have authorities, just heroes.
[6] Even though I called knowledge to be absolute and universally-applicable, it was little misleading. Read research journals to find just how many previously accepted theories are replaced by new theories in light of new evidence, which essentially means knowledge and science is ever-evolving. Anyways, I urge you to read about epistemology for understanding the nature and scope of knowledge.
[7] Religious fundamentalists believe "how to conduct yourself" is absolute (i.e. strict adherence to revelations).
[8] Recently, I encountered a person who was against organized religion, but claimed that spirituality is better tool than science for both exploring knowledge and for moral guiding principles. He didn't provide me with any evidence or rationale to support his hypothesis, so I disagree with him on that. It is also important to point out here that Sam Harris suggests that science can also determine human values.
[9]  Irrespective of which is true, one thing I submit to is that they probably were the best collections of ideas of their generations. However, in this age of globalization and democracy, I don't think if they are applicable.
[10] At the international level, with so many dictatorships, monarchy, theocratic governments, territorial disputes and dogmatic/partisan politicians around, it is difficult to come up with one principle that will work every where. Non-intervention (or non-alignment) expects every country to make decision before you stop a genocide (example: EU and Bosnia). Respecting every nation's sovereignty means pulling out your troops from unstable governments (like Iraq and Afghanistan) or countries surrounded by superior military powers (like Kuwait, South Korea, Taiwan or Japan). Think non-violence and Tibet. So, this blogpost is only applicable to citizens of secular nations with access to freedom of speech.
[11] If you believe in miracles, aren't miracles of science (pun intended) equally mind-blowing, for example: flying objects, going to the heaven, create new life, curing the sick, all-knowing oracle, walking on water, being invisible, etc.
[12] Penn Jillette: Why tolerance is condescending ?
[13] Of course, many religious people will disagree with this opinion and will point out that religion exists because God wanted it to exists, not because humans were fishing for answers.

For those people who followed the entire line of argument, I must admit that I deliberately skipped the underlying question about existence of God in non-religious/non-theists, atheist, agnostics settings.

Wednesday, March 27, 2013

Hadoop MapReduce - System's view

Here are videos that I created to explain Hadoop's MapReduce framework from system's perspective. As a disclaimer, this video is at an abstraction that I liked, which means it might not be suitable for general Computer Science audience. If however, you have some experience with Hadoop, you should be fine. I have skipped over lot of Hadoop's features for simplicity and succinctness, like HDFS, Hadoop I/O, setting up/administering Hadoop cluster and writing Hadoop programs (and various high-level languages/tools that use Hadoop).

1. Job Submission at the client side


2. Job submission at the JobTracker side

3. Task Scheduling

4. Task Creation

5. Map execution

6. Reduce execution

Slides: PDF, Keynote