Monday, August 29, 2011

Filling timesheets

I am sure a lot of us would have had a tryst with the "nonsensical" work of filling up time sheets. This was initially introduced to keep a track of how long does an employee spend his time in a project, so that it could help them for 2 purposes

1. Bill the customer for the exact amount of time the "employee works".
2. Calculate exactly how much time he works so that it will help in future estimation of projects.

But how effective is this process? Measuring productivity has always been a great challenge. Because productivity is not just about time. It is about quality, efficiency, growth, etc.... And what is the solution that we have today? Time-sheets.

Why would I want to enter that I worked only 5 hours? Because I know that if I enter 5 hours I will be questioned, even though I had finished my work. Its like the prisoners dilemma problem in game theory. You don't trust the system, because the system doesn't trust you. And the system also thinks the same way.

Now, what about entering more than 8 hours? That is also a tricky problem, because you will be questioned on your effectiveness to finish the job and on top of this there would be 100s of clauses in the SoW which would detail that you wouldn't bill the customer more than 8 hours a day. So the magical number of 8 hours a day was established and employees just enter that number.

So this madness continues on a week-week basis to enter 8 hours/day. And in this process, we are not solving both the issues mentioned in my first paragraph. We will keep billing the customer 8 hrs/day.

In my opinion, organizations should first open out this channel to accept realistic time lines from the employees and bill that same back to the customer. Yes, it will cut corners, but that's alright in the longer term of things. There will be certain unpredictability, but its alright.

I think CMM guys should make this as a mandate in their evaluations !!!

Sunday, August 21, 2011

We belong to 2 parents

In this post, I want to address one specific case of attrition. Attrition of employees from their "biological parents" to their "foster parents". In IT services, we are bound to 2 sets of parents at any given point of time. And I guess that relationship is what causes these kind of fall-outs.


Biological parents
These guys are the ones whom you work for. They are the ones who recruit you and position you into projects. They are the ones who send your paycheck every month. You belong to them.


Foster parents
These guys are the ones for whom you perform the work. They are the ones who nurture your skills. They feed you with challenges & requirements. They are your customers. In fact, they feed you and your biological parents.


Now, when you spend a lot of time with your foster parents, your loyalty and faith starts tilting towards that particular organization. You will be honest to them. You will give them unbiased opinions. You like them. What happens to the biological parents? They still own you.


I have seen a lot of my friends leaving their biological parents for a more stronger relationship with the foster parents. Is it unethical? No. I don't think so. It's purely the way this industry works. When there is osmosis, we will have reverse osmosis too. Its talent here. And it will move towards higher concentration. If the "biological parents" have to somehow stop this osmosis, they should be gearing for better people policies, which will attract their employees to stay back. Ideally, they should be more concerned about their people leaving to join their competitors more than their customers. Because when your own employee leaves to join your competitor, you have leakage of your IP, whereas if he or she joins your competitor, you have promotion of your IP.


I feel its perfectly okay when your employee joins your customer. He will spread the good word of your organization.

Tuesday, August 16, 2011

Why should a techie do pre-sales?

As a technologist, I used to always stay away from the world of sales. I hated it. And I hated sales guys even more. Because they would always sell some kind of service which we would either not have or not have currently.

A couple of years back, my boss wanted me to realize how stupid I was to think like that. He asked me to do pre-sales. In my opinion, a pre-sales consultant's job is the most discretely defined of all the positions that lead into the executive management space. A pre-sales consultant's primary responsibility is to convert a lead into a customer. Never was I faced with such a challenge in my entire technical career. All I have to make sure is not to lose a customer by delivering some crappy piece of software. Now that's preservation and not conversion.

This posed me immense challenges because my mindset had to change completely. From a cubicle-guy to a board-room guy. From a SQL-Editor guy to a Powerpoint-guy. From a internal-guy to an external-guy. The last point is very important. Pre-sales makes you more of an external guy. An external guy is one who understands the market. He is the one who understands the customer. He finds problems rather than solves problems.

So now, why should a techie learn pre-sales? Simple. To find problems. The more and more you grow up in your expertise ladder, you realize that you need to find problem patterns. As a senior consultant you are expected to know the problem before hand itself. And have a pattern available for the same. And pre-sales helps you to get into this mindset. Pre-sales will help you to lookout for problems before problem finds you. It will make you think in terms of broader problems and even broader solutions.

