Friday, February 25, 2011

Why I Love to Use Instant Messaging for Work

Back in one of my computer science courses at university (an easier one, titled Implications of Computing in Society, or something like that), my prof suddenly went on a rant.  He complained about how kids were getting into something as useless as instant messaging.  He gave an anecdote about how his niece was typing away on a computer at home, chatting with her friends.  She was having fun, he was dumbfounded.  He asked her why she was using instant messaging instead of the phone, or (the horror), meeting face to face.  She stared at him, then said, "It's fun!"  He tried to pull his hair out.

We listened to him rant about this story and the stupidity and uselessness of instant messaging for a bit.  Then he asked again.  Why??

So I thought for a bit.  Then I replied.

"Because it enables people to have individual discussions with each other."

He stared at me incredulously.

Prof:  "We're having discussions right now in this lecture hall!  We have an amazing forum of conversations right here!"
Me:  "But I can't have an individual discussion with that guy over there."
Prof:  "Nothing's stopping you!  This is what you're supposed to be doing here!  Discussions!  Learning from each other!"
Me:  "Instant messaging increases the cardinality of discussions."
Prof:  ...  (deer caught in headlights feeling; light bulb moment); "And just WHAT is cardinality!"
Me:  /gotcha! (small victory, but sweet)

In SQL-style databases (like Oracle, MS SQL Server, MySQL, etc), cardinality refers to the basic mechanism of how data relates to each other.  Basically, data can be structured to have 1-to-many, many-to-many, or 1-to-1 relationships.  For example, a data object representing a bookshelf could have a 1-to-many relationship with all the books it holds: 1 bookshelf has many books, but the reverse is not the same because each book sits on only 1 bookshelf (1 physical book cannot be in 2 places at once).  However, such exclusivity does not exist for word usage.  Each book contains many words, but likewise, each of those words are also probably contained in many books; that's a many-to-many relationship.  Finally, 1-to-1 relationships can be seen in each book's ISBN number.  Each book has only 1 ISBN number, but each ISBN number also belongs to only 1 book.  If you model your data well, then your database will be an amazing foundation for organizing and tracking anything.  Of course, it gets a bit more complicated when you have multiple copies of the same book, meaning that there will then be a 1-to-many relationship between ISBN numbers and books (i.e. each ISBN number will be used by multiple physical books, but each physical book will have only 1 ISBN number).  This is why libraries will create their own bar codes for their books instead of using the ISBN bar codes.  It can get complicated.

My prof knew exactly what cardinality was.  He was the exact same prof who originally taught me in my discrete mathematics class in my very 1st semester.  He was a fun guy.
I suddenly thought about this verbal exchange a few months ago when I came to the realization that I had been using IM regularly for work-related purposes for several years now.  Instant Messaging is no longer just the realm of friends chatting with each other.  It actually has a productivity quotient that is quite relevant in the workplace, as most communication-related technologies do.  Some may take it to an extreme, of course, which may or may not be good for your work culture.
Zuckerberg preferred instant messaging, using AOL Instant Messenger (AIM).  One employee a few years older who sat about six feet from Zuckerberg in those days received an IM from the boss.  "Hey," it read.  It was the first time he'd gotten such a message.  So, seeking to be convivial, this guy stood up from his chair, turned to Zuckerberg, and said out loud in a friendly voice "Hey!"  Zuckerberg continued staring blankly at his screen.  It wasn't even clear if he had heard.  If you wanted to communicate, you IM'd.
from Chapter 6, The Facebook Effect, by David Kirkpatrick

