Sunday, December 31, 2006

New Search Engines

Here is a new search engine: http://quintura.com/ with an interesting look-and-feel. The blog which had this link expresses my thought exactly: http://www.gapingvoid.com/Moveable_Type/archives/003581.html

It will take a huge effort or fundamental shift in how Internet search is done to displace Google from their current position as search leader. For example, Live Search, Yahoo! and Ask are all out there, but they offer nothing, at least to me, that would make me use them instead of Google. And Google keeps rolling out new capabilities in its search such as integration with other services that makes it much more useful.

Of course, all's not well with the Google world. The promotion of their own services bypassing the regular search results and AdWords is creating major controversy in the Internet space. Also, the changes in the search algorithms (read PageRank) is creating confusion for legitimate small and medium businesses who get penalized unfairly.

A few features that I would like to see in Google search are:

  • Combine categories with search. For example, when I type in "chip", show me a line of different categories or tags like "food", "technology", "sports", etc.
  • If there is a search result where the page no longer exists and the person clicks on it, remove it the next time the same search is run.
  • Show the number of results in images, video, news, etc. In fact, allow me to search for the information in all or some of the formats at once.
  • Don't show "Did you mean: xyz" when "xyz" does not bring back any results either.
  • Have a better help for the Calculator feature in Google instead of half a screen. For example, I have no clue what the different types of conversion the calculator provides and have to guess at them.
  • Provide options for the users to switch to a different interface for different web search features. For example, why not provide different input boxes for currency conversion if they want to have it.
  • Make it easier for me to turn on and off Personalized Search History so that I can easily get back to what I found.

Maybe some of this stuff is already available somewhere. And if so, make it easier for me to find and use them.

Criticism and Improvement

By definition, improvement implies change. You cannot improve if you keep doing exactly the same thing. How do you know when to change? There are 2 ways. One way is to to realize this yourself. Typically this happens through experience or gaining knowledge through books, conversations or training. Another way is to have other people criticize you, tell you what is wrong and how to improve.

The first method is good, but the disadvantage is that there is only so much experience or knowledge you can gain in limited time. Sometimes, by the time you acquire the knowledge, you have already moved on to other things. Also, there are certain beliefs and principles that you may swear by that makes you filter the information you receive, thus preventing you from gaining new perspective in those fields.

By having people provide you feedback, you can gain more ideas for improvement. In product development, we see this all the time. When a product is released to real users (in beta or as a production version), users come back with many different suggestions (some simple, some major) - Implementing them helps improve the application. Look at the current versions of any software product from operating systems to word processors to browsers. Some new features are the result of better technology, but many ideas could have been implemented easily in previous versions, but the development team was just not aware that there was a need.

What about feedback about one's own activities? The people who can give you feedback are the ones who interact with you: Family, friends, bosses, colleagues, subordinates and customers. Usually, most people provide criticism and feedback when it is in their interest to do so. For example, a customer may complain about service because it is interfering with their business. A manager will complain about shoddy writing because it will require additional valuable time from them to edit your work before it can be used.

But how about people giving feedback because they think it is in your interest to improve? My opinion is that they would do that again out of self-interest, not tangible benefits, but because they experience joy and satisfaction in seeing you succeed. That is why family is the best source to gain such feedback. We frequently see family members (elders or siblings) provide unsolicited advice because they don't want us to do something that will be detrimental to us. Friends (both intimate and casual friends) do the same - they repeatedly interfere in our lives because they have our best interests in their mind. If you go to a church, mosque or other religious place, you would also see the religious leader give you personal advice.

In professional lives, it is not as straightforward as this. But it can be made easier by cultivating friends among colleagues and peers. With people who are working under or over you, you will receive feedback only if you ask for it and then show that you, in fact, liked getting the feedback. The problem that most people face is that if you request negative feedback, sometimes, it will be something unexpected - like something you thought you were doing well and people thought you were not. For example, I may think I am the best analyst, but then someone tells me that I am poor in a particular area of analysis, I will be surprised and offended. Negative feedback puts us in a very defensive mood and we get into an argument over whether the feedback is true.

Once you start arguing with the critic, it is over. The person thinks that your talk of obtaining feedback was just that - talk and nothing of substance behind it. The person who gave you the feedback didn't gain anything by doing so and has lost interest in helping you in future. You have lost a valuable source of information. So, the best thing you can do when you hear bad feedback is to swallow your pride, listen intently to what the person has to say, thank them profusely and then act upon the suggestions offered.

Doing that will encourage others to openly communicate with you, making you more effective. Hearing criticism of oneself is one of the toughest things that you can experience. It is natural to be upset and get defensive - and frequently, one will. But perhaps, moving forward, we will be more aware of what such behavior could result in and be careful.

Disinclination to Learn

Here is an experiment. Before trying it, put some physical space between you and the subject. Ok, here goes. Call the subject a stupid person who is unable to learn anything. We all know what will happen. Everyone gets angry if they are accused of being inferior intellectually.

Yet, many of the same people revel in their ignorance of some of the basic computer skills. "I am not good at computers." "My child is so much better at Windows than me." "I used to be good at this. Now they have automated everything and I am lost." The list goes on and on. The outlook of such persons is described in an insightful blog by Seth Godin.

My intention is not to mock such people. Change can be disruptive and people need time to learn new skills. The problem is that these people have already given up and have decided that things are going to be difficult. This is after technology companies like Microsoft, Apple and others have spent millions of dollars trying to make computers intuitive and easy for beginners.

When such people are working in an organization, a lot of unnecessary basic training has to be imparted - the effort (and money) which could be better spent on advanced features that could make the employees more productive. There is also a tendency to forget basic routines (like using Windows Explorer or sending an attachment) - frequently this results in interrupting other employees - creating more waste.

