Sunday, November 12, 2006

Can we ever create a Silicon Valley in India?

Before you start reading this, I recommend you read Paul Graham's "Why Startups Condense in America" because I keep referring to it in this post.

So, can we ever have a Silicon Valley in India? As Paul says, to create startups the basic ingredients that you need are nerds and rich people. I've been to both Bangalore and Hyderabad - both have great schools (granted Bangalore has IISc and that's one of a kind on the planet so it has an edge over Hyderabad - but this is not about Hyderabad vs. Bangalore) and both have rich people from the IT boom in India - so is that enough to create a right mix to start startups? No, not quite.

There are a couple of things that going for America: they are not too fussy and they have a huge domestic market. In India to start a company you have to jump through hoops - at least that was my experience back in 1997, I was just out of school and I remember all the hoops that we had to jump through to incorporate a business. And then India has no domestic market, not yet at least. Even if you want to start a company that targets international markets you need exposure to the right problem set in right time - which is impossible to get when you are in school. Even after joining a company as an employee after schooling, mostly we teach how to build a software services company but not a startup or a software products company. So the typical formula that Paul Graham sets for startups, that startups are started by young people that target a domestic market falls apart for India. So how do we create right environment with right nerds that are backed by right investors?

In my mind, to create such an environment, you need keep this following three things in mind:

1. Products not Services: Indian software market is solely made up of services - not products; to create a startup environment, we need to think of more products than services. Knowledge in this area is a must for India to build right products for right markets in the right time. The only way for India to grown in this area is to see an influx of successful NRI's (preferably from valley) either moving to India or sharing their knowledge in Indian schools by being part of some sort of "visiting staff". Services business does not scale well if you are into creating value instead of generating $.

2. Wealth not Money: Services business create money (in Rs or $) for each line of code you write - but a great product creates wealth (and money as a return) over a period of time by proving its value in the market. Most of the young engineers in India fall for "making money" game instead of thinking of creating wealth (and value) in the software markets. Nothing wrong in making money, but creating wealth is far more powerful than creating money. Creating wealth reflects on the society and lives of others, where as money only creates better living for individuals.

3. Entrepreneurship not Employment: Indian schools teach us a great deal about how to get a job - but I have rarely seen focus on entrepreneurship (even in business schools). Even in IIMs, to my surprise, the focus is on campus placements rather than bootstrapping companies and building businesses. It almost seems like we have given up the idea of creating employment and look for employment. I think this is where the schools should perhaps revamp their curriculum to coach students to think towards creating wealth instead of making $100K straight out school. The only way you can do this is by creating an environment around schools where rich and nerds can hang-out (like restaurants in Palo-Alto in the Valley).

We have many smart people that are driven and risk taking - but very few of them actually venture into starting their own companies because there is no proper coaching either from schools or from the society to think in that direction. If we cannot parlay our success in software services into building global software products, we simply cannot sustain the growth. To see a better India, I think we need to focus on building value in our software sector that leads to the creation of nerds-rich-startup cycle. Hopefully, we are not too far from it.

Saturday, September 30, 2006

ScobleShow!

Scoble's foray into video blogging is felt all across the web - and there is a reason for it. Scoble is known for his content. He has done it with his blog before his Microsoft days, he did at Microsoft with Channel 9 and now at PodTech. When I talked about it in my post regarding "what's next for Scoble" this is exactly what I had in my mind - a TV Show - I even remember asking him about it. There is no doubt that Scoble will be successful in this venture - and it's great to see that he already talks about the things to improve about his show - but there are a couple of things that are missing from the list and here they are:

1. Site is too slow: I'm pretty sure that the PodTech team is already working on it but they need to scale for the upcoming flood of traffic :) - this is a good problem to have but they need to be quick to solve this.

2. Site's design: Not sure how PodTech designers plan to scale the design for Scoble's wide verity of up-coming content but they need to work on basic usability aspects to categorize content (beyond tags) and search (including video search!).

3. Ability to link and host video's from other's blogs: If I'm going to link to Scoble's language war's video talk, I want to be able to post a snippet or even entire video link from my blog (similar to: YouTube or Google Video). Sure I can' link using the permalink but it does not work well for rich media content like ScobleShow!

4. Content: Finally, this is about the content itself. I said before Scoble is known for his content in the past and his speciality lies in covering the content that other's haven't covered before - and I hope he continues that with his ScobleShow. But when I see the list of people that he wants us to pick from all I see folks that are being covered by tons of other channels, magazines and media - so Scoble should probably continue on his original style of talking to the un-sung heroes behind many successes (like he did at Channel 9 @ Microsoft) and introducing them to the world. That's how I at least see ScobleShow is different from other 100's of tech video blogs and channels around.

Having said all that, Scoble is an early indicator of where the the blogging and the media is heading to - way to go Robert, congratulations!

Sunday, July 23, 2006

Enterprise JavaScript Programming

One of the primary tasks of my development team at Microsoft is to develop client-side (web browser) UI frameworks and client-side APIs for Virtual Earth. As a heavy client-centric web application, our product, Windows Live Local, requires a lot of JavaScript based development coupled with server-side development (using popular AJAX and JSON protocols). What I have personally learned over time is that we have to be smart about what functionality we can build on the client-side vs. what functionality we can move to server side; this is a crucial step in the design process since most of the server side development is fairly simple (or straight forward) compared to JavaScript development. You might think I'm crazy when I say this but believe me it's hard to do development in JavaScript - no, I'm not talking about simple client side scripts that you use to make dynamic HTML web sites - but I'm talking about Enterprise JavaScript Programming or simply EJP.

EJP is slightly different from what usually scripting developers do with JavaScript - EJP is different in a way that you need to build stacks of re-usable layers of JavaScript libraries that also allow you to plug in general development blocks such as threading, state-serializers, networking, perf counters, tracers etc - now the only problem is that the language is not mature enough to support these things natively. On contrary any .NET language (or Java) that can be used for server side development support these primitive concepts natively. That is why I say that it is hard to develop in JavaScript.

Now,  I do know that there are some good debuggers out there that can make your life easier when you are working on 100s of thousands of scripting code but it's not clearly enough. Microsoft's Atlas framework is aimed to solve some of these problems by giving some structure and framework to JavaScript programming and it is a good start in EJP arena; but it is going to be a while to get production ready Atlas Framework, so we are on our own for building these core building blocks to build rich web applications and platforms like Virtual Earth.

So the bottom-line is this: "developing in JavaScript may be easy but developing Enterprise Ready Applications in JavaScript is extremely hard". Do you agree?

Now, EJP is what precisely makes my job challenging and fun at Virtual Earth - so if you are ready to do some EJP, send me your resume. :) 

Sunday, July 16, 2006

Moving to a new blogging tool

I have decided to move to a new blogging tool and hence changed a bunch of stuff in the back-end; so if you are looking for my old blog content, please look here.

Cheers!