In my experience, instant messaging has both advantages and disadvantages (what technology doesn't), but more advantages than disadvantages.  I aim to discuss all that here.

Fast
This paragraph does not discuss the topic you thought it would.  IM is fast not because IM is instant.  It's fast because people can read at a very fast speed.  According to Wikipedia (a good a source as any for this particular topic), the average American adult can read 250 to 300 words per minute.  I imagine that the statistic must be fairly similar for equally or more educated folks of other nations.  Fair assumption?  Now while the article also claims that adults can listen at a speed of up to 300 words per minute, how many people do you know that talk that fast?  For reference sake, the article claims that auctioneers speak at 250 words per minute.  So in voice-based conversations, you're limited by your speaking speed.  In text-based conversations, you're limited by your typing speed, but many people can actually type pretty fast in today's knowledge workforce, though usually slower than they speak.  However, this is compensated by the fact that you can type while the other person is reading your first message, and even more while they are typing a response.  IM lends itself to allowing you to break up your messages into little pieces so that this staggered manner of reading and feedback can take place more efficiently.  Throw in IM-speak and acronyms, and you can actually get really fast conversations.  Or if you prefer, you can allow your reading speed to simply give you more time to comprehend what you just read.  Difficult to constantly pause like that during a spoken conversation.

Lightweight
This is the topic you expected.  Nothing much to say here.  Instant messages are instant.  Your IM list is usually open all the time.  People can instantly send messages, instantly receive, and instantly reply.  It`s perfect for quick questions.  You just find the name of the person you need in your list, double click, type, and send away.  Much easier than looking up the phone number of that same person and punching in numbers (unless you use your cell).  Or writing a new email through your email client.  So that's fast, but more important, it's easy and has little activity overhead.  You're already touching your keyboard and mouse anyway, so it's easy to fit it into the flow of what you're already doing.  Just remember to stretch your wrists now and then to avoid carpal tunnel syndrome.

Robust
IM can scale up.  Need to have a whole hour-long meeting with multiple folks involved?  IM can do that.  Need to share files with each other to make points, explain details, discuss?  IM can do that.  Need to keep a record of what was said for later reference and meeting minutes?  IM can do that.  Want people to leave you alone?  IM can let you appear offline or set to a Do Not Disturb mode where you can't receive messages.  Need secure solutions?  There are IM options out there that will let you run private IM platforms inside your secure corporate network without ever needing to touch the Internet.  Need to share what's happening on your computer screen so everyone else can explain your design, plan, or problem?  IM can do that these days.  Need to do video or voice just because for whatever reason, you can't make your point in text?  Heck, IM can do that too, though I never find it necessary.

Asynchronous
I hinted at this earlier.  The nature of IM allows you to make a judgment about each message and respond at your own pace.  When you receive someone's message you can decide if it's important and needs your immediate attention.  If not, you can ask them to wait and you'll respond later (or just ignore the message).  You can't make that kind of snap judgment as easily when receiving phone calls.  How cumbersome is it to pick up the phone, listen to what people have to say, and then ask them to call you back in 30 minutes?  Except in 30 minutes, you're not ready to talk with them, so you have to ask them to call again.  Email has this asynchronous attribute, but you don't want to fill up people's inboxes with such petty chat.  It's difficult to maintain the mountain of messages that exists in one's inbox, so you want to keep the signal-to-noise ratio fairly high; email's most effective if you use it mainly for official and important communication and decisions.  But I easily receive more than a hundred emails a day sometimes.  I better not be expected to immediately sift through every single email to separate the signal from the noise.

Cardinality
Because you don't need to respond to messages instantaneously, this allows you to easily do something that you can't do with other communication mediums: have conversations with multiple people all at the same time.  Imagine you're having a conversation with Person A.  Person B suddenly messages you.  While you're waiting for Person A to respond to your latest comment, you answer person B.  While you are speaking with Person B, Person C messages you.  You see that Person C's message is just asking about watching the hockey game later, so you focus on speaking with Person A and Person B.  When there's a break in the flow of conversation, you switch to Person C and decide what should be eaten for dinner.  And it's all easy to do because the chat windows keep track of what you're all saying.  Try having 3 simultaneous conversations with 3 different people via phone.  First, you'd need 3 phones; constantly putting people on hold and switching back and forth would not cut it.  Secondly, who likes staying on the line to wait for you to respond to other people all throughout the conversation?  Email?  Yeah, you could do it through email because it's also asynchronous.  But each email thread wouldn't be self-contained within its own window, so you'd just clutter up your inbox and kill your ability to manage it; that's especially true when your conversation gets to about 100 sentences back and forth.  Ultimately, it is just so amazing to not know the answer to a question in a meeting, message someone who does know, and then explain the answer within minutes of the question asked, if not seconds.

Virtual Teams
IM isn't the only way to work with virtual teams, especially if team members are located around the globe.  But it makes things a heck of a lot easier.  I hope the reasons are obvious.  It's easier (and in most cases, cheaper) to send an instant message to someone on the other side of the world than it is to phone them, especially if it's for something quick.

Leveling the Language Field
This is really important if you have international teammates.  Not everyone can speak the same language.  However, I have found that many international folk can read and write a really good amount of English.  And even with the ones who can speak English, sometimes the accent is so thick that you can't understand what they're saying.  China, Korea, India, Russia, etc, they all occasionally have this problem.  But written English.  No problems with accents there.  I'm often in meetings where people ask someone to just type the information or question into the group chat window instead of speaking, and then suddenly everyone understands the issue.  In the interests of clarity and speed with international teams, IM is amazingly useful.  Maybe occasionally you'll find some poor grammar and vocabulary, but it wouldn't be anything that would kill the conversation.  If someone's English really isn't good enough to have even a rough conversation, you have bigger problems.  Perhaps you should have hired some translators or learned the other language from the beginning.  Or maybe you shouldn't be working with those people if you can't communicate with them.


Now there are obviously detriments to IM as well.  Some people aren't as good communicating via text as they are in person, you lose the facial expressions, and some people have a really poor typing speed.  But in my experience so far, I find that the advantages have far outweighed the disadvantages.  As well, IM tends to create its own replacement devices for everything that it doesn't have.  For example, IM-speak and emoticons allow people to express humour and laughter.  ( LOL, ic :D )  Furthermore, if people were absolutely unable to communicate emotion through text, then everything I learned regarding poetry and prose in high school is a lie.

Give IM a try, you might find it worthwhile. :)

Monday, February 21, 2011

Time for a song!

Just saying.  And I think my next post will be about firefighting.

Anything But Ordinary
Avril Lavigne

Sometimes I get so weird
I even freak myself out
I laugh myself to sleep
It's my lullaby
Sometimes I drive so fast
Just to feel the danger
I wanna scream
It makes me feel alive

Is it enough to love?
Is it enough to breathe?
Somebody rip my heart out
And leave me here to bleed
Is it enough to die?
Somebody save my life
I'd rather be anything but ordinary please

To walk within the lines
Would make my life so boring
I want to know that I 
Have been to the extreme
So knock me off my feet
Come on now give it to me
Anything to make me feel alive

Is it enough to love?
Is it enough to breathe?
Somebody rip my heart out
And leave me here to bleed
Is it enough to die?
Somebody save my life
I'd rather be anything but ordinary please.
I'd rather be anything but ordinary please.

Let down your defences
Use no common sense
If you look you will see 
that this world is a beautiful 
accident, turbulent, succulent 
opulent permanent, no way
I wanna taste it 
Don't wanna waste it away

Sometimes I get so weird
I even freak myself out
I laugh myself to sleep
It's my lullaby

Is it enough?
Is it enough?
Is it enough to breathe?
Somebody rip my heart out
And leave me here to bleed
Is it enough to die?
Somebody save my life
I'd rather be anything but ordinary please

Is it enough?
Is it enough to die?
Somebody save my life
I'd rather be anything but ordinary please.
Oh
I'd rather be anything but ordinary please.

Tuesday, February 15, 2011

Nokia Plan X

Fun little discussion at HN regarding an initiative by some young Nokia shareholders/employees/something to oust Elop as CEO and get Nokia to do some internal innovation (i.e. take a page from Apple's book on how Apple came to dominate the mobile phone market).
  • MeeGo will be Nokia’s primary smartphone platform. This is where the bulk of the innovation will happen. If MeeGo does not bring great devices to market on an accelerated pace, this strategy will not work. MeeGo smartphones and tablet devices will offer overwhelmingly superior experiences and applications than iOS and Android based competitor products. To reduce time to market, all MeeGo R&D will be done in-house and in a single geographical location. If necessary, suspend cooperation with Intel and concentrate resources on innovation and releasing new Nokia MeeGo devices to market faster.
Cute.  Basically, if Plan A is to ditch all internal efforts and go with Windows Phone 7, then Plan B is to revert to whatever was happening before Plan A?  So Plan B is to revert to... Plan Zero?  Plan "In the Beginning"?  Basically, they're saying, "Look, it'll be different this time.  Just give us some time."  Heh.  But they've had years and couldn't get it together.  Why trust them now?
  • Increase the lifespan of Symbian to a minimum of 5 years. Reap the profits of the existing market share and consumer preference that Symbian already enjoys in Europe and Asia.  Increasingly use Symbian to target mid-tier and feature phone segments. Up-sell existing Symbian users to MeeGo. Focus Symbian efforts in specific countries in Europe, Asia and Latin America where Nokia and Symbian enjoy a high level of consumer goodwill and can be sold at healthy margins.
With Android devices quickly eating up market share, especially as it gets applied towards the lower end of the market and cheaper devices, there is no way Symbian can last 5 years on its current code base.  For one thing, technology changes too quickly over even just 2 years.
  • Developer strategy based on Qt with primary focus on MeeGo, but providing a credible developer story for Symbian. Enable developers to make money by targeting the huge Symbian installed based while simultaneously offering their best user experience on the MeeGo platform. All this with a common developer ecosystem that allows writing and releasing software for both Meego and Symbian with minimal interoperability work.
Can you say fragmentation?  That's a huge lack of focus.  Optimists might call this market segmentation.  I'd say it's a waste of resources and a lack of leadership.

This Nokia Plan B thing has spawned some funny satires, especially given Nokia's roots.

Nokia Plan C

Nokia Plan D

Nokia Plan E

I see a lot of commentary across the web from both pundits and the average geek that while Nokia is great at hardware, they suck at software.  They've demonstrated that for a few years now.  Anecdotes from software developers are especially interesting.  Check out this particular one on the HN thread.  But more telling is the market.  Consumers voted with their feet and their wallets.  Nokia lost its ability to stay in front of its competitors: it couldn't deliver MeeGo and Symbian couldn't hold the fort.  Didn't these guys get the memo?  Elop's clearl shown where he stands, and it seems most commentators across the board agree with him.

I noted in my other post that it was interesting to see that Apple was a similar position in the past.  However, they were able to pull themselves out of their funk and became an innovation leader again.  However, let's clarify that the innovation didn't start within.  Apple acquired NeXT, which happened to be an operating system company founded by Steve Jobs after Jobs was excommunicated from Apple.  NeXT became the foundation for Apple's future Mac computers.  Apple could just as easily have bought another OS for the right price, and was actually in negotiations to purchase BeOS instead (also founded by a former Apple exec; gotta keep it in the family, huh?).  Steve Jobs having the effect that he did in later years was an unexpected bonus.  He didn't even become CEO again until years later.

So let's get it clear.  When Apple was in dire straits, even Apple didn't innovate from within.  They accessed 3rd-party innovation; it's only after they were on a solid base again that they looked to diversify themselves into new worlds with the iPod and then the iPhone.  The key difference here is that Nokia chose to partner with a software giant to access innovation, while Apple chose to acquire their innovation.  Whether Nokia made the right decision remains to be seen.  But given that they've proven they suck at managing and developing software, acquiring software innovation could quite possibly have ended up in failure (let's see if HP really can reap benefits from the Palm acquisition).  On the other hand, Microsoft has a pretty good record of getting things finally right on the 3rd or 4th try.  The time is ripe for Windows Phone 7 to finally shine, and a lot of reviews have been quite good.  Nokia can stick to the stuff where they excel, which is the hardware.

Now why didn't Nokia just go Android like everyone else?  When you're in dire straits, you go for the Hail Mary play.  You go against the norm to try to overtake the pack, not try to follow the pack.  You think Nokia would be able to out-execute the likes of HTC, Samsung, LG, and Motorola in the Android world, especially with the head start those companies have?  This is it.  You're at your own 10 yard line, 4th down, 30 seconds left in the game, other team is leading by 4 points.  You go for the Hail Mary pass in that situation.  Elop gets it. He knows he's standing on a burning platform.  And it doesn't hurt that Microsoft looks like it will give Nokia a ton of cash to make it worth their while.

Pity the angry investors who can't see the long-term trends, nor understand the technology issues.  They're pointing fingers at the wrong guy.

Update:  OK, this is getting out of hand.  :)

Saturday, February 12, 2011

Food For Thought - Insustainability in China

I was helping a friend today prepare for her IELTS exam.  It's an international standard test for measuring one's level of English, valued by schools and employers.  I found out her monthly pay is 3000 RMB.  This is at one of China's top high tech employers, a globally respected brand.  She's been working there for 1 year after graduating from university.  She speaks and writes four languages: Mandarin, Cantonese, Japanese, and English.

Later, I went to the bank and paid my monthly apartment rent.  It costs me 3000 RMB each month.  I'm not renting a particularly impressive apartment.  It's perhaps about 40 square metres.  But it's clean and conveniently close to work, which is why I like it.  But it's definitely not impressive, at least not by the standards of most people I know back home.  It has a bedroom, den, kitchen, bathroom, small living room, and a small balcony (for hanging clothes to dry after they've been washed).

Think about that for a second.  A 2nd-year multi-lingual employee working for one of the top companies in China makes as much money as I pay for a 1-bedroom apartment.  She commented that her mom wants her to buy a home eventually, but she thinks she'd never be able to own a home.  She said this matter-of-factly, not sadly.  She's a pretty bubbly person.  Maybe she's only young and naive.  I doubt it.

But not everyone can be so bubbly and carefree.  A lot of people would lose hope and confidence.  There are over 1.3 billion people in China.  Millions and millions of university students and graduates entering and exiting the education system.  Their ceiling salary rate would be enough to barely pay the rent when they enter the workforce.  You think Egypt had it bad?  Lots of young, educated people without jobs?  Algeria's going down right now?  This can't end well.  If the Chinese government can somehow pull this off, it would be a miracle.  I am more and more convinced each day that the Chinese government is facing the most difficult societal issues of our world and time, simply due to scale.

Wednesday, February 09, 2011

Baby, light my fire

I had written some quick thoughts before about doubts I had regarding Nokia's new leadership.  Then they stated some big words, but words were only words.

Well, here's the real call to arms:
How did we get to this point? Why did we fall behind when the world around us evolved?

This is what I have been trying to understand. I believe at least some of it has been due to our attitude inside Nokia. We poured gasoline on our own burning platform. I believe we have lacked accountability and leadership to align and direct the company through these disruptive times. We had a series of misses. We haven't been delivering innovation fast enough. We're not collaborating internally.

Nokia, our platform is burning.

It's interesting to note that Apple was at a similar crossroads in the past.  Steve Jobs came back, they reinvented themselves, and look where Apple is now.  World's most successful tech company, if you value numbers.  Can Nokia do the same?  However, speculation is rampant that their innovation won't be internal, and that they'll switch to a 3rd-party platform instead.  It'll be interesting to watch.

Yeah, yeah, yeah, I'll publish those blog posts some day soon.  :)

Update:  Fantastic analysis on the memo.

Sunday, February 06, 2011

Why I Like Change

OK, maybe I'll never get around to publishing those 6 other blog posts I'm currently writing.  Look at the trend.  Bleh, I'll get there.  One day.

In the meantime, I direct you to this wonderful post by Rands.  Read that and tell me that isn't what you experience every few years.  :)  This is quite possibly the biggest reason why it's so dang hard to be consistently good.  After a while, you get bored and lose your sense of purpose, and you wonder, "Just what am I doing with my life?"  Which is also perhaps exactly why your sense of purpose and raison d'etre should not come from your work, even though work will consume a good portion of your life.

Sit back and reflect on what gives you purpose.  Whenever I got stuck in life, I never felt like I could really depend on family or friends to pull me out of whatever pit in which I was sinking.  I just never felt like they "got me", with the exception of a select few.  I could only pray to God, struggle forward, and go for long walks at night.  There was this big huge tree near my home, and I'd go stand by it and just stare upward.

Somehow seeing how small I was compared to that tree, and then seeing how small that tree was in comparison with the universe that shone above, made me realize that no matter what happened, it didn't matter too much.  It was then that I could start to laugh at myself and just move forward.  Big results, small results, successes, failures, just have fun with it and be at peace with it.  Life is too short to be stressed or depressed about insignificant things.  But every now and then, you really do want a significant big change, just as Rands is describing.

OK, your back's up against the wall and you can't live another day without emotionally vomiting?  Then go do something, have fun with it, don't just sit there complaining.  Serendipity can be wonderful for that.  Unfortunate for you if you (or your significant other) can't stomach the risk.

When I Have Fears that I May Cease to Be
By John Keats

When I have fears that I may cease to be
Before my pen has gleaned my teeming brain,
Before high-pil├Ęd books, in charact'ry,
Hold like rich garners the full-ripened grain;
When I behold, upon the night's starred face,
Huge cloudy symbols of a high romance,
And think that I may never live to trace,
Their shadows, with the magic hand of chance;
And when I feel, fair creature of an hour
That I shall never look upon thee more,
Never have relish in the faery power
Of unreflecting love;--then on the shore
Of the wide world I stand alone, and think,
Till Love and Fame to nothingness do sink.