You talk to a pre-sales guy. He will give you the problem, design considerations and solution. You talk to a techie. He will ask you the problem and then he will give the design considerations and solution.

Monday, August 15, 2011

I need supervision.

Can you supervise yourself? One of my company's co-founders had published a book called 'The Professional' and he talks about professionalism is about self-supervision. A professional is about a person who knows when he has completed his job; he shouldn't be relying on somebody else to approve the completion of his job. If he does, then he is an amateur or apprentice.

Somehow, I am not convinced about this principle. And the reasons are as follows

1. The world of IT services is ever-changing. In that case, how do I know what is complete? I need some more eyeballs to tell me whether what I have done is correct or not, whether I have completed it or not. I need supervision not only to tell me if I have completed my work, but also who can monitor me on a day-day basis. To track my progress. To tell me if I am on track. To tell me if with this rate, whether I will miss the bus or not.

2. Our requirements are not as static as an undertaker's job. Its pretty fluid. We have to adapt and change. In such a changing process, you need expertise to validate your work. You need supervision to watch over your direction.

We all know the importance of reviews and followups. A world without reviews and followups is a highly idealistic world. A world of programs. Speaking realistically, I wouldn't let my own team self approve their own work, no matter how brilliant the team is. I will certainly get into some amount of detail and followup. I will certainly want to track their progress and not wait for the last day to get a status. Its not because I doubt their capabilities, but because I know that only constant feedback and tracking improves the quality of work.

Thursday, August 11, 2011

Getting stagnated...

I have spent my past 8.5 years of my career doing Data-warehousing and Business Intelligence. What next is something that I keep asking to myself, almost everyday? One of my managers stopped by and asked me.

"Are you getting stagnated?"

I was taken aback. I wanted to know why did he feel so. He told me - "Because you are working on the same thing for 8.5 years".

In Indian IT Services, we have this strange theory engulfing every software engineer -

"Every 2 years you need to get promoted and become a Project Manager very soon".

And once you become a Project Manager, you should become a Delivery Manager and then an Account Manager and then...It depends on tall the corporate ladder and how wide it is....

This phenomenon is affecting the whole technology arena. The IT Services industry in India wants an engineer to transform from an "Innovate-new-things-guy" to a "Get-things-done-guy". An "Innovate-new-things-guy" has a lot of technology background and a "Get-things-done-guy" has a lot of management background. I would say the latter is the Supply part of the equation and the former is the demand part of the equation. And the equation needs both the parties. Somehow our IT Services managers are causing an imbalance to this equation by drying up the "Technology pool".

There is never stagnation in the technology pool, because technology itself is not stagnant. Do doctors get stagnated? They sit in the same chair for years and years and do the same kind of diagnosis, though every case would have its own complication.

There is always a career for specialization.

Sunday, July 31, 2011

My biggest challenge right now. Follow-ups.

Last 2 weeks in my project were pretty challenging. Reason - 'Follow-ups". I hated the job of following up with someone to find out if they had done their job.

I hated it because I felt I was knocking into their privacy.
I hated it because I felt it was not under my control anymore.
And I hated it because it makes you feel like a beggar.

The more and more I hated it, the more and more I realized that it was inevitable. I had to do it. It is unavoidable. Now, I had this big task of doing something that I hated. Whenever I faced situations like this, there is one thought which keeps me kicking - "If 'I' could learn and write SQL, then I can do anything". SQL is something that I hated a lot. I used to score "Single digit numbers" in my training tests. But today SQL is my career. And I do it passionately. So I decided to apply the same philosophy to follow-ups too. Turn something that I hate, to something that I have to do it passionately...

Vidaathu Karuppu (A Tamil phrase for "an omen that never leaves your back")
Treat it as an omen that will always sit on your back. You just have to be-friend it. Once you start perceiving it as an "always existing" to-do, you will start designing permanent solutions for it. My very first hour in my day is a "Follow-ups" calendar item. I send reminders to all my "follow-up contacts" or give them a call to find out.

Sending a PENDING Status Mail
I send an email with the Subject line as PENDING. It is little bit rude, but I find it working.

