Once in a while I come across something really inspiring, and this time it was The fun theory – a “thought that something as simple as fun is the easiest way to change people’s behavior for the better.”

Getting people to use the staircase than the escalator

Getting people to throw into the garbage bin

Getting people to iron their clothes

Road Roller Iron

“Ironing clothes can be a boring task and getting the creases removed from your clothes perfectly is next to impossible. Now all you need to do is place your shirt on a customized iron board with sensors. You need to define the task. What is to be ironed? Shirt, trouser etc. The board defines your play area with lights depending on your selection. Creases are highlighted. Place the mini road roller iron on the shirt, sit back and let the fun begin. With a remote control you need to guide the road roller around the highlighted creases. If you move out of your play area, you lose points. If you get all the creases sorted in quick time you gain points.”

Getting children to clean their rooms

So what?

I hope to keep this inspiration in mind whenever I’m building products for others to use.

P.S. Go vote for the best entries before January 15, 2010!

– Work –

Resolutions

Life is what happens to you when you’re making other plans. I got sidetracked by struggling to make a business. But don’t regret it for even a moment. Learned a lot about the real world. Changed from being a meek guy who liked to hide behind email to someone who has now learned to “work the room.”

Business

Reinforced, the hard way, that “you’re not here to write code; you’re here to ship products.” — JWZ

Job

Ironically, after a startup experience, I think I will be a far more cooperative person in a corporate environment, because now I realize the problems and hardships faced in each role in a company.

Psychology

Realizing that it all boils down to psychology. Understand the other person’s psychology and only then you can navigate through life.

Rationality

My new law: “Never ever assume that people have made their decisions rationally.”. People take decisions for all sorts of reasons, just don’t assume that the reason was rationale.

Confidence

Realizing that self-confidence comes from within. Everybody has their own talents. So what if I can’t code like geniuses? When I work with intensity, I can get the job done. Good enough, I think.

– Life –

Decisions

You don’t make decisions, decisions make you.

What Matters

What matters to me is force and family.

Friends

Good times don't last. Bad times don't last.

(Drawing by Jessica Hagy)

Realizing how often you lose friends that you care about. Good friendships last ~2 years only.

Real Troubles

Don’t worry about the future.
Or worry, but know that worrying is as effective
as trying to solve an algebra equation by chewing bubble gum.
The real troubles in your life
are apt to be things that never crossed your worried mind,
the kind that blindside you at 4 pm on some idle Tuesday.

Baz Luhrmann

Pursuit

As humans, we will always be in the pursuit of something.

At the end of the day, all we want is to be missed and to know that we have made a difference.

Let me start with a story I had heard about long ago when I was at Adobe.

There was this guy who had come in for interviews for a technical role. He passed all the tech interviews with flying colors, the team liked his personality and felt he would fit in well, and the manager was all smiles. In the last HR-style round with the group head, he was informed that the team works on products that are completely owned by the Bangalore-based group and that there won’t be any travel to USA. The guy was taken aback. He told the group head “Sir, please let me go to USA for just one day. If I have a USA stamp in my passport, I will get one crore dowry.”

Needless to say, the guy was not offered a job.

I’m sure you can draw your own lessons and observations from this incident, because it will come into context below, about a discussion we’ve been having on Twitter. It all started with @debabrata who read my previous blog post on the magic of foss.in and asked:

why this ‘5 years limit’ applies to Indian software pro ? In other countries people are happy being programmer after 20 years .

I asked the tweeps for their opinions, and it got very interesting.

@cruisemaniac said: society defined age to get married and settle down = ~27 = 22+5 failing which u’re an outcast!
and: also, post that age, ur risk apetite goes down due to family and other commitments…

to which:

@HJ91 said: True. Very true. Outcast is the right word, and its sad. Outcast. Insulting, hurting and pathetic.

Wow, this feeling runs deep.

so I asked:

You mean risk appetite or time commitment? … how does risk appetite relate to interest in coding?

And the replies came pouring in:

@mixdev: One of the reasons why brilliant people end up being (just) tell-me-whatto-do-n-leave-me-alone software engineers

@cruisemaniac: I’d say both… U cant risk a new tech and venture 4 fear of financial security… U want tat cozy safe zone and pay packet.

@cruisemaniac: time is a big costly commodity 4 us… we indians cant afford to spend it at our will with spouses and children at home…

@mallipeddi: It’s very hard to keep getting bigger paychecks yr after yr if you’re a 30 yr old coder. You’re expected to become a mgr/MBA

@abhinav: I believe the reason is our society. We tie success to degrees, and later, more ppl you manage more successful you are.

@abhinav: Where in western societies your idea fails, here it is you who have failed! Our society doesnt appreciate risk takers

@abhinav: Yes, more money, higher status, easy life. And most importantly, more dowry!

