Saturday, June 30, 2007

Situations Ripe for Mistakes

We all make mistakes from time to time - some of us more than we would like. Usually, when we look back at some of our past mistakes, we wonder how we could have made them in the first place. Our decisions that led to the mistakes were not logical and could have done with better analysis. One reason is that many decisions are made in situations where we are unable to think clearly. Here are some examples:

  1. Fatigue: In my opinion, this is perhaps the #1 factor behind wrong decisions. The common kind of fatigue is where you are really tired after a long day of work and meetings. Towards the end of the day, when your brain has effectively stopped working, someone casually asks you to make a choice or decision. Sometimes, you don't even recognize it as an important decision. You don't analyze the situation properly or you give vague instructions. When you are really tired, you just want any new problem or the messenger to go away.

    When you have a situation where you are pressed for time to make a decision, first, you need to recognize it as such. Then ask the person if they really need a decision at that moment or can it wait for later. If the decision has to be made soon, first take a few moments to calm down from the exertions of the day, clear any distractions and then focus on the problem. If you cannot do that, then make a partial decision that can hold the fort until you feel better.

  2. Mob Thinking: When there is a lot of noise and hype for or against something, it is easy to fall in with the wishes of the crowd. Usually, that is the wrong move. Purchases made, technology chosen or process adopted just because something is in fashion can backfire. When you see someone arguing passionately for something, the first thing you should do is find research that argues for the opposite. Sometimes, you may still go ahead with the popular choice, but at least you are now aware of the pitfalls.

    Product sites like Amazon have customer reviews where you can see both positive and negative reviews. I have found it useful when I really like a product to read the negative reviews. You can find somebody complaining about a missing feature or some bug. Once in a while, you may see a glaring problem that may help you avoid a bad purchase. Beware of reviews where the product ((like movie or electronic gadget) has not yet launched, because you don't have enough reviewers to provide accurate feedback.

  3. Fear: When people are afraid of losing something, they fail to act or make decisions. Fear of a bad economy could cause employers to conserve money instead of making valuable investments. When people are afraid of losing jobs, they fear any change in equipment or processes that could make them redundant. When people fear punishment, they fail to escalate problems that then become huge and unfixable.

    If you are in such a situation where your decisions are influenced by fear, think about how you can fix the situation to reduce the fear as quickly as possible. For example, taking insurance and creating and funding an account for any emergencies in the family can help reduce the fear of not having money in a difficult situation. Constantly improving one's skills can reduce the fear of unemployment.

Many internal emotions and external factors can influence our decisions more than we admit. Although we would like to think logically and unemotionally, various situations can prevent that from happening. The best we can do is recognizing when we are being forced to make an important decision under non-ideal circumstances or postpone a necessary action because of an irrelevant factor. Being self-aware will help.

Technorati tags: , , ,

Sunday, June 24, 2007

Evergreen Creations

About 13 years ago, a few movie enthusiasts including me gathered after class hours outside the Great Hall in CMS College, set up a TV and VCR and started playing great movie hits. Among them was Charlie Chaplin's "City Lights". I remember being extremely touched by the final scene between Chaplin and the flower girl. Today, I watched it again and, even though I knew the ending, I had the same lump-in-the-throat feeling as I watched that final scene.

What a great film! Made as a silent movie three-quarters of a century ago in black-and-white, it still has the capability to arouse strong emotions. That is the power of great creations. They last long after the creator has passed away and are immortal. It is not just movies - great writings, paintings, music, architecture, philosophies, etc. created decades and even centuries ago have lasted and influenced human culture and way of life.

Most of us live in the present and are, in one form or another, news junkies. We want to read or talk about what is happening right now - things that affect our lives or careers. And there is a huge market to cater to this need. The whole newspaper and TV news industries exist because they can serve our need for information now. On the Internet, news and product bloggers attract the largest number of visitors every day.

But beyond our instant news gratification needs, we also crave for the immortal stuff. These are the ones that have lasting value. They give greater meaning to our lives, enriching it with ideas, dreams and experiences. And it is not just the inanimate things like books and movies. Think about the people who were in your life. Which teachers do you remember? Which friends would you stay up the whole night talking to?

When I look back, the teachers I remember fondly are the ones who taught us to dream and hope. We didn't even know what we wanted to achieve, but they gave us the confidence that we could achieve anything we tried. The good ones transferred their passion to us. They made us love what we were learning. Teaching for them was not about exams or grades - it was something much more and we could feel it.

The friends that I respect are the ones who had this contagious disease of love for their life and work. My memories? My long discussions with my friend Chase Joseph about politics, economics and history. My old Hit Software gang at college (Jeesmon & Jayan) going crazy over class projects. My present and former colleagues teaching and encouraging me. The Internet friends who I have never met or spoken to - their emails are so full of enthusiasm and bubbling with life that I wish I were 20 years old again.

I was recently again reminded of the idealism of youth when I read this blog by Vipul Naik. He recently posted two good posts about how people are easily influenced and manipulated by false criteria of success. He has amazing maturity for a person of his age. When I read his posts, the thing that runs through my mind is that his post would probably be just as valid and meaningful 40 years from now as it is today. That is immortality.

Of course, there are many A-list bloggers who create such content - notably Joel SpolskySeth Godin, Paul Graham, Guy Kawasaki and, recently, Marc Andreessen. But Vipul's blog is an illustration of how people who are not famous can still create content that is highly relevant even as time passes. In sharp contrast, a popular blogger like Robert Scoble has mostly content that has high impact today, but loses its value as each day goes by.

The question is not whether you should be creating "immortal" content. In my opinion, doing something for building your legacy is egotistic and conceited. It also has less chance of succeeding because your behavior will lean towards pleasing people today. No, the best work comes when you don't even think about your legacy.

It comes when you really love and understand what you are doing. It comes when you genuinely believe that others would be just as happy as you are if they would do the same things you are doing. It comes when there is a twinkle in your eyes when you talk about your work. It comes when you want to share the knowledge you have about your work, because it is so much exciting.

Roger Ebert hit the nail on the head when he said,

"If you take a step back and really think about James Bond, you will realize that he is mad. So is Batman. So is the Phantom ... They live in fantasy worlds of their own creation, and bring a certain style to their delusions."

To achieve truly great things, you have to be a little crazy.

Saturday, June 23, 2007

The Martyr Complex

One of the most destructive behaviors in any relationship is the existence of someone with a martyr complex. As the definition from Wikipedia explains, a "person who has a 'martyr complex' desires the feeling of being a martyr for its own sake, seeking out suffering or persecution because it feeds a psychological need." The characteristics of such persons include

  • They have the need to be a victim and complain always and relentlessly.
  • They take little initiative in trying to fixing any complaint.
  • If any problem is solved, but in a different way than what they proposed, the problem still exists, as far as they are concerned.
  • If any problem is solved according to their solution, they will find another problem to complain about.
  • If any problem is solved, it is because they complained about it.
  • They complain about problems that do not concern them in the least.
  • They do not appreciate any good things being done.
  • They lie and twist facts to prove their point.
  • They selectively forget, ignore or avoid any facts that may conflict with their point.
  • They resort to name-calling when everything else fails.

Politicians are a master of this behavior. For example, take your classic demagogue who rails against minority religions and cultures (take your pick from any country in the world). Usually, the citizens belonging to the primary religion would be more powerful, wealthy and influential than the minorities. Yet you will hear arguments that minorities are given special treatment and the country will be overrun. This results in horrible crimes like the Holocaust, Apartheid, Rwanda Massacre, etc.

Personal relationships are not immune to this. A standard case is that of the troubled teenager who blames his parents for everything going on in his life. And nothing that the parents can do can change this attitude. It doesn't matter how hard the parents are working to buy all the things he wants. He blames them for not spending time with him. Now, if the parents listen to him and re-arrange their schedule, he accuses them of wanting something from him. Or tells them that it is already too late and they are wasting their time.

What can the parents do? Most of them desperately crave the same love and affection when the teenager was younger. Nothing they do seems to reduce the anger of the teenager. Anything they do is twisted and thrown back into their faces. I have seen many parents give up at times and get really angry. This does not help, of course, but now the parents start exhibiting irrational behavior. This includes not listening to any complaints and insulting the children whenever they get a chance.

Now, both sides are officially at war! Everyone is miserable, but they are also happy in a way, because now each side can justify what they are doing by pointing to the other. "They did this, so I am doing this." "I tried my best, but nothing worked." "He can do what he wants, but I am prepared for anything." "It is only a matter of time, and then I will be free and happy."

To generalize, here are the dysfunctional dynamics that happen when someone starts developing the martyr complex:

  1. Other people take time to recognize this, but they do in time. They treat the person as "the Boy Who Cried Wolf". The person loses all credibility. People start ignoring all their concerns, even if some are actually important, because they cannot make out what is truly legitimate.
  2. Other people can behave just as irrational. Since a martyr usually boasts that he was responsible for any change, people avoid doing anything that can be used by the martyr for feeding his ego. Sometimes the very fact that the idea came from a martyr is cause enough to abandon the idea. A martyr creates many enemies directly and indirectly.
  3. Since the martyr picks fights with anyone who disagrees with her, her friends have learnt to nod their heads at whatever she says, reinforcing her opinions. However, friends realize that too much close association with that person can be harmful. They behave like double agents by slandering the martyr in private and further lowering her image. Communicating any issue starts with, "Don't think I am complaining like John Smith, but..."
  4. A martyr can spoil the well for others by flaunting rules and opposing authority, not for any good reason, but just because of their perceived issues. When this happens, other people start putting up new rules or exhibit behaviors to prevent such incidents in the future. Flexible policies can become inflexible, negatively affecting everyone.
  5. The martyr demands attention, but the opposite can happen with people leaving them alone and ignoring them. Take the example of some elderly people who crib all the time. They may actually be suffering from pain or disease. But, their relatives and caregivers cannot take their complaining any longer and abandon them.

Over time, the relationship can plumb the depths of hell. Resolve the situation as best as you can. In a future post, I will discuss strategies for handling martyrs, especially the need to differentiate between levels of martyrdom.

Writing an Essay

Many of us have had experiences with writing essays during our English language classes and exams, and later during admission or qualification tests like the GMAT. In those situations, the topic is usually provided for us and then we have to write the essay within a certain period of time. Typically, one prepares a formula for managing the test and, with practice, the formula has a high percentage of success.

It is a little different writing an essay outside an academic situation. First, why write an essay in the first place? After all, there are definitely many other forms of communication - conversations, emails, etc. The reason why essays are still written is that the essay form provides a way to analyze a particular situation in a structured way. You can consider the subject in depth, allowing you to make informed judgments.

For example, if I just wanted to express my opinion about the best Presidential candidate, I could simply write a 1-line email. But if I want to analyze why the candidate is the best among all candidates by comparing their merits or demerits, the essay provides a much better avenue. Another example: If a manager faces an organizational problem, writing a detailed article helps in understanding the issue better by evaluating various alternatives.

Another challenge with writing essays is finding the right subject to talk about. The truth is that getting ideas is not the problem. Every day is filled with different happenings, each of which can serve as the inspiration for another article. However, every idea is not born equal. Some topics may be too simple to lend themselves to a detailed analysis. Others may be too complex that even a book may not do them proper justice. Some topics, while interesting, may not fit into the general category of things you want to write about.

All said and done, you will always have something to write about. The problem then becomes: when do you start writing? If you are just doing reporting of an event or happening, it is easy to dish up a few sentences. However, when you are doing analysis, it helps to wait until you can see the event in proper perspective. For example, if a company launches a new product, the event will be surrounded by marketing hype, which can confuse the message. You can do a better analysis by waiting until the noise abates and you are less influenced by the news reporters and public relations personnel.

Unlike a class room, writing an essay is not a time-bound activity. If you wish, you can write an essay in an hour and publish it immediately. Or you can keep writing for days and never get to completion. Most articles fall somewhere between the two extremes. A reasonably good essay takes several hours from start to completion. It is difficult to finish most essays in one sitting. 

Here is how a typical essay is written: You start putting together a few sentences based on an idea and then mysteriously develop writer's block. You take a break, find your rhythm again and write some more. You cross out a few things you had previously written and rewrite other sentences. Fix some scattered grammar mistakes. Clarify something using a different word. You get tired, go to sleep. Wake up and realize that your whole approach was wrong and rewrite it from scratch. So on until you "finish" it. You show it to someone. They don't understand what you are talking about. Back to Square One!

There is also another less-understood problem: There is an elusive perfect size for an essay based on the subject it is discussing. Sometimes when you re-read your article after taking a break, you may find that removing 25% of the article makes no difference to the point you are trying to make. However, at other times, you realize that you must make a reference to a particular person or incident. Otherwise the article feels hollow.

Taking breaks can serve in thinking about the length and other aspects of the article. Ideas, metaphors and examples are the key components of an essay. What do you include? How do you preserve the core theme and idea in your article while considering different nuances and contradictions? What do you leave out and how do you decide? This sort of thinking is best done away from your writing desk or computer keyboard.

Don't misinterpret breaks as interruptions. By breaks, I mean a voluntary decision on your part to stop writing and do something else. An interruption is when someone or something breaks your flow of thought. You need solitude and full attention to writing a good essay. Interruptions can disrupt creativity just when you are doing your best work. Find a time and place where you can do long stretches of uninterrupted work. Some people do their best creative work when others are asleep because that is when they have taken care of other chores and distractions. Only tiredness can stop them from going on.

I believe that logical flow is more important than structure and form. But you can attract more people to your essays through judicious use of formatting and graphics. The ability to scan an article is a big concern. Using headings, bold text, smaller paragraphs, lists, etc. can make it easier for more people to read the essay and understand its meaning. But don't do it artificially. For example, using a bulleted list has the potential to muddy an article's primary message by making several different points.

Finally, how do you end an essay? Sometimes, you can write an article to build up to a great logical conclusion. But usually what happens is that you have been talking about the conclusion for the last several paragraphs and explaining it with examples. You run out of steam and you settle for a tame ending like a summary paragraph. In my experience, that is the rule in most articles, not the exception. Readers can feel short-changed, but if the rest of your article was good, they will probably forgive you.

The main thing about an essay is that there are no rules, except that you write it for yourself. You should be satisfied that you gave the essay your best shot and you analyzed the subject the best you could. Intellectual honesty is critical. Be sincere in examining all sides of the situation. At the same time, leave things out that have nothing to do with the subject.

In short, the author in you writes the essay for the reader in you. The former should make the best effort to keep the latter contented.

Technorati tags: , ,

Tuesday, June 19, 2007

Mashup Tools

I recently applied for and received (separate) invitations from Microsoft and Google to try out Microsoft Popfly and Google Mashup Editor. Both of these products are intended for developers who want to create feed-based mashups. And both are competing products to Yahoo! Pipes - note my original and follow-up reviews. As I mentioned in my reviews, I use two Yahoo! pipes - one containing the feeds of all my friends and the other containing all relevant Google blogs (See snapshot below) - this helps me streamline the subscriptions list in Google Reader.



Microsoft Popfly was serious under-whelming. The graphics were supposed to be cool, but I could hardly get anything working. In fact, the dark and red combination of the graphics made it difficult to navigate the interface. It was also slow. And it didn't work the way I expected it to with some feeds I tried out. In fact, some feeds were just not processed. There was a Code View, but that also was very confusing.


Google Mashup Editor was much better. There is an initial learning curve as the interface is not graphical at all, but once you get over that, it becomes really easy. You have 3 tabs, the first being a code editor where you have to use an XML language to work with your feeds. There is a "Feed Browser" tab that shows you the raw feeds. Finally you have a Sandbox where you can see the final formatted results.



On the right side, there is a well-organized tab that contains your projects and sample projects. You can load a sample project and save it as your own. There is a Help link that leads to some very good and simple documentation. Google has done a really good job here, unlike Yahoo! which made a terrible mess of documentation when it launched.

So how would I compare Yahoo! Pipes with these new products?

  • Yahoo! Pipes has an excellent user interface. It is very intuitive and easy to get up and running. It works excellently. In the last 4 months, I don't recall even a single problem. The place where they may get hurt in the future is a lack of good scripting capability that can extend the functionality. But so far, so good.


  • Google Mashup Editor seems to have the greatest potential. It is excellent for a first release. It has all the basic elements in place - a simple syntax, an easy way to test and reasonably fast. I am not even going to complain much about the lack of a graphical user interface, because a developer can be easily productive even without it.


  • Microsoft Popfly can be completely eliminated. They don't have the user interface correct. They don't have a good template language. And finally, it doesn't work, at least in my experience. In fact, it can be buggy and hang at times.

Sunday, June 17, 2007

Inviting Competition

There was an interesting article in the news recently about Google taking legal action against Vista search. A few months ago, I predicted that Vista search may pose some problems for desktop search products, but I didn't think it would come to this. There is more to the matter than just the search feature, because Google alleges that Google Desktop Search seems to slowdown on Vista.

That may very well be true. I have faced several problems with Google products on Windows Vista. Google Toolbar caused Internet Explorer to crash unexpectedly. Google Desktop was preventing Microsoft Outlook from opening and I had to uninstall it (thus preventing me from validating the slowdown problem). Google Gears was also creating issues - it caused the useful Google Reader shortcuts in IE to stop working.

All this is less likely to be a Microsoft conspiracy than inadequate experience or knowledge of getting applications working on Windows Vista. If you are working on applications that run fine on Windows XP, it will really serve you well to test them on Windows Vista - both 32-bit and 64-bit. I expect most software vendors to resolve Vista problems by the end of the year, but until then, there will be problems.

But back to Google's suit. I am reminded about a well-known boxing joke. A boxer is bragging about what he is going to do to the reigning champion at their upcoming title fight, "I will land a straight right followed by a left hook." And his friend asks him, "What do you think he is going to do all that time? Stand there silently?

Anytime you make an attack on the home territory of a competitor, you invite significant retaliation without being able to fight back on equal terms. Windows and Office are Microsoft's crown jewels. To think that Microsoft would let their main revenue sources disappear without a major fight is nothing more than a pipe dream. It is more likely that they would use every weapon in their arsenal and maybe some more.

This is the same kind of mistake that Netscape made long ago. Netscape was really nothing more than an Internet utility suite - a browser, an email client and so on. At that point, even hardware and networks were not capable enough to support the kind of rash statements about the destruction of Microsoft. The only thing it did was provoke and scare Microsoft enough so that Microsoft could target its entire resources at "fixing" the problem.

Google is doing something similar. It could easily co-exist with Microsoft, because each has different strengths. Unfortunately, too many technology experts are so anti-Microsoft that they can only see Microsoft competitors everywhere they look. Google seems to believe the rhetoric which keeps getting wilder with products like Google Docs & Spreadsheets. Microsoft seems to be doing the same through the Live initiative - the only product that I found even remotely useful was the desktop product, Windows Live Writer.

If you look at this closely, you will understand why I say that Microsoft and Google can easily co-exist. Google focusing only on search does not affect any purchases of Windows, Office or Visual Studio products. People using Windows or Office do not stop using Google services. Google is a greater threat to other online companies because it can leverage its valuable brand name to gain a large number of users for every web service it launches. Take a look at this page (http://www.google.com/options/index.html) and you can probably name dozens of companies affected by each product. 

The problems when you go into direct competition with an existing market leader are

  • They can re-align themselves to match you for every move you make. Any new feature you release becomes another on their list.
  • They have a greater market share and revenue and can easily outspend you.
  • They have years of experience in the domain and technology and can easily release new features.

Now, you may think that there are many instances of market leaders being overthrown by smaller foes. For example, Yahoo! was overthrown by Google in the search space. Google Reader overthrew Bloglines. So, if it is possible, why not? Well, it depends on a few factors:

  1. What is the switching cost? If I want to use Google instead of Yahoo!, I just have to type a different URL. Easy! If I want to cancel my Yahoo! Mail account, I have to transfer all my emails over several years and that is a difficult thing to do. There is also a mental switching cost. Many people are so used to Windows applications that they find it difficult to switch over to Macs.
  2. What features are important to me? While Google Docs is reasonably competent (and Zoho Writer, even more so), they just don't match the power of Microsoft Office. Frankly, I just cannot imagine any web product within the next few years matching the complex editing capabilities of Word or Excel. In the case of Google Search, the only feature important to me is how relevant the search is. All other concerns are secondary.
  3. How revolutionary is the product? Google Maps and Google Reader (2nd release) were fundamentally different, resulting in several magnitudes of improvement in productivity. Innovations in technology or user interfaces can drive this. The timing of such innovations can be tricky - sometimes other technologies (like hardware capability) must fall into place before the product appeals to a wide audience.

If you can beat a market leader in these areas, then you have a good shot at dislodging them from their current position. Otherwise, it may be tough. But there is also a related question: Should someone just stop trying to compete with market leaders? It depends.

If the new product has something unique (not necessarily revolutionary, but different), it can bring innovation to the market. For example, both Firefox and Opera have brought many new ideas to the browser, some of which have been co-opted by Internet Explorer. Some of the innovations may also be difficult for the market leader to copy, and in time, may turn out to be very important to users. For example, since Google Docs is very lightweight, it allows for easy web collaboration.

The new product can increase the capability of the company in the domain for future strategies and products that have a higher chance of succeeding. If the company has sufficient capital, there is no harm in burning some in a tough fight against a market leader in the effort to gain valuable technical capabilities. There is also the prospect of becoming No. 2 in the market which has the potential of yielding valuable revenues.

In summation, direct competition is a very expensive prospect for any company. It is much easier to carve out a niche and corner a piece of the market. However, if your product is sufficiently capable, revolutionary and has low switching costs, it can give the market leader a run for their money. Whatever the end result, the market will have seen greater innovation and you would have gained new technical capabilities and possibly greater market share.

Technorati tags: ,

Saturday, June 16, 2007

Evaluating Success Criteria

Recently I saw a video interview with usability consultant, Steve Krug, the author of "Don't Make Me Think!" During the discussion, he was asked how Google's simple user interface contributed to its success. He said that the success was not because of the user interface, but because of the fact that Google returned relevant results. The user interface made it pleasant, but alone, it would not have made Google successful.

But it would be a mistake to just attribute Google's entire success to PageRank. For example, what would have happened if every Google search took 10 seconds to return a result? What if every third time you visited Google, the site was down? What if links spammers managed to get all their results on the first page of Google? What if AdWords was not a success? What if a million other things?

Everyone likes to simplify. Unfortunately, too many business successes are over-simplified and tirelessly imitated, causing the imitators considerable frustration when the expected results do not materialize. The fact is that behind every success, there are many different factors - some known, others unknown even to the successful persons or companies. Some factors contribute more than others - something very difficult to quantify.

So, what should one look for when evaluating success factors?

  1. Don't just look at successes, look at failures too. Did failing companies have the same success factor? In many cases, the answer will be "Yes". In fact, most companies automatically try to imitate the public success factors of the leading companies, but fail. The classic example is the automobile industry where most companies have spent billions on quality programs trying to match the Japanese, but never caught up with them.

    This doesn't mean that the success factor is not necessary. It just means that it is not sufficient.

  2. Are there companies who are successful without that particular success factor? For example, Apple's success is attributed to its attention to product design. So is product design essential for success? But then, think about Microsoft. It is a bigger success, but it never reached the level of design quality that Apple takes pride in. In Microsoft's case, other factors such as great development tools played a factor.

    This doesn't mean that you can just leave out the success factor to succeed. It just means that it could be (and probably must be) substituted with some other factor.

  3. Be careful of your own emotions. We all love stories about rags-to-riches, David vs. Goliath, the charismatic leader, team heroics, etc. Sometimes we tend to cast success stories such that it doesn't disrupt our way of thinking and philosophies. For example, Southwest Airlines has a great internal culture, but that alone would not have made it a success without the low prices and secondary-airport strategy.

    This doesn't mean that Chicken Soup stories are necessarily wrong. It just means that there may be more to the success than the feel-good reason.

  4. Watch out for people who have an agenda. Some people have professional links with a company that they may or may not reveal. Others may nurse grudges against a company. With such people, you have to evaluate what they say carefully. There may be bias. There may be unsupported statements. Another example is the case of a person who wants you to do something and uses an example. The example is just a prop to get you to act and not necessarily true.

    This doesn't mean that the information you get from them is automatically wrong. It just means that you have to pay extra attention to separate fact from fiction.

A structured way to evaluate success factors is to pass them through a test of logical fallacies. In my opinion, every manager must be trained in understanding errors in logic. This way, they can recognize false arguments and reasoning. Of course, this does not necessarily bring good results. But having seen managers go overboard with every fad they see or hear, I think it is a good start.

Effort versus Reward

Consider any task that requires effort over a period of time. Examples would be studying a subject or marketing a product. Each such task demands various activities to be performed. For example, when studying a programming language, you will have to read different books and other material, understand various programming environments, and experiment with different examples and projects.

The question I want to discuss here is: How many activities provide an actual return in terms of the goal you want to achieve? For example, do you have to read all the prescribed books? How many programs do you need to write before you are proficient? How much does each activity contribute to your learning? Should you increase or reduce a particular activity?

A similar set of thoughts passed through my mind when I was looking at the graph below:


The graph shows the percentage of page views received by each individual page on this blog. Here are some interesting statistics:

  • The most popular post received 20% of the page views.
  • The most popular post received page views equal to the bottom 66% of other posts, i.e., 127 posts.
  • The top 15 posts received over 50% of the page views. (Similar to the 80/20 Principle)

So what does that mean? Here is how I could misinterpret this information:

  • Stupid deduction 1: I could have achieved almost the same results with considerably less effort.
  • Stupid deduction 2: The non-popular posts were a waste of time.
  • Stupid deduction 3: I should only try to post posts that have a chance of being popular.

The reasoning seem straightforward, so why are the deductions stupid?

  • The successful blogs would not have happened if I hadn't continued to write more and hit upon some that people found useful.
  • Each additional post contributed to greater search engine visibility that helped people find the website. Without a lot of content, the successful posts would not have been discovered.
  • Each post helped me understand how to write a little better each time. Every time you do something, you learn something new.
  • Some of the success was incidental. For example, posts about technical problems were very successful although that is not my primary focus.

This brings me to the topic under discussion. How does this relate to effort and reward? Here are some of the lessons learned:

  1. Immediate success is a mirage. You must work extremely hard over a period of time to achieve a few successes.
  2. Much of the work you do will never be adequately rewarded. In fact, much of it will have zero direct reward.
  3. Every part of your work contributes in some way towards creating those elusive successes. The very least it can do is make you better at the task.
  4. A "masterpiece" worked on for days may turn out to be a dud, where as something that requires less effort may be a hit. The trick is to keep producing.

In many situations, I have seen people just give up because they don't see the results that they are looking for. Too often, they blame themselves for not having the talent, instead of looking at the real problem: lack of sufficient effort. It is not that people are lazy, it is just that they underestimate the magnitude of hard work involved.

Achieving any sort of success in any field takes years of dedicated effort. You must first spend time learning the basics. Then you learn the achievements of people previously in the field. You compete with contemporaries. You experiment and come up with innovations. You spend more time perfecting some of the techniques you learnt. You also face disasters and flops, in spite of your best efforts.

Quite often, you go down dead ends or do something that yields poor results. For example, a photographer may visit certain places for good scenes or try different kinds of cameras and films, but only some of them succeed. But even when you have failures, you are still practicing techniques that may work better in a different setting. Even in the worst failures, there are things that you did right.

Success has a cumulative effect. In more elegant terms, it is called the Long Tail. The idea is that once you have created something, you have no more expenses, but you can continue to benefit from it. Consider a reasonably skilled singer. The more she sings, the more she is likely to have a huge hit. Any hit has a beneficial sales effect on older songs. The singer benefits from the previous work created while not having to spend any more effort in creation. However, if she aimed to create just one successful song, she would probably fail.

People focusing on only results make the following vital mistakes:

  • They tend to work only on those activities that they "think" will yield results. They could be wrong. They could be selectively choosing the wrong things. For example, I have seen some students memorizing answers instead of learning them. They fail when the question doesn't exactly match what they memorized.

  • Immediate results may be different from long-term results. For example, although passing an exam may be your highest priority, not learning the subject puts you at a significant disadvantage later on in your career compared to someone who has learnt the subject really well.

The bottom line: Work harder. Produce more. Rewards will follow.


Thursday, June 14, 2007

Personal Productivity by Marc Andreessen

Recently, I came across Marc Andreessen's blog. If you remember, he was the co-founder of Netscape Corporation which, for some time during the late 1990s, gave Microsoft a scare with its dominance of the browser market. He has been writing some really good articles, which, like Paul Graham's, are a joy to read.

One of the articles talks about his guide to personal productivity. It was pretty interesting, so I thought I would add my thoughts to his. Please read his article first so that my comments below make sense:

  1. I agree that not keeping a schedule is liberating to an extent. When you have a meeting planned for a certain time in the day, everything else has to be scheduled around it. You sometimes postpone certain tasks that may interfere with the meeting, and instead, remain idle or work on unimportant tasks.

    However, tasks (that you don't enjoy doing) like legal paperwork or certain meetings are better off scheduled. This way, you can block other activities and get them out of the way, instead of having them festering at the back of your mind. Also, you cannot entirely get away from schedules, because the rest of the world doesn't quite work that way.

  2. Keeping only three lists is good, ONE is better. The idea is that you should know where to look for your tasks, pending or otherwise. Many people have things scattered at multiple places and it wastes a lot of time. Keeping things organized by 3 lists (To Do, Watch and Later) is good. But it can be further streamlined into one list, and perhaps, scheduling.

    For example, if it works for you, you can use your email Inbox as your list. Anything that is in the Inbox must be acted upon at some point and you can ignore what is not there. You can add new tasks for yourself by sending an email. Clear out items from the Inbox as you finish the task. You can also use the Calendar in conjunction, especially with regard to recurring tasks. Automatic bill payment can also save a lot of time.

  3. Index cards - why? This seems like additional work. From the previous point, we already have a list. Why not look at that list and decide what you want to do the next day? Preparing and carrying index cards is really not simplifying life. Also, my personal opinion is that you should do the prioritization work at the end of your day's work (at office or home) and not wait before you go to sleep. Planning to do something before you sleep conflicts with Point (1) above.

  4. Anti-Todo List - more lists? The list of lists keeps growing! I can understand the reasoning behind what Marc is saying, but really, isn't work its own motivation? I think a better use of one's time is to figure out why you couldn't do all the things you wanted to do. And then, use that information to avoid activities that have disrupted you. For example, if someone is constantly interrupting you, it is a sign that they probably don't have enough information to be self-reliant. Hence, you may need to have a longer meeting with them to clarify all their questions and reduce future interruptions.

  5. Structured Procrastination - I like it. If you don't feel like doing something, do something else to fill the time. Even sleeping is good - give your body the rest it needs. Certain chores at work or in the household keep getting postponed because of other urgent matters. But they still have to be done, so use the procrastination time to wipe them off your list. In fact, when these minor items are dealt with, it is easier to concentrate on the tough, unpleasant tasks.

  6. I remember seeing an episode on "Everybody Loves Raymond" about Strategic Incompetence, though they didn't use those exact words. The husband doesn't "know" how to do household work like ironing or cleaning while the wife doesn't "know" anything about electronics. That way, they could get out of doing the work even though they profess to be interested in helping the other person.

    Although it seems like an interesting method, it depends on the situation. Sometimes, delegating it to someone else or telling the truth about lack of time and/or interest may be the right solution. The problem with strategic incompetence is that people may not come to you for something important that you could do better than others. And they end up creating new problems for you while you are oblivious to the situation.

  7. I like the general point behind the tactic of doing email only twice a day: If you are doing anything creative or something that needs dedicated attention, email is very distracting. Instant messaging is even more so. It basically depends on how you operate at work: If your work revolves around using email as a dashboard to drive your day, then this advice may not apply to you. If your day consists of many different tasks and real-time communication and decisions are important, then email cannot be relegated to the back burner.

    Marc mentions that someone who really wants to reach you can call you, but in a later point, he says, "Don't answer the phone." Shutting off email and not answering your phone means that you are effectively unreachable for several hours during working hours. Someone at a different geographic location desperately trying to inform you about some work-related issue is probably going to get more desperate.

  8. I agree with his idea that when you finish processing email, you should try to have an empty inbox. But I don't agree with achieving that by moving items into Pending and Review. Then your Inbox is not really empty. You are just creating another folder you need to pay attention to. There is only one rule for an email message: Do you need to take any action on the email again? If so, keep it in your Inbox. Otherwise do what you have to do and move it out.

    Keep the "Review" items in the Inbox itself. If you really need to review them, you will review them soon and then move them out. If they stay for more than a few days, they didn't really need to be reviewed and you will move them out. As for any emails you want to keep for reference or backup, move them to a well-named folder and use Search to find them again if you need to. Use a task management system or calendar scheduling to remind you about any follow-ups.

  9. Don't answer the phone, but only if you don't know who is calling. If it is something important, the person will leave you a voice message. If you recognize the phone number, my feeling is that you should pick it up out of respect and courtesy. I get irritated when I call someone and they don't pick up the phone, especially when it is an urgent matter. Following the Golden Rule, I think it doesn't make any sense if I also do the same.

    Once again, it depends on your job. If your company is in its early stages, you want to take every single call that comes because every individual who talks to you matters. It could be a potential or current customer or employee. You want to open the door when opportunity knocks. Not everything should be a slave to productivity. You should use productivity measures within the context of your overall goals.

  10. If you don't want to be distracted, hiding in your iPod is a good thing. There are other things you can do, like closing your door and shutting down your instant messenger. If you display any signs that you are available, people will interrupt you. But even after you do all this and somebody still interrupts you, maybe it is something important. Pay attention.

    I think a question to ask here is: why do people interrupt you? If it is a work-related interruption, then somebody needs your attention and you should probably take time out to help them. Better yet, help them understand the way to solve the problem so that it doesn't occur again. If somebody interrupts you at work for something non-work-related, muster the courage to tell them that you have a lot of work to do and can talk later. Being open is much better than hiding.

  11. Have a good breakfast. Definitely. Take care of your health. Sleep well. Laugh. Enjoy life. You will be much more productive and full of energy when you get down to work.

  12. I also agree with the idea of taking up new commitments only when both your head and heart agree, but it is not easy. Sometimes a new project or activity looks very exciting, but then the amount of time and effort drains you and leaves you unable to devote sufficient time to existing work. Always leave some free time on your hands which you can use as you wish. Instead of adding more items to your plate, start clearing it by completing existing tasks and not accepting new ones unless they are really valuable.

    If you are already stacked up with activities, try to delegate. Buy more time from people waiting for you to complete the work. Apologize profusely to those collaborating with you. Postpone any tasks that can be delayed. Cancel any that can be canceled. If you have money to buy time, do so - for example, order out instead of cooking, or buy a software application to automate a tedious task.

  13. Doing something you love is great advice. Practically speaking, though, while you should try to maximize the time you spend on interesting things, you must accept the fact that there will be boring and unpleasant tasks you need to do. As a manager, you have to manage conflict, do fire-fighting, prepare reports, etc. These don't really add value, but it is part of the game. You have to learn to love them, otherwise they will drag you down until you cannot even get satisfaction from the interesting things you do.

"Productivity" essentially means "doing more with your time". But the question is what time period are we looking at? Are we looking at maximum productivity each day, each month or each year? Sometimes, taking a longer-term approach to productivity can mean reductions in immediate productivity.

For example, avoiding interruptions may mean you can get more of your personal work done, but your co-workers don't get theirs done properly or on time. Accepting the interruption and spending 15-20 minutes addressing someone's concerns and teaching them to find solutions may go a long way in setting up someone for success. Down the road, that can save you a lot of time, money and aggravation.

So I will leave you with this thought: Productivity is just one aspect you need to improve on. To focus on that entirely without paying attention to other concerns such as customer satisfaction and employee morale can lead you down a wrong path.

Sunday, June 10, 2007

Trainable People

A manager's job can be very stressful. The toughest part, in my opinion, is the fact that it doesn't really matter what the manager does personally. The only thing that really matters is the performance of the people working under the manager. If they do their work correctly, the manager succeeds. If they don't, the manager fails. So, the manager should be always looking at how to help their subordinates succeed through whatever means possible.

One reason for failure is simply the fact that people don't know something. This could be a technology, skill, tactic or even personality trait. For example, a subordinate who doesn't know how to handle customer interaction well may cause problems, even though he or she may be a highly skilled employee. As a manager, it is important to identify what your team needs to know to succeed and then train the team members in them.

By training, I don't mean identifying a bunch of subjects and then assigning a trainer to teach the team. That is also part of training, but what I am talking about goes much more. Training your team is about coaching and mentoring. It is about taking an approach of incremental development of your team members in addition to the big-bang approach of classroom training.

Let me give you a few examples of what I am talking about:

  • Teaching people to identify and correct flaws in processes when a problem occurs. For example, when a bug is identified by a customer, identify what additional checks need to be done in development and testing.
  • Helping people use data to analyze problems and make decisions, and avoid emotional judgments. A good start would be to teach logical fallacies.
  • Even if you know the answer to a problem, help your team members find answers themselves (provided you have time) by doing the research and learning themselves. This increases their independence and reduces reliance on you.
  • Encourage people to question assumptions and not accept something as gospel without careful analysis.
  • Delegate more. Trust more. The more responsibilities you give people, the better they are able to rise to them.

From a manager's viewpoint, you can start focusing on helping your people become better at their jobs, share your knowledge with them and help them grow. But sometimes, you hit a roadblock. You find some people on your team who don't respond to training. There are a variety of reasons, but interestingly enough, it is not the lack of capability that is the most common cause. It is the lack of "trainability".

Let me explain what this means. Suppose a person, John Smith, is weak in ASP.NET. You recognize the problem and start training him in .NET. Then you realize that he is actually weak in programming itself. So you hold back on the .NET training and concentrate on programming fundamentals. If John is reasonably intelligent, he will pick up on programming and then you can build upon that and start training him again in ASP.NET. It will take time, but finally John will be a competent .NET developer.

If John has poor analytical capability, then it will be very tough to teach him programming logic and structures. He will continue to struggle even though he knows the basic elements. You will also have to continuously review his work because his output will always need refactoring. Without a good foundation, John will fail to grow in the role that he is currently playing in the organization. In simple words, he is in the wrong career.

But let us take the case where John is actually intelligent and has some deficiencies, but is not willing to admit it. What happens then? When you recognize his basic weakness in programming and inform him that he needs to get trained in the basics, he will oppose it. Or he may not say something and the training "washes" over him without anything sticking. Nothing has changed, except for the effort you put in.

I have run across this phenomenon a few times and I could not understand how to express it. But recently, I read Seth Godin's article about "being coachable" and it hit the target spot-on. The thing is that you can only teach people who want to learn. Only people who can put their egos aside can learn from others. If a person has a hunger to learn, he will learn from anybody or anywhere.

Some people start developing a unreal concept of themselves at some point. They create a larger-than-life image of themselves and become quite inflexible. Sometimes, a life event like getting married or added responsibilities can trigger this. Sometimes this is gradual as the person gains knowledge and experience and suddenly think that they have hit a milestone. And they stop being able to accept new ideas.

As a manager, this results in a huge problem, namely, loss of control. Let us say that you have a person working under you. You observe a problem that must be fixed. You ask the person to change her actions to avoid the problem in future. You expect the person to agree to the cause-and-effect and either not repeat the same actions or inform you if there is no other alternative. What you do not expect is a direct contradiction of your instructions without any explanations.

Such an issue creates loss of trust. The manager in you is now forced to treat the person as a loose cannon and avoid situations where there is a possibility of catastrophic failure. It also puts additional burden on other members of the team. The biggest problem is that you cannot grow as a team and be able to handle new circumstances and situations.

As a manager, identify the people who will grow with you and encourage them. Identify those who cannot learn with you and remove them from the team at the earliest opportunity that presents itself. The resultant team will be a powerhouse.

Writing Better

Written communication is becoming more important every day because of global integration. Nowadays, it is rare to see all the members of a project team in one geographic location or working the same hours. There is outsourcing within the United States as well as outsourcing to various parts of the world, like India, China and other countries. Even with a local team, people now do a lot of work from home.

Although face-to-face communication cannot be replaced, increasingly more information is transmitted through email and documents than ever before. Even when there are direct meetings, quality processes dictate that information be documented properly for long-term understanding and knowledge transfer to future team members.

This requires us to improve our professional writing skills. Unfortunately, during most of our schooling (except probably business school), we are never taught to communicate well to others. Most of our writing is about what we understood about the subject. It is meant to be factual or meet the course requirements, but never evaluated on what other people understood.

So how can we improve upon our writing? I don't claim to be an expert in writing, but here are some of the learning strategies and tips I use to improve my writing:

  1. Write more: You can always improve with practice. When you write an email, spend time writing a long email. When you chat with people and you have time, type long sentences instead of funny acronyms and abbreviations. If you can, start a diary or a blog and try to write regularly. The more you write, the easier it becomes. Also, if you write a public blog, you will be under pressure to write and edit better than you would normally.
  2. Read more: Read both fiction and non-fiction. Reading fiction helps you understand the language that people use in daily life - idioms, slang, colloquialisms, nuances, etc. Business writing is more formal, of course, but it is better to use straight, simple talk than roundabout jargon. Reading non-fiction helps you understand industry terminology and practices and also use good examples in your writing.
  3. Ask for feedback: Show your writing to people and ask them for their feedback. Is it readable? Is it meaningful? What should be improved? Many friends have offered me valuable suggestions on my writing on this blog - some in the comments and others privately and it has made me change my writing.
  4. Accept unsolicited feedback: Sometimes, people will point out flaws in your writing without your asking. My secondary school English teacher, the Head of the Physics Department, and the Director of the School of Computer Science would mark my writing mistakes (spelling, grammar, wording, etc.) It was tough to hear the criticism, but it was worth it.
  5. Take a test: Preparing for the GMAT (Graduation Management Admission Test) or TOEFL (Test of English as a Foreign Language) can significantly improve your writing skills. It makes you more disciplined about the rules of English grammar. And the umpteen practice tests helps you understand the weak points.
  6. Correct bad writing: Emphasize good written English with your team members. This makes you careful of making mistakes yourself. Beware, though. Some people can get upset or defensive, so do this only to subordinates privately and only when the flawed communication affects you. You can get pretty unpopular by telling people to create readable, short sentences or using "your" instead of "you're".
  7. Train yourself: Read books on how to write better. A good writing style guide is "The Elements of Style" by Strunk & White. Do research on the Internet for writing styles. Many web sites and blogs also provide information on writing better.

Regardless of your current writing skill, there is always scope for improvement. You can always learn new techniques and methods for communicating to people. For example, a couple of things I can improve upon: Keeping my writing shorter and illustrating it better with graphics and good layout. I suppose each of you would also find things you can enhance.

Saturday, June 09, 2007

Learning From Refactoring

The longer one works in software development, the more one is exposed to both elegantly crafted applications as well as egregiously designed and coded projects. The learning process involves learning from both good and bad code. Good code can teach architectural concepts, design patterns, code organization and logical ways of solving practical problems. Such code encourages copying and imitation. You are also filled with enthusiasm to create something similar.

Learning from bad code is not as straightforward. You normally have to deal with such code when you inherit an application from some other person or organization. Normally when you see the quality of such code, you don't waste time reading it. That is, until you have to make changes to meet new business or customer requirements.

At first, you are frustrated because you cannot make any sense of the application. But there is always a method to the madness. As you understand the twisted logic of the original programmer, you start making small changes to the application to help you understand how to push it towards the proposed changes. The reason why you do this is that the entire application is too huge to spend time on rewriting it. You also don't want to mess around with parts of the system you don't understand because it may introduce new bugs and an endless cycle of debugging.

Once in a while, though, you get a badly written application where you have the opportunity to learn. A couple of things should ideally fall into place for you to do this:

  • Code Size: It is difficult for one person to start refactoring an application that has many thousands of lines of code written by several people. You want something manageable where the problem itself is not too complex to distract from understanding and fixing the code. At the same time, you want to have enough bad code to refactor, instead of just 1-2 methods. The right amount of code changes from person to person. Also, as you become more experienced, you have the ability to deal with greater amounts of code.
  • Time Availability: More time gives you greater flexibility in refactoring. You can afford to break the application when you make changes. You can devote more time to trying to understand the thoughts and logic of the original programmer. You can play with various strategies for fixing the code, including dead-end ones. Sometimes, one refactoring technique may result in less code, but have a performance penalty.

One particular example in the past comes to my mind. When the code was originally received from an external source, there was no expectation of it being poor as the original developer (doing the hand-off) seemed to talk a lot about design. Apparently, talk was all there was - a fact made clear when the code was examined. The circumstances allowed us to refactor and work with the code for several months. Here are a few of the issues that we discovered and fixed:

  • Inconsistent naming conventions: Various classes, methods and variables were named inconsistently or incorrectly. This made it difficult to follow the code properly. This is an easy problem to fix using the IDE's refactoring capabilities. But there were also some improperly named database tables that were referenced in the application. That look longer to rectify.
  • Lack of encapsulation: The developer had used several classes, but each one was a collection of methods. This seems to be a particular problem with novice programmers who don't understand object-oriented programming well, but know they have to "use classes and objects". A unique thing done in this program was the use of a Hashtable to store individual pieces of data, instead of using a tightly encapsulated class.
  • Copy-and-paste code: Some code was repeated over and over again with just a slight change in a variable or a constant value. I have always been amazed at programmers who do this because it takes just a few minutes to create a parameterized routine and save hours of typing and bug fixing. Some people just like doing it the macho way!
  • Performance problems: There were only a few places in the application that performance really mattered. One of those places had a loop in which an innocent-looking database call was called repeatedly. The only purpose of the database call was to obtain a lookup value from a static table. Replacing that call with a simple hashtable lookup improved performance by 40 times.
  • Improper error handling: Many run-time errors (database exceptions, wrongly initialized objects, etc.) were hidden by simply using a try-catch block with an empty catch. Compiler warnings were also ignored. Upon making the errors visible, it was discovered that the application was really only processing 90% of the records properly, because INSERT SQL queries were formulated using concatenated strings instead of parameters and hence were bombing out because of unescaped characters.

The developer had done a few things right. The user interface of the application was designed well. There was an effort to divide the application into reasonable-sized classes, although the strategy was more functional than object-oriented. Interfaces were used to enforce certain functionality in some classes. The code was formatted properly. All of which meant that at first glance, the application seemed much better than it actually was internally.

This is, of course, an extreme example where there were too many things gone wrong. But that is the point: You learn more when you get such poor code. If your organization has a good control on code quality, the only way you can obtain this experience is by inheriting code from an external entity for various business reasons. In a controlled project, you typically learn only about code intended for one solution and not scaling up to meet a new requirement.

Wednesday, June 06, 2007

Yahoo! Mail Problem

The reason for posting this blog is that there was nothing on Google Search or Blogsearch for a particular painful and frustrating problem. So if someone is facing this same issue, I hope this can help them.

The last couple of days, I have been having problems accessing my Yahoo! email. The symptoms were as follows:

  1. When I type http://mail.yahoo.com/, I get the login page as usual.

  2. I type in my user name and password, but the browser stays without showing a page for a long time, probably like 5-10 minutes.

  3. Finally, it comes back with an "internal error server connection terminated" error. There is nothing else on the page.

  4. This happened in Internet Explorer. So I tried clearing out the browsing data using "Delete all" option within Internet Explorer 7.0. Same result.

  5. I tried using Mozilla Firefox and Opera browsers. Same problem.

  6. I tried on another computer (Windows XP, IE & Firefox). No success.

  7. Then I asked my wife to login on the same computers and she was able to do so. I realized this was a problem with my login.

I tried unsuccessfully for a solution on various sites. There were very few results with this error. And in those pages, the persons expressed their frustration and intention to move to Gmail. I gave up and went back to some other work.

A few hours later, I tried again and was surprised to find that I was able to login again. I thought of it as an aberration. A few hours later, the problem came back. I had to check if any emails came. So I went to the My Yahoo! Beta page, but the web part for Mail did not show any information and showed an icon indicating it was trying to retrieving information. I switched to the old My Yahoo! view and I could now see the list of emails. Clicking them yielded the same problem as before.

I tried again after sometime and finally got the following screen with the text "contact Customer Care about Error Code 1" hyperlinked to a form that allowed me to submit my username and secondary email address. I tried searching for "Error Code 1" on Google, but didn't find anything useful.


An hour or so later, I tried again and this time I was able to login. There was an automated email from Yahoo! that read, "Thank you for contacting Yahoo! Customer Care. We received your question and the wheels of progress are in motion. A support rep will get back to you as soon as possible. In the meantime, please visit our online help center (http://help.yahoo.com/), if you have not already done so. You'll find a lot of good information there."

Two and a half hours after that, I received another message (which seems to be written instead of automated) that read,

Hello,

Thank you for contacting Yahoo! Customer Care. Sorry to hear you had problems accessing Yahoo! Mail. We jumped on it, and hopefully the temporary problem is now taken care of. If you're still having issues, please reply to this email to let us know. You can also try returning to Yahoo! Mail and pressing the Reload or Refresh button on your browser, then logging back in.

Much Appreciated,
The Yahoo! Mail Team
Thank you again for contacting Yahoo! Mail.
Regards,
Yahoo! Customer Care

I am very puzzled at the whole chain of events. Although I have a lot of emails, I don't use that much space as I get rid of the funny forwarded attachments and miscellaneous junk items I get. I don't have the latest Messenger-integrated Yahoo Mail, although I am using the new beta version. I suppose a possibility would be a scheduled maintenance that may have got disrupted when I logged in at unholy hours.

Although the timing of the support email (received sometime after the problem went away) did not add up, if what the Yahoo! Mail team said was true, it looks like they know what the problem is and how to fix it. That is a good sign and probably it may not happen again.

Monday, June 04, 2007

Microsoft Office 2007

I have been using Microsoft Office 2007 for a few weeks now, having shifted to it at the same time as Windows Vista. Although I had read the upbeat Office 2007 review by Paul Thurrott of SuperSite for Windows, I was very skeptical about the Ribbon interface and felt that there was no way it could replace the toolbar mechanism in the previous Office versions. How wrong I was!

The Ribbon-based UI is astounding from a usability standpoint. I was amazed at the ease and speed at which I was able to format and edit documents, spreadsheets and email. There is hardly any learning curve. The commonly used commands are provided in the main ribbon. Once or twice, I thought that the product had missed out a useful command (like "Change Case"), but on looking closely, it was right there in front of me.



I also like the new Calibri font that is now the default in Microsoft Word. It is more readable and looks great. Word also shows a real-time preview of what the text would look like when you hover over various styles, fonts or sizes. The whole interface looks much less cluttered and very visually appealing. You don't feel like using keyboard shortcuts anymore because you like interacting with the various controls on the screen.

Some of the other features I liked are Direct PDF export and smaller file sizes. The PDF Export doesn't come out of the box directly because of some licensing disagreement between Microsoft and Adobe. But you can easily download the add-in from the Office website. Previously, this point was one of OpenOffice's talking points against Microsoft Office. And as for the smaller file sizes, each MS Office file is actually a ZIP file containing multiple files. You can try opening a DOCX or XSLX file using WinZip to view the files inside the file.

So far, so good. Now for the bad stuff:

  1. There are some weird issues with large Word 2003 documents. The smaller documents work reasonably fine, but some larger documents do not finish loading and the formats of tables and diagrams look out of whack. At other times, they load just fine. I am confused about what to do. I don't think it is possible to have two versions of Office on the same system and I don't think I want to.


  2. Many of my customers and contacts do not have Office 2007. So I still have to save documents in the previous Office formats or send them a PDF. It will definitely be sometime before I can assume that the recipient will have Office 2007 and send them a file in the new format.


  3. Although there is less need for customization, you may still want to create useful macros to speed up certain tasks. But unfortunately, as far as I know, there is no way to add macro commands to the Ribbon. You can only add them to Quick Access Toolbar on the title bar, where they appear as a very small icon. Not good.

Generally speaking, increased usability is the key selling point for Office 2007. However, any compatibility issues could be a major concern for enterprises who have several thousands of technical documents and cannot afford the time or money to clean them up. It is actually a pretty grim scenario if you cannot see the contents in the older, critical files properly.

How does Office 2007 compare with online office applications? In terms of features, there is really no comparison - Office is miles ahead. However, it is pricey and products like Google Docs & Spreadsheets, Zoho Writer and Zoho Sheet do provide functionality that is useful for people who don't want a full-blown office application. In fact, if the online applications had "Format Painter", good table editing and paging, they could attract a lot of new customers away from Microsoft Office.

Right now, Microsoft has created a considerable gap between it and other desktop Office applications like OpenOffice. In fact, OpenOffice could face pressure from two sides - on the desktop side from Microsoft Office and from the online Office applications. StarOffice is in a worse situation since it is a commercial product.

Should you upgrade if cost is not a factor? Yes, but definitely load important documents that you need and see if they work fine in Office 2007. If you are only planning to create and use new documents, you don't have to worry much.

Sunday, June 03, 2007

Meetings

A few people from a customer of mine were having a webinar session with a vendor and they invited me along to provide my appraisal of the product. It was a rather tiresome 2 hours and the consensus at the end was that we would not be proceeding to select this particular product. As we were wrapping up the meeting, one of the customer people turned to the other and said, "At least I got my 3 actionable items."

I was puzzled and I asked him what he meant. He said that whenever he was in a meeting, he would try to note down 3 things that he had never known before. And then he would follow up on them. Sometimes, a few of them turned out to be quite useful.

His habit intrigued me. In the days that followed, I tried to imitate him. Whenever a meeting ended, I would create a bulleted list of interesting items. I tried to maintain the documentation habit, but I could not sustain it. But the spirit of that discussion remained with me and I tried to see how I could make meetings meaningful to me. Some thoughts:

  1. Some meetings can be gold mines of information and ideas. Plan for such meetings. Pay attention. Follow up as soon as you can after the meeting to think about and discuss the ideas so that you can take advantage of them.

  2. Other meetings can be totally barren. But you can learn something from that too. Why was the meeting totally useless? How can you avoid such types of meetings? And if you cannot avoid them, what can you do to make them more meaningful?

  3. Sometimes, the most important thing you can get from a meeting or a seminar is not the specific pieces of information, but understanding the overall concept, especially when you are hearing about something for the first time. In this case, take fewer notes and get excited enough to follow up.

    An example is a seminar where they are discussing what a technology can do and show code or architectural diagrams on the screen. Instead of taking those down, instead write down a few points about the advantages and later, you can do more research on the Internet.

  4. At the end of the meeting, ask people what they thought about the discussion. They may have a different perspective than you did and that can be the source of many ideas. Also, you may not be fully alert during the entire meeting and others may have latched onto some important point that was not emphasized enough.

  5. The times before and after the meeting are as important as the meeting itself. For example, by planning for the meeting, you will have prepared your mind to focus on what you want to get out of the meeting. After the meeting, by doing further research, you can validate whether the information and tips you collected from the meeting are accurate. It goes without saying that you should be open enough to deviate from your original plan for the meeting if the presenter takes you down an unexpected train of thought.

Of course, this is based on the same learning philosophy that you need to carry everywhere. They say that the best learners would read the ingredients on food wrappers if they cannot find anything else to read. Learning requires an attitude to always be on the lookout for things to increase knowledge and improve behavior.

Analogies

Long back, when I was learning optics in my Physics class, I had a conceptual problem understanding refraction, the phenomenon where light changes directly when it passes from one medium to another, say while passing through a glass prism. It was not the equations, real-life examples or problems that baffled me. But I really didn't get the "why" - why would light shift direction when the medium it passes through changes.

Then one day, I came across an analogy that made it clear as daylight. Look at the following diagram explaining the concept of refraction:



You can see how the light ray was traveling at a certain