Fix an interval and keep reminding
Fix up an interval like 1-2 days or 3-6 hours or any limit depending on the criticality of the process and keep reminding.

Highlight the impact and also the benefit of finishing on time
Make sure you highlight the impact of the delay to them. Also highlight the benefit of finishing it on time.

I use one of these techniques to get my followups closed. But I still struggle, because it needs a lot of patience.








Friday, July 29, 2011

I made a big mistake. Farewell is as important as Introduction.

I made a big mistake. When I signed off from my previous project, I didn't send a "Farewell email" at the right time. I sent a week later.

I worked out of my client's place. I sent an email to all my colleagues onsite (the term used to refer to client's location in the offshoring business) the day I left from the place. But somehow missed to send to my counterparts at offshore. I just sucked.

I didn't realize till one of my colleagues was surprised that I had left the project and I hadn't even conveyed my move. I felt miserable.

Sending a farewell email at the right time communicates a lot of emotions. It says that you care to communicate your decision and you respect them. It says that you would want to stay in touch and finally it says how much you will miss them when they are not around you.

I realized that farewell emails are equally important as an introduction email and it has to be drafted in a nice manner at the right time and not for the sake of sending one.

Wednesday, July 27, 2011

Cost of Default - A "Derisking" technique

I parked my car in my usual Park-Ride facility and was walking to catch my light rail to my office. I had to enter the parking lot # to buy my tickets. I remembered it, but I was reluctant to take a chance. My train had arrived, but I was prepared to miss it and go back and check my lot#. I walked back to the lot and verified it. My memory was right.

When I reflected back on that incident, I thought it was too risky to rely on my memory and the cost of default was not proportionate to the risk that I take (The cost of towing and the frustration that accompanies with it was just too much to take). The imbalance made me to go and verify it.

Why don't we do it for our own projects? Before we release a piece of code, do we think if it is worth releasing a buggy piece of software? Do we weigh the cost of default to the urgency? Probably, if we start to, it might help us to avoid a lot of unnecessary chaos that we are causing to the IT services industry,

Monday, July 25, 2011

Smaller teams vs Larger teams - What should you work in?

I have been always faced with one dilemma throughout my career of 8.5 years. "Working in smaller teams" vs "Working in larger teams".

Ok !! Let me define first...

Smaller teams - not more than 4.
Larger teams - more than 6.

I have experienced both these worlds, but I keep toggling always thinking the grass is greener on the other side. Or probably its paler on the current side...

I would prefer to work for smaller teams because

1. A smaller democratic setup.
2. Easier to steer the ship. Don't have to worry about too many moving parts.
3. Work gets noticed/criticized/rewarded immediately.

I would prefer to work for larger teams because

1. Highly dynamic and challenging environment.
2. Complex human chain.
3. You will learn scalability (I was born in India).
4. Most of the interviewers ask you how big was your team size and not how small was your team size.
5. You will learn to be more realistic.

Hence, at the end of a project, just like TamilNadu politics, I just vote for the other side. I think both the kind of projects are necessary for the evolution of IT services. And if you bias your opinions towards one of them, you will soon be gobbled by the nature of the game...

Monday, June 27, 2011

Leaving a mark...

I have been playing the role of a DW Architect for a large financial services organization over the past 6 months. When I reflect back on my duties and responsibilities, one aspect came out very strong that gets missed out in the job description.


"Leaves his Unique Selling Proposition trace in the project"

There are often a lot of other crap that the organizations look for like..Coordination between the business and IT....Owner of data models....Provides strategic direction to the IT team...etc...

Do you think Emperor Shah Jahan would have given a big job description to his architect,Ustad Ahmad Lahauri, when he set out to build the Taj Mahal? He described the Taj Mahal as


Should guilty seek asylum here,
Like one pardoned, he becomes free from sin.
Should a sinner make his way to this mansion,
All his past sins are to be washed away.
The sight of this mansion creates sorrowing sighs;
And the sun and the moon shed tears from their eyes.
In this world this edifice has been made;
To display thereby the creator's glory.
If you read the last line, it stresses the need to display the creator's glory. An architect should leave behind his glory after he is long gone from the project. That should be the true job description. It should be the one thing that the people would still talk about after he has resigned. The rest of the responsibilities are just enablers for the ultimate glory.