If you do a Google search on IT service calls, you will find many such questions and incidents. These are meant to be hilarious, but I find them depressing. Many of these folks are really very intelligent persons in their industry, but for some reason, they do not want to attempt to become better or do that little bit of self-help which would make their lives so much easier. When people use the "my child is better than me" reason, they frequently ignore the fact that they would have been better if they had the same curiosity to learn possessed by their children (who are, by the way, on average, a lot less educated  and knowledgeable than the average adult).

Finally what do you do if you have such people in your organization, family or neighborhood? The typical geek answer is first silently insult and curse them, and then do the whole work for them, while maintaining a sarcastic and patronizing manner - and perhaps even posting the whole incident to friends or on the Internet. Needless to say, the "puzzled person" calls never stop coming.

A tactic that I have sometimes found useful is to provide advice without ever touching the keyboard or mouse. Walk the person through the problem that they are trying to solve and have them use the input devices. Sometimes, if they are in the mood, ask them to locate the shortcut or icon on the screen themselves. But by all means, sound helpful. People can sense when you are feeling irritated with them and this puts them more on a defensive posture instead of feeling ready to learn.

To conclude, one of the significant contributors to the problem is computer gurus themselves who exhibit a superior attitude just because they had the good fortune to spend years in college or the industry learning stuff. After all, nobody is born with innate knowledge of socket programming or web design. Hollywood movies perpetuate this fallacy when all the presumed nerds know is to guess passwords (always on the 3rd try!) and run a few hacker scripts.

Saturday, December 30, 2006

The Enemy of Action

Why does the deer not step aside when the headlights start rushing towards it? Here is a nice poem about it. I have heard and read many people talking about fear as a motivational factor, but in my opinion, fear is perhaps one of the most paralyzing feelings. It prevents action even when it is in the best interest of the scared person to act. Also, it prevents action that may even be useful to the person or thing that is causing the fear.

  • Fear of unemployment keeps the employees' mouths shut preventing them from questioning the dubious actions of their managers.
  • Fear of seeming ignorant keeps a team member quiet when he or she should be asking questions to clarify their understanding.
  • Fear of losing face keeps the manager from admitting mistakes even when things are so obviously going down the drain.
  • Fear of market failure and criticism delays releases to the point that competitors gain an opening.
  • Fear of betrayal and litigation prevents close working relationships that would speed communication.

There are many causes for fear. Business leadership within an organization can reduce fear among employees by sincere candor and openness. Communication improves when honest mistakes are forgiven and "stupid" questions are encouraged. Mercenary behavior can be discouraged by placing greater emphasis on ethical values inside and outside the workplace. And when managers and leaders exhibit humility, show eagerness to learn and the courage to be flexible, many demons disappear from the office.

At the same time, there are external factors like a poor economy that can contribute to lack of confidence and resultant paralysis. That is where true leaders show their true worth. They don't lie about the situation or give false hope. Fully acknowledging the gravity of the situation, they have the wisdom to chart strategies that would take the organization through its troubles. They provide comfort to others through the courage of their convictions. Winston Churchill is one such leader who comes to mind.

What can you do to eliminate fear in your organization and make employees free instead?

JotSpot Lockdown

After Google acquired JotSpot, the site is locked down for new registrations as they migrate to Google's systems. I wonder how much of a good business strategy this is. Right now, companies are in a mad rush to embrace Web 2.0 technologies and use all kinds of collaborative software to run their businesses - from the small entrepreneurs to larger corporations. They want blogs, wikis, web ads - the list goes on.

Now the persons driving the changes in these companies don't have time to wait. If they cannot get onto a software offered by Google, they would just move over to the next available competitor. After all, the upfront cost of selecting a different vendor is not very high at all. Many people who want a wiki probably don't understand all the possible differences in features between competing products - since the paradigm is new to them. So how much business are they losing every day by this tactic?

Besides, I am astounded at how a company can do this. If I were to tell my customers that they cannot add more users on their software because I have a migration issue, I would probably be fired on the spot! There would be an analysis stage to understand how the migration has to take place, the necessary design created and programmers would get to work to change the code and create the scripts that would do the cutover with minimal downtime. After this, we would go through testing and then a few dry runs before moving over. And then we would find the loneliest time to do the production switch.

This situation reminds me of the book "The Toyota Way" where the author explains that having excess inventory hides a lot of problems. If you have lots of surplus, why should you worry that the replenishing supply trucks take too long to get to the plants or that there are 10% defective parts in every lot. To correlate, when Google has oodles of money to throw around, why worry about a few thousand customers going away to a competitor? And besides, if you never know what you have lost, you never have to weep for it.

 

Technorati tags: , ,

Kill Google Base

Google Base is one of the most puzzling products I have ever seen. I cannot comprehend why users would use it with all the other applications out there. Let's take some examples.

  • If Google Base is meant for people to quickly post some information to the web, make it available publicly (or by selected users) through the web or RSS and allow it to be searched on, why not use Blogger or some other software?
  • If it is meant for uploading documents (Word or Excel), Google Docs and Spreadsheets does a better job of that with collaboration and sharing.
  • If it is meant for creating multiple pieces of information, people could use Google Page Creator to create web pages.
  • Many of these products from Google and other competitors have tagging for easy searching.

Google Base's answer to the question "Why should I use Google Base?" is answered by the following 3 points: Free content hosting, distribution and ease of use. These 3 attributes is true for pretty much any content-based Internet application today such as blogs, standard web sites, personal spaces and communities.

My suggestion: Provide a migration path for Google Base users to other applications and kill it off. It is an embarrassment, really!