@mixdev: Because our goals are set by the society & achieving them also in their control. You get bored faster.

@debabrata: I guess to the great extent our society dictates us what we want to be unlike the west

I found it surprising that the situation why people cannot remain coders in India is almost the same as why people want to become entrepreneurs! It’s like this: The passion for coding will remain only when you’re doing cool and interesting stuff. But big companies (at least in India) want only stability which implies boring tedious jobs with standard languages and libraries. There is no room for experimentation. So the coder will have to move to a smaller company or a startup if he/she wants to continue to like coding (I’m ignoring the case of research laboratories for obvious reasons of numbers).

But moving to a smaller company or startup is, by definition, not encouraged. As @abhinav mentioned, there is societal pressure for more money, higher status, fancier cars and bigger houses. There is nothing wrong with wanting this, but don’t force it on other people! Alas, it is hard to reason regarding this. I remember having a long argument with an uncle of mine, he was, hmm, “strongly” suggesting that I buy a car and I reasoned out why it makes no sense (after all, most peers of mine use the car only for weekend drives, not for everyday commute) but it fell on deaf ears.

So I’m conflicted here: Are there not enough people who are actually interested in coding, or is it that the interested people are being peer-pressurized into “moving up” into managerial roles and hence lose touch with coding? Or are we completely off the mark here?

Update 1: As suggested by Peter, read this entry tited “Stuck in Code” by Ravi Mohan for his tale on this topic.

Update 2: A related article in NYTimes recently titled “In India, Anxiety Over the Slow Pace of Innovation”

Why do I keep going back to foss.in? Because I’m the kind of person who needs extrinsic motivation. That’s why having a good circle of friends with a positive attitude is so important to me. And that’s why the foss.in community is so important to me. Because one must always strive to be in an environment where you are “the dumbest guy in the room”, i.e., be surrounded by really really smart people, so that you are forced to work on raising your own level. That’s how I feel when I’m in the midst of fantastic people such as bluesmoon, t3rmin4t0r, Srinivas Raghavan, and so many others. They are perfectionists who deep-dive into anything they are passionate about, and are invariably good at whatever they focus on.

The Good

Attending foss.in/2009 felt great for me because I took comfort in the fact that there are still people out there who are passionate about code and passionate about software. That is becoming rarer and rarer off late. I think it’s the “5 year limit” that I have observed in batchmates, most of them don’t want to code any more, and have moved on to so many other fields. While that is okay, the problem is that it has become a fashion to dis IT and software field.

Another factor was that everything is in the cloud and everything is a website these days, so does open source as a process matter anymore? First of all, the applications are not open source and even if we have the code (rare situation), you and I can’t fix the application/website unless you host it yourself.

But the foss.in community made me remember the joy of coding and joy of hacking.

Kudos to Team Foss.in for making the only community event and only IT event that is worth attending.
It was fantastic to see how the concept of workouts had just taken off.
And everyone’s been saying that all the keynotes have been fantastic.

In case you are wondering, I’m not the only one who was so enthralled by the event, for example:

fossdotin_janakiramm

fossdotin_ramblinggeek

See Lakshman’s writeup on the same. And so on.

Bottom line? Shut up and hack!

The Bad

Will miss the direction of Atul Chitnis.

What was missing

What I felt was missing is a discussion on the state of the art of software in each field, not just specific PoTDs. And I think this is more of a community perspective rather than the organizers’ perspective — organizers just provide the platform, community provides the content, as Atul keeps reminding us.

For example, consider my pet topic, the state of NoSQL databases – what’s good, what’s not, is it strange or expected that so many of them have come up in the last 1-2 years and all of them are open source (or at least the ones that we hear of). Taking it a step further, how it affects other fields of software. I’ve attempted to ask this before in a session at barcamp on whether webapp frameworks will adapt to NoSQL.

Similarly, what is the future of compilers, will LLVM + clang replace GCC (as @artagnon was speculating)? Will WebKit and V8 take over the world and leave Mozilla + Tracemonkey behind? Why are there so few projects using AGPL? What does it take to get full database dumps out of Wikipedia ? Will open source phones never take off? How does Eucalyptus help have an alternative with EC2? How does appscale help have an alternative to GAE? And so on.

In toto, I think there are three parts to this and I believe only the third part of which is done well already by the community and organizers: (1) what are the different fields and layers of software, (2) what is the state of the art of open source software in those fields, (3) getting people started and involved. I feel that only when we think on these lines, we will achieve Atul’s stated vision of “open source being the mainstream, proprietary software being the special case”*.

Thoughts?

* No flamewars please. I believe that the world will be better off by having all the infrastructure as open source software and having only the business logic / trade secrets as the proprietary part. At each stage of evolution of software, the stack grows higher, and the infrastructure/open source stack can grow higher along with it. For example, Robot Open Source and the Hadoop umbrella.