Rear View Mirrors

Several years ago when I took my first license test in the United States, my friends advised me to periodically look at the rear view and side mirrors while taking the test. So as the police officer took me around a block in Salem, New Hampshire (deserted, one-lane back-roads), every few seconds, I would methodically turn my head to prove that, yes, I knew enough about driving to check the mirrors. I don't know if it really helped, but I know I got my license that day.

The reason that I had to do this consciously is that checking the mirrors was not something that I did often while I was learning driving. The most important then and now was always to look ahead, go in the right direction, stop when needed and don't hit anyone or anything. It doesn't mean that I never look at the rear and side mirrors - I only check on them every so often to check if anything will interfere with what I am doing or if I am making a change in what I am doing (like a lane change or exit).

As in driving, so in life and business. There must always be a forward focus - concentrate on the vision and the end goals. This could be a business goal like becoming the top manufacturer in the industry or a personal goal in our career, family, social life, religion, etc. When we move towards our goal, there will be many kinds of distractions. It is necessary to pay some attention to them so that they don't interfere with what we are doing, just like we would do with the side mirrors. But to totally spend time or money on a distraction will make us fall off the road to our goal.

Hence, it is very important to define what the central goal is. If the goal is to lead a happy family life, then your career or job is a means to the end. Pay just enough attention to the job so that you meet your professional obligations, but focus on your family. If your goal is to become a business leader or a politician, you may have to sacrifice other pleasures of life and just spend enough time to meet your personal responsibilities. This is a necessary trade-off. Ultimately, each one of us has to make the decision and live with the decision.

Frustrations occur when we want to place our legs in both boats at the same time. It may be possible, but it is difficult to do justice to either side. There will be several instances when we have to choose between two needs - if there is no primary goal, then the person is thrown into a dilemma. For example: would you choose between an alumni event where you may meet some very dear friends you have not seen in years or a business event where you may meet new prospects that can take your struggling business to the next level? What is a greater obligation: the obligation to meet old friends who may have helped you in the past or the obligation to make the business successful for your shareholders and the employees?

Balance is difficult. Prioritize life. Decisions become easier.

 

Thursday, December 28, 2006

Poor Man's CAPTCHA

My friend Prashant recently did a post on CAPTCHA. A CAPTCHA is basically the opposite of a Turing test which a computer can pass if it is sophisticated enough to have a conversation with a human being without the person unable to detect that it is a machine. The CAPTCHA is used to differentiate a human action from a computer-generated one. One of the most common use is to stop automatic submission of web forms by spammers.

In recent times, I started getting a lot of spam from two forms in my website - a guestbook form and an email form. Neither form directly affected the content of my website since both forms sent an email to my account. But the spam was becoming a nuisance as I was getting around 20-30 spam emails per day.

After reading Prashant's article, I was motivated enough to implement a CAPTCHA on the forms. Typical CAPTCHA implementations use a distorted image that an image processing algorithm cannot decipher, but humans can easily recognize. Coding for such an implementation is algorithmic-intensive and take a lot of time and knowledge.

Then I remembered seeing a different implementation on someone's website where he had asked the person to put in the answer for a simple addition problem. So I added a new field on my form, asking the user to put in the answer to questions like "what is 2 PLUS 1?" If the user got the answer right, the form would be submitted.

As soon as I put the new forms up, all the spam stopped. I have not got a single spammed email. What worried me, though, was if it would cause problems for legitimate users. Happily, that doesn't seem to have happened as I have received a few submissions from my friends from the form.

This implementation of CAPTCHA is what I would term a "Poor Man's CAPTCHA" because it is very easy and inexpensive to implement with quick returns. Since my website does not attract a lot of traffic (sob!), it is not worthwhile for a spammer to spend their time to circumvent the test by writing a special program. I implemented this using server-side logic, but it is perhaps possible to achieve the same effect using JavaScript.

Technorati tags: , ,

Google Indexing - Coincidence or Big Brother?

It has been less than 24 hours since I posted my complaint about the problems with using Google Custom Search on my site. I was a little shocked to see (and happy to report) that Google has re-indexed my site since then.

It is obviously a coincidence, but if it isn't, is it because there is some code or person(s) out there watching for such postings and making necessary adjustments?

If it is the latter, whoever or whatever you are - thanks a lot!

Wednesday, December 27, 2006

Problem with Google Custom Search

With great enthusiasm, I went to Google Co-op and created my own custom search engine that would allow users to search the contents of this blog and also my site (krishami.com). Google provides a lot of functionality that makes creation of the custom search a breeze. I also obtained code to put on my website instead of having users visit a URL to search. So far, so good? Well, you think...

Here is the fundamental problem: Until Google indexes the latest changes to my website or my blog, the custom search is useless. If I have made a lot of changes to the site, I have to wait several days until the Google crawler indexes everything and gets ready to provide the results to my custom search. What a joke!

The issue here is that my site is not a huge million-page site that needs days to crawl. There ought to be some functionality where I can tell them that my site has changed and they can run a thread on the crawler to spend a few seconds re-indexing the site. I can ping Technorati about updates on my blog, why can I not ping Google to tell them what has changed.

Technorati tags: , , ,

Tuesday, December 26, 2006

Private Blogs

I have started using the new private blog feature in Blogger to start my own personal diary. The only person who can view the blog is me, when I have logged in with my password.

There are many uses of such a private blog. Obviously, there are personal thoughts you don't want to share with anyone. But in addition, there are different types of information that you could post to the private blog that you don't want to or cannot share with other people. A few things I can think about are

  • Posting ideas or articles which are not fully formed or researched. Sometimes you may be just putting random thoughts together and don't have enough time to make it comprehensible to someone other than you.
  • An ideas or article which you think is not important or meaningful to someone else, or perhaps is not something you want associated with your public persona.
  • A nasty diatribe against a company, product or service or someone that you cannot post without inviting an expensive lawsuit which you would probably lose because of lack of evidence or poor lawyers. At the same time, you want to vent your feelings using some choice language.
  • An article that may be crossing some boundaries of intellectual property issues, but you want the information accessible to you. An example would be an amalgam of content from different authors (with proper credit given) whose publishers may not have released the rights to you. I suspect this is not really a problem with big giants like Google News and such, but for the poor blogger, it is definitely something to watch out for.
  • Whatever whims or fancies you want to indulge in without making the rest of the world suffer.

I am not sure about how some of the other Blogger functionality works with this. For example, if you are going to use the private blogging a lot, search becomes important to retrieve old stuff - so how that does that work? Anyway for now, I have just started with 2-3 private postings.

[UPDATE - Feb 9, 2007] There is a search in the Blogger bar at the top of the post. It allows an authorized person to search on the private blog.

The Economics of a Free Lunch

Recently, I was talking with a friend whose IT career had previously taken him through a dot-com company which later went bust. Among other things, he said that the company used to provide free lunch to all employees. He cynically attributed this practice to the company trying to save money by keeping the employees indoors instead of any desire to motivate the employees.

Well, we cannot dig into someone's heart to find out what their intentions were, but I thought about this topic after the meeting. Would a company benefit financially by offering free lunch? And if so, how much? Here is how it would probably turn out.

A typical employee would take an hour's break to go and get lunch. That equals an hour's billing. Now you can consider the direct expense which could be internal cost per hour, which includ

es salary + benefits or the opportunity cost of revenue generated per employee per hour. Let us say that lunch eaten at the office would typically consume half an hour.

It looks like there is a half-hour savings, but that evaporates if the employee leaves 30 minutes early by taking this into account. Or they continue to stay in the office till their usual leaving time, but they have nothing productive to do with the remaining 30 minutes. They may have completed their work for the day and be reluctant to start something that they have to start afresh the next day, or more likely, they use the remaining time of the day to stretch out the current work they are doing. (Parkinson's Law)

In an IT (information technology) company, especially a startup focusing on newer technologies, there is likely to be a higher proportion of developers whose daily life consists of work, more work, some food and sleep when tired. They are so much in love with what they are doing that everything else is a distraction - including the process of ordering or making food. I know because I used to work like that. 

Such an environment will gain significant returns on organizing and providing free lunches. The programmer is free to concentrate on the highly technical work while his or her lunch is delivered to their desk. Any time not spent on activities around obtaining food directly goes into productive work. In fact, by not providing this service, you provide a mental distraction to the developer, who has to focus on a different problem than what the organization wants him or her to solve.

The motivational factor is also considerable. More than money or material possessions, programmers crave respect. By showing that you look after their well being, you massage their ego giving them the additional mental energy to tackle tough problems and utilize their full faculties.

So, I guess the bottom line is that if your team is already passionate in their work, providing free food is great economics, boosting morale and motivation, and removing constraints to help in effective utilization of time.

Monday, December 25, 2006

Google Maps Calling Feature

Even though I know how the technology works, the following experience was still amazing and, should I say, so sweet. I had just returned from a morning meeting and had just half an hour to eat something before my next meeting. Normally, I would just go to the restaurant and order something, but today I was running really late. So I decided to order a take out, but I didn't have the phone number of the eating place.

Now, I had previously seen a feature in Google Maps where you could see the businesses operating within a region. So I pulled up maps.google.com and typed in my zip code and the word "restaurant". The place I was looking for came up on the map (among other places). There was a phone number and next to that was a simple link "call". When I click it, it asks me for my phone number which I type in and press a button "Connect for free". The next thing I know, my cell phone is ringing and I am talking to the order person at the restaurant.

That is the kind of user experience that really blows you away. What also struck me is how different the paradigm is from the typical Yellow Pages. In fact, what I was doing was the web equivalent of searching the Yellow Pages, but Google Maps presented a completely different interface that presented a more intuitive way of getting things done.

It is only circumstance that I want to have a takeout, but I might have been just looking to actually go to the place and eat there. The map interface with directions would allow me to calculate how much time I would have to reach the place and also to get to the next place I wanted to. In addition, there are links to see more details about the restaurant and, of course, to get to their web page.

A lesson here is that sometimes users may actually like your web application for some throwaway feature that you put in there, instead of the main purpose your application was built for.

The "No Silver Bullet" Principle

I recently read one of the most significant papers regarding software development: No Silver Bullet: Essence and Accidents of Software Engineering by Frederick P. Brooks, Jr., the author of the classic "The Mythical Man-Month". The article is very relevant even today.

In the short history of software development, there have been several new products or processes that promises to make software development easier - visual IDEs, agile programming, object-oriented programming, etc. There is no denying that every such development brings valuable improvements to development teams, reducing time and effort.

But the question remains: How much easier can it get? Are we nearing the point where there is no need of programmers? In fact, this is a pet topic of some technical journalists who try to meet their deadlines with articles like "Product 'z' Released: The End of Programming?"

The article by Brooks answers this question by differentiating between the "essential" and "accidental" difficulties of building software. Any non-trivial software has essential difficulties like complexity, pressure for constant change and conformity and relative lack of visualization. The difficulties encountered by poor programming tools and development software are accidental.

One accidental difficulty is created when the programming language does not reach the level of abstraction that the user ("programmer") needs to express the solution. This is mitigated as higher-level languages are created - C, C++, Java, etc. Brooks points out at some level, the complexity of the language may create additional intellectual burden for the user. This is what happened with C++: When Java came out with LESS features (such as removing multiple inheritance and pointers), it became more popular.

The idea in the article is that even though we may use all the best tools possible, we still have to deal with the inherent complexity of the software itself. Consider any application: It has to deal with many different business rules. It has to accommodate the needs of different levels of users (beginner, intermediate and advanced). It has to consider different workflows and be able to act appropriately according to the current stage it is in. The number of combinations of stages, user actions and rules is quickly overwhelming.

For example, suppose you create a program that can never be beaten in tic-tac-toe. An accidental difficulty would not having a development tool that can easily create a GUI for user input. But once you obtain such a tool (say Visual Studio), that difficulty disappears. However you are still left with the challenge of programming and ensuring that the program works for all the 9! (or 362,880) combinations the game can be played. [It will actually be less than 9! because some games will end before all squares are filled in, but nevertheless you still have to take all possibilities into consideration and eliminate the necessary ones.]

A tic-tac-toe game is actually a very simple example. In a real-life program, there will be millions of possible stages that a program could be in. It is impossible to consider all of these possibilities or to test for them even using automation sometimes. Developers have to make decisions about the probability of use of features and focus on getting them right.

Much of the hype around all-knowing software has to do with the following types of situations:

  • Being able to create and maintain basic lists
  • Create web pages or other types of forms
  • Create visual reports and charts

Programs like Microsoft Excel (and Microsoft Access, to a lesser degree) have definitely put more power into the hands of people who have less programming experience. At the same time, you don't see programmers out of their work. Having solved some of the basic problems (through better software), they have moved on to developing more complex and sophisticated software challenges.

Sunday, December 24, 2006

The problem with Ken Blanchard's books

I have read many of Ken Blanchard's books like the One Minute Manager and Who Moved My Cheese. Many of these books occur high in popularity on the lists of many book vendors including Amazon. Many of my friends in school have also recommended these books. They are very short and easy to read - typically you can finish one of them within a few hours. The books use the methodology of a simple story or parable to explain a business management concept.

I have serious reservations about his books and my personal feeling about his works are that they do more harm than good. First of all, the use of a story to illustrate ideas is a good methodology for readers to easily understand the topic. However, the story is just that - a fictional story that can be manipulated in any way to suit the conclusions that the author wants to make. I have not seen much research to justify the ideas or methods mentioned in the book.

Since the books are easily readable, I assume that a good portion of its readers consist of those persons who have little time for a more theoretical or larger business management book, but want something quick and easy. Blanchard's books fill the void for this audience. The problem is that this audience never gets to understand important business concepts in the context of the working of the business environment.

By over-simplifying the concept, it is an invitation to the reader to blindly apply ideas without thinking of the whole picture. Take the example of the One Minute Manager which explains how overwhelmed managers can make better use of their time by proper delegation. Good concept, but the explanation in the book makes it very tempting for managers to do paper pushing and make themselves less accessible to subordinates.

The use of metaphors like monkeys and mice in different stories have seeped into misguided management cliches and are highly demotivating and insulting to workers. In "Who Moved My Cheese?", workers are compared to mice and asked to accept change as a fact of life. But what about management? What is their role? Are workers just supposed to be pawns who have to turn their lives upside down just so that change can be accommodated.

A recurring method in Blanchard's books is to provide a principle in huge, bold letters in an entire page dedicated to it. This has the makings of a cult, where the principle is supposed to be cast in stone. A egregious example of this occurs in the book "Gung Ho!" where the "Spirit of the Squirrel", "Spirit of the Beaver", etc. are mentioned as if they are gospel.

Managers who buy into this start becoming what I term "checklist" managers who start using this specific methodology to start running their organization. Real organizations are far more complex to be run by such checklists which have no proven research foundations. Effective managers need to recognize these books as containing tactics that may be useful in certain circumstances and as part of a larger strategy, not as a silver bullet to solve all the problems within the organization.

Ultimately that is precisely the problem. They are way more inexperienced and raw managers than savvy ones. Books like this hide the seriousness and complexity of management and seem to provide quick fixes. The overwhelmed manager starts implementing them whole-heartedly. When employees get demotivated because of faulty implementation or management speak, the manager blames the employees and tries harder to push the tactics even more, instead of recognizing that the methodology was wrong in the first place.

So what is the solution? If you are a business owner or manager and want to develop true management capabilities in your organization, the first thing you must impress on potential leaders and managers is that there are no shortcuts. Management is hard and requires knowledge, patience, humility and perseverance. Learning is continuous. Show them the right books or literature to read and tell them that each contains only the partial truth. They must develop the right outlook and constantly use information to build up their vision and strategy. And be willing to learn from mistakes and question everything.

Power Imbalance in Decision Making

Here is a fable (I believe from Aesop) about a wolf and a lamb: http://www.mcwdn.org/fables/wolflamb.html. The wolf wants to eat the lamb and tries to justify the action with excuses, all of which are refuted by the lamb. Finally the wolf gives up the pretense and, without waiting to solve any rejoinders, pounces on the lamb.

This happens all the time in organizations. Whenever there is a decision to be made and the senior person has already made up his or her mind, he or she is not looking for a discussion on the subject. The person is only looking for acceptance or confirmation of his or her thinking. The subordinates can make any arguments they like, but nothing is going to change.

Some executives do this without any malicious thinking. They actually step into meetings without realizing that subconsciously they have already made a decision. While they should be keeping quiet and listening dispassionately to all arguments, they interfere to promote a particular point of view. As each subordinate realizes where the manager is heading, they slowly start shutting down themselves. Lo and behold, there is a consensus.

Sometimes, however, one or more of the subordinates don't really get the fact that the decision has already been made, so they keep arguing, sometimes becoming passionate in the process. The unfortunate part is that while they may be saying all the right things, they get branded as uncooperative.

So what do you do when you are on the wrong side of the power equation and find that your manager is going against all sane thinking? Well, one way is to first completely agree with the manager's point of view and offer your support, putting you and him/her on the same side. Then you start asking questions about how to handle the various potential situations and risks that may be the result of the proposed action.

By not putting the manager on the defensive, you allow him or her to slowly back down from or dilute the position they have taken without humiliation. Most managers don't like to lose an argument for fear that they would seem intellectually inferior to their juniors. At the very least, you can put in defensive measures to avoid any problems that may arise from the manager's actions.

Windows Live Writer

I have been using Windows Live Writer to create and edit my blogs to post to Blogger. I am not sure that it is better than the online editor in Blogger, but it has proved to help me to organize my blogging. Whenever I get a new idea about something, I launch Live Writer and save a quick draft of my idea. Sometimes the idea takes time to develop (perhaps even months), but it remains there unless I get rid of it.

You may say that Blogger does the same too, but it doesn't launch directly into the edit window as Live Writer does. Plus the Blogger editor is an application within another application (the browser) and it feels different from the feel of Live Writer which seems more like Microsoft Word-like editing tool (though nowhere near the same level of functionality).

At the same time, Live Writer has its deficiencies too. The most irritating one is the lack of a Windows Explorer-like navigation capability of all the drafts, recent posts and older posts. These are currently displayed in a list of 3 items each in a bar on the right hand side. You have to click a "More" button to see the remaining items. Worse, to see  the older posts, each time, Live Writer has to connect to Blogger to get the posts. Why can it just not remember?

When Blogger was bought out by Google, for some reason, Google decided to implement a parallel login mechanism where you could use the old Blogger login (with the old Blogger interface) or use your Google login and get into newer, better beta implementation. Needless to say, it was a pain getting Live Writer to connect to Blogger Beta initially. Finally after searching and visiting many forums, I finally found a way to connect and post my blogs.

I still have problems posting images, which I seldom do. My last post contained a screenshot which I had to add using Blogger after I published the post using Live Writer. Hope someone from the Live Writer team is acting on this.

Sourcegear Vault Admin Tool

Our company has been using Sourcegear Vault for quite sometime. It is a very good source code control management system for small to mid-size companies. We started using Sourcegear's SourceOffsite product when we had a need to allow people to access Microsoft Visual SourceSafe from outside the office. By switching to Vault, we consolidated on one product. Since Vault uses Microsoft SQL Server, it seems to be highly stable. The client tool is also very efficient and user-friendly.

One major complaint I have with Sourcegear is the unusable user interface for user permissions. We have several projects going on and each project has its own Vault repository. Each time I add a new user or new repository, I have to go and set the permissions accordingly. So, say I have to set the permissions for a new user. This screen has a small window where the names of the repositories are listed. Each repository has a checkbox against the repository. Only 3 are displayed at a time. See below:



Unless I am really careful, chances are I will accidentally miss out some repository. I have to scroll through several times before I can check all the repositories.

My theory regarding this is that assuming Sourcegear is using Vault internally is that they currently have only 3 products and hence they have not experienced this problem themselves. Nor have their testers focused on this because the majority of users are not administrators, but rather the Client tool users.

Keep Users Coming Back

Suppose you have this great web application idea. You successfully develop it and you are ready to have users experience it. You market the product through various means - ads in conventional media, blogs, word-of-mouth, etc. Users start visiting your site and some of them even register. How do you keep them coming back to use your site and its functionalities?

This question is more significant today because there are so many different web applications for different functions that it is tough to keep up. Google, Microsoft and Yahoo! each have several competing products for search, photos, bookmarks, email, etc. Which product does one use? Not to say anything about the smaller vendors of web applications.

One of the factors that considerably reduces my usage of an application is when I have to remember and type my username and password each time I visit the site. I can understand this happening for financial sites, but other less critical sites do this all the time. Even crazier are sites are Orkut which has a checkbox for remembering the password, but seems to forget it all the time.

Another frustrating point is the lack of easy URLs for a site. It is so easy to type a word in IE or Firefox and press Ctrl-Enter, but some sites like live.com from Microsoft needs the extra sub-domain like http://spaces.live.com. Google seems to have done a better job of this with gmail.com and googlemaps.com.

The availability of a functionality in the Big Three (Google, Yahoo! and Microsoft) considerably lessens the appeal of another similar web application. There is no need for another registration. It is likely to be more trustworthy and stable (Google Answers not withstanding).

Among the three of them, Yahoo! does the best job of bringing the links to all its functionalities in its main page, but on the downside, the home page is incredibly cluttered. Google has a simpler interface, but hides most of its functionality under My Account and the "More" link, and sometimes 2 clicks away in the "Labs" section. Having gone all the way to provide a personalized Home, Google should have provided a simple gadget to show all the services one uses, instead of having users visit a My Account page where one has to scroll down to get to all the services.

Cliche Finder

Talking about cliches, here is an interesting link: http://cliche.theinfo.org/. You can copy and paste your text in it and the site would point out the common cliches within it. For now, there is no facility to paste your URL or do a full site search, but it is a good start and hopefully will get better.

Or if you would avoid them in the first place instead of checking for them, you can directly go to the link http://cliche.theinfo.org/cliches. This contains some of the common cliches.

Some other interesting sites for cliches:

http://www.westegg.com/cliche (find cliches containing a particular word)
http://www.clichesite.com/index.asp (collection of cliches from different nations)
http://www.moviecliches.com/ (Nothing to do with literature!)
http://www.saidwhat.co.uk/bizphrases.php (Business cliches and phrases)

Wednesday, December 20, 2006

Management Cliches

What is your most hated management cliche? The one I love to hate the most is the incredibly condescending "Work smarter, not harder". I don't disagree with the general concept of planning and avoiding mistakes as such, but when I used to hear it in the past, I have seldom felt more insulted. Here is what used to go in my head on hearing this comment:

  1. I spent the last "x" weeks of my life slogging day and night for the success of the project and instead of telling me thanks, you are saying that I did all that because I was stupid?
  2. Where were you, the supposed manager, when I was doing all these stupid things? Were you waiting to tell me this sentence after I had undergone this experience?
  3. If I knew how to work smarter, I would have done it already. Why don't you teach me? Oh, pardon me, so you don't have any ideas either?
  4. Thank you very much - next time, I will definitely be smart enough not to work harder.

The incredible gall of these managers is that they really don't want you to work any less harder. If you are already putting in 1000 hours per week, you are supposed to maintaining that AND learning to work smarter! I remember a chap in an Indian company who decided to put the "not harder" part into action. Very soon, he was summoned to a room where he was asked not to be a troublemaker.

What are your management cliche gems? How about "I expect 110%", "it is not brain surgery", "we CAN do it", etc.?

Essential Skills

One of my worst nightmares is going back to school and being forced to learn organic chemistry again. I loved physics and mathematics, but organic chemistry made me crazy, because there were so many different variations and rules for different elements and compounds that it drove me up the wall.

But I did have to finally learn it as it was a mandatory part of the curriculum. Which brings me to the question: How many things in school did you learn that you actually use in everyday life?

Actually more to the point would be: What should you have been taught in school that would have enabled you to live a much better life and handle various situations better? Here are some suggestions:

How about teaching people how to drive properly in school itself and have them pass that before they get their high school diploma? Why? How about the fact that 1.2 million people worldwide are killed in automobile accidents every year and 40 times that many people are injured. Not to talk about the near-accidents, road rage and frustrating driving habits of a vast majority of drivers.

Another really poor job that schools do is teaching good personal financial management. How to save money? How to make it grow? How to control expenses? Why you should care less about the Joneses? How to pay less taxes without evading them? The concept of risk versus reward. The statistical probability of winning the lottery.

A final one is how to handle conflict. In school, you either get bullied and learn to shut up, or you become the bully. You seldom get ahead in a work environment doing any of those. You have to learn to work with people, some of whom may be close to you and others cool or hostile to you. You have to learn to navigate minefields, take setbacks in your stride and continue to push your vision.

Don't tear up the curriculum just yet. School teaches many technical skills that will be required in one's career and life. Yes, we do need chemists! It is just that there are so many other things that are so important and common to everyone that is just ignored in school. It is really sad that you spend the first years of your adult life and career learning things the hard way.

Ref: http://en.wikipedia.org/wiki/Car_accident

Writeboard

Writeboard is probably the most utterly simple and easy application that I have ever used. Here is what we happened. Someone at work suggested a pot luck lunch and sent around a Word document so that everyone could fill in their food items so that two or more people don't bring the same stuff. The problem is, of course, all the emails floating around.

So I went to Writeboard, created a new board by filling in just 3 fields (4, if you count the "terms" checkbox") and hit submit. All I then had to do was send the URL and the password to people. Many of the folks are not very technical, but all of them logged in easily and updated the writeboard.

There was nothing to learn. No confusion. Easy!

I am not suggesting that Writeboard is the greatest software in its field. Obviously it lacks many features like a good WYSIWYG editor, but the point is that for the purpose I was using it, it didn't need those functions. The functionality matched the requirement perfectly. How often do you see software do that?

So the question is: How do one imitate that? Make the user say "Wow!", thank you for meeting all their needs and making it a wonderful experience.

37signals, thank you!

The Real "Work-Life" Balance

Most of our waking hours revolve around work (or study, if you are a student). We spend time preparing to go to work, traveling to work and actually working. In addition, we spent time shopping for items that are necessary for our work, including clothes, books or even pumping gas.

Even just working 40 hours a week consumes approximately 25% of the hours in a week.  If we eliminate sleep and relaxation time, work will be the most significant activity and which consumes the greatest percentage of our waking hours and our resources - physical and mental.

When people talk about "work-life balance", they sometimes ignore this fact. Any effective work-life balance strategy has to take into account that our life primarily consists of work, especially in the early part of one's career. By considering work as a necessary evil so that "one can get back to do what matters most" misses the point entirely.

If a significant part of our conscious time consists of work, it would make for a better life by making work better and more enjoyable rather than using other activities as an escape mechanism from an unhappy work life. The good news is that a lot of this is in our control.

The first step is to identify what aspects of your current work you like and what you don't like. If you are not looking for another job, it is unlikely you would be in your current job unless you liked something about the job in the first place. First, identify those elements that give you the most pain and suffering.

Try to address the issues one by one. You will find that some of these issues can be resolved yourself through various means - delegation, training, education, etc. Other issues may not be in your control. Talk to the concerned people about these issues. Instead of offering solutions upfront, present your problem so that they can take action.

All issues may not get resolved overnight. Some of them may take weeks or months, but instead of focusing on each item, measure the general progress. What is the trend? Is the number of negative issues decreasing? How are you doing overall compared to a previous time period?

Now look at the positive side. Assuming that you like your current profession more than any other, what can you do to make work more enjoyable? Sometimes monotonous work can make work feel very dull. Can you invent ways to automate part of the work? Can you create or suggest new processes that would make the work better?

Most people feel bad at work because of lack of autonomy and greater micro-management by superiors. Try to find areas or avenues within your work where you can work more freely. Finding ways to do your work faster will give you more leisure and more breathing room.

In the IT industry, there is greater room for innovation and inventiveness. Since the technology is rapidly changing, there is greater opportunity to learn and do something really interesting and satisfying at work itself.

A final thought: If work becomes a happy place to be, then even your escapes will be the more pleasant because the dread of going back to work no longer exists.

Tuesday, December 19, 2006

The Cell Phone Computer

Cell phones are becoming amazingly inexpensive, but increasing in power and features all the time. I was discussing with a friend recently about the possibility that a cell phone would one day replace the laptop and the desktop. You would probably have all your data and processing power in your cell phone and would only need a monitor, keyboard and mouse (portable or as part of a docking station) to use the system.

This is not a new idea - there is a TV ad which shows an executive walking into a meeting with no laptop and just using his handheld to show a presentation. Nowadays, we have Windows Mobile and other mini operating systems running on phones - it is only a matter of time before processing power allows a full-fledged operating system to run on a regular phone.

Right now, the cell phone is already performing many roles. For example, many people are using it as a digital camera and, increasingly to take short videos. They have been using it as a contact manager. In some countries, the cell phone is now acting as a credit card or smart card. We have MP3 players in cell phones.

Apart from processing power which is sure to increase, the main limitation of cell phones is their smaller screen size and small keyboards. This is not really a problem while on the road, although there are portable keyboards or virtual laser keyboards to help. The docking station could solve the problem while at work or at home. The only question is perhaps will the cell phone or the iPod get there first?

Sunday, December 10, 2006

Going Home to Work

Another one from the book "Theory of Constraints" by Goldratt (guess this proves that I really liked it). It is about this person who is constantly distracted at work and finally gives up, saying that he (she) is "going home to work" and complete his (her) tasks.

I am sure that many people share the experience of this person. You come to work full of beans, but by the end of the day, unanticipated interruptions from your boss, co-workers, subordinates and customers have eaten up your entire day. And you have nothing to show for it.

How do you manage such a situation? An important part of the solution is to recognize that we cannot really blame other people for the interruptions. They view their interactions with us as necessary for their work. In fact, each of us may be interrupting many others in their work. This realization leads to the next step, i.e., to take control back.

Say, on a given day, you have to complete certain things. You have a mental plan that it will take "x" hours. If the "x" hours requires no interruptions, you have to create the circumstances. Start with informing those whom you can that you are going to be busy with some tasks and you will not be available until a certain time. A quick phone call to your immediate boss and a quick meeting with your subordinates can help. Also, it will help you to skip some unnecessary meetings. If your manager wants your time despite that, you can show your current workload and ask him or her to prioritize the tasks.

Setting up a temporary vacation reply message for your email can avoid interruptions. You can provide an emergency contact just in case of some totally difficult situation. Do not keep your email client open. Check it once every hour or so just to see if there is an emergency.

Planning ahead also can help. When you create your schedule for the next week or month, do not pack it with engagements that consume your entire workday. Schedule some parts of the week with free time that will serve as a buffer for work that spills over.

Then it is up to you. And you can still mess it up personally because there are a thousand other distractions that can keep you busy. Kathy Sierra can explain this much better than me: http://headrush.typepad.com/creating_passionate_users/2006/12/httpwww37signal.html

Software is the new Bureaucracy

This is based on a concept from "Theory of Constraints" by E. Goldratt. He says that software has become the new bureaucracy because as the operations within organizations become increasingly automated through various types of software, these operations become constrained by the capabilities of the software. So software defines the rules and protocols within the company and increasingly takes the place of the rule-makers.

In the "old" days, there would be an Employee Manual which would explain the responsibilities of each role within the organization - what you should do, can do and cannot do. These rules have their purpose as it helps clarify what the individual must do, but it also introduces boundaries that stifle creativity and innovation. When combined with poor management in the upper and middle ranks, the rule book acts as a demotivator and results in the stagnation of key performance indicators of the company.

Such a course can be changed or even reversed if managers decide to eliminate old rules or bend them as necessary with changing conditions. This can be difficult because changing the culture of an organization can take time or can be traumatic for many employees, but it can be done.

But when the rules are automated through software, changing course can be very difficult. Hollywood movies give the impression that a software nerd can do anything, but the truth is that a non-trivial software application, however well-designed, may require significant changes and, perhaps, even rewrites if it has to meet fundamental changes to the strategies of a company.

One major hurdle is that the data essential to the company is "inside" the software. In the old system, the data was separate (usually in some file cabinet) and the rules (the manual) was separate. The rules could be changed and you could still access your vital information. Now, if you change your software, you have to worry about porting your data over and also worry if the old data will be affected by the new rules.

Buying a new shrink-wrapped software to run your business is not possible unless you are operating a small enterprise. Even though, you will have to worry about customization. As your organization grows, the product will quickly become outdated.

One possible solution is to have an initial design of the software so that it can take care of changing rules. This is possible to a degree, but it also increases the initial cost of the software and also it cannot take into account major strategy changes. Incremental changes to the software by keeping a software team busy is expensive and again is no guarantee against a software rewrite when business fundamentals change.

Perhaps, there is no silver bullet and businesses will have to spend money (up-front, continuously or on necessity) to change or rewrite software. The important thing to realize is that this is not an option. In this fast-changing world, any software that meets your needs perfectly today will be outdated tomorrow (and I mean, literally tomorrow) as you find new things you have to do or the external world changes in spite of your best efforts to create a final analysis of its rules.