Sunday, March 2, 2014

Figure out what your destination is


I love Mahabharatha and all its characters. You can derive many parallels to your day-to-day work. Each character is either a design pattern or an anti-pattern. Lord Krishna makes a remarkable statement - "The river's final destination is the ocean, no matter how many big mountains are on its way". Each person has to figure out how to reach there. Pardon me if I am being too philosophical...

I think this particular sermon from Lord Krishna is the right message for IT Engineers who are working on huge projects (>100 members) and who feel restricted by the "policies/guidelines", that the projects enforce on them. 

If you know your destination, the "project bureaucracy" is just one more big mountain for you to cross. 

Are you getting bored with your mundane Java coding job? Figure out what your destination is. If your destination is to become one of those "programmers who earn more than a CEO", then the mundane coding that you are doing is probably adding up to the "10,000 hour rule"

Are you getting bored with the data modeling work? Figure out what your destination is. All you have to do is to find out learning opportunities to perform more work on data side, which might include integration or mining or visualization or many more..

Just figure out what your destination is and things will get lined up. If it still doesn't line up, then you are definitely not in the right place.

Saturday, January 19, 2013

Keep your desks clean


Every time, an executive representing the customer visits an offshore IT campus, you would see e-mails like these spamming the developer's inbox from the senior management of that company 

"Keep your desk spaces clean and neat" 
"Do not leave Tea cups especially in open areas" 
"Be prepared to address any questions at your desk from the client" 
"Keep the lights on"
"Please come in business attire and be dressed properly"

Does the customer really care, whether your desk has the unfinished coffee lying around? No. 

He cares for what you deliver after drinking that coffee. And not what will happen to that unfinished coffee.

And the timing of such emails is great. "Only when the customer visits" I think the management stop worrying about desk cleanliness and start worrying about code cleanliness. 

Should desk cleanliness be a factor in becoming a preferred vendor for a customer?

The developers have to be prepared to answer any question from the client. Why should he  be prepared? Is this some kind of examination or what? The developer should be already  knowing what he is doing. So, if the customer has any clarification on the code that the developer has written, he should already know it. And I doubt the customer is going to fly 10,000 miles to find out why a piece of code is working in a particular manner. Should the developer be prepared for a customer visit? I think the management should be prepared for the customer visit, because they will have to answer tougher questions regarding deliver quality. And let the developers be how they are.












Saturday, June 23, 2012

Service your customer at the right time

I went to an Indian restaurant near my home for lunch. My wife is not in town and I am not the greatest fan of my own cooking. Nowadays, most of these guys offer the "one-size-fits-all" buffet for lunch, which is good for the owners, not so good for the customers. Still, I went forward, took the plate and went straight to the "Non-vegetarian" section.

I opened the food warmer on the appetizers, which was named - "Tandoori Chicken". And I didn't find a single piece. I was disappointed, but I was so hungry that I decided to move on to the rest of the buffet table. I served myself some hot naans and curries. And went back to my table. On my way back, I told the waiter that the Tandoori Chicken container is empty. He told me he was sorry about it and offered to bring the chicken "fresh" from the kitchen, RIGHT AWAY.

I loved Tandoori Chicken and was ready to wait a few minutes before starting my meal. 5 minutes went by. There was no tandoori chicken. I wasn't able to fight my hunger. So, I started eating my main course (which typically is naan bread and curry).

After 15 minutes, the waiter brought me my Tandoori Chicken, hot from the kitchen. By that time, I was having my desserts. Now, my penchant for Tandoori Chicken, forced me to eat them, even though it had missed its chance. The worst part was that it tasted terrible. To serve me quick, they brought it without the "Tandooriness" in it.

Now, you serve late. You have already missed the bus. But you still try to catch up, which is good. But you serve bad. I am sure I won't go back to that restaurant ever.

When I was driving back, I started empathizing for the customers whom I would have worked with. There have been projects when we have delayed deliveries. We missed the bus. Even when we delivered good afterwards, it was late. Our code just missed the customer's taste buds. I remember we cursing them for not being empathetic for our hard work and great quality code. I just realized - "It doesn't matter"

It is very critical to know how important is something for your customer, not just quality-wise, but "time-wise". Even if I received a great pizza from Pizza hut, but if it is 30 mins late, I wouldn't be too happy with them.

Wednesday, March 7, 2012

How EZPass taught me to reason beyond the obvious?

It was a simple lesson learnt. Whenever I cross the tolls in the EZPass lane and happen to see the front-of-me motorists'  EZPass status alerting - "Go, Low Bal(ance)", I always thought that the guy had forgotten to re-fill his EZPass. It is right most of the times, but not all the times. Now the "minority" reason never occurred to me and I always thought that could be the only reason.

A few days back, my EZPass also started showing the same alert whenever I crossed the lane - "Go, Low Bal". Now, I had setup automatic refills and how could that happen. Then I realised that I had replaced my lost credit card a month back and the EZPass had the automatic payment on that lost credit card.

The core reason for my EZPass status alerting was not that I forgot to recharge it, but I expected the recharge to work automatically, but didn't work because of a failed  payment. That could have been the reason for many of the motorists that I see who gets alerted, though not a majority, as you don't expect the credit card payments to fail.

The obvious reason (motorists forgetting to refill) was so obvious that it completely masked me from other potential causes (failed payment gateways) and only experience taught me that there could be multiple reasons for a failure.

So, whenever there is a screaming, obvious reason in front of you for a failure, don't get dissolved in it. There might be also non-obvious reasons for a failure, which you might completely miss.

Sunday, February 5, 2012

Attrition promotions

The Indian IT industry suffers from a real bad phenomenon. - Attrition promotions.

Let's say you are a super technical brain and is the most sought by your client. The client loves you and thereby your boss also loves you.

Now, you decide it's time to move on. Because the job doesn't interest you anymore. So, you open up the monopolistic email client "MS Exchange" and start happily typing your resignation letter. And then you click "Send".

A few hours later, if you are a super performer, you will be stunned with the number of calls you receive asking you to reverse the decision, as you are the most critical "bolt" in the engine.

Finally if nothing works, they promise "Promotion".

And then if you are person who loves power, you would gleefully accept it and work for another 3 years, before you send the next resignation letter.

Now, this is what I call as an Attrition promotion. To stop losing you, they promote you.

The industry is flooded with such wrong promotions at the wrong time. You should get promoted, when you are found capable and not when you want to leave the organization.

Instead of a promotion, the organizations can challenge their employee with some meaty work and equivalent pay. Promotions signal a wrong direction. Promotions mean that the organization is ready to wide the peak of the ladder.

Don't promote to make the guy stay in your company. If you find him capable, do it upfront or else don't do it.



Sunday, January 29, 2012

A hair dresser's "Just for fun" past-time

Yesterday, when I was having my haircut, after a long 3 month break, my hair dresser asked me...

Hair dresser: "Sir, where are you from?"
Me: "India"
Hair dresser: "What do you do?"
Me: "Guess?"
Hair dresser: "So, if you are from India, you should be a software guy. Right?"
Me: "Perfect. Thanks to clustering algorithms in data mining"

I knew what he does, but I went on to ask him, what else does he do? He told me he takes MIT Online computer science classes once he goes back home and has been learning programming to write some apps for iPhone.

So, I asked him why is he doing all this?

"Just for fun".

Wow. That hit me like a bullet. Learning computer algorithms after a day's job of standing and dressing people's torn hair and that too for fun...I personally was ashamed of myself.

"When was the last time I learnt a new programming language and that too for fun....And I call myself a software guy..."

Realized that being in IT for a decade, has stained me with the whole notion of "cost-benefit" analysis. For everything, I look for a cost and benefit.

"What benefit do I get by learning Python?"
"What benefit do I get by learning clustering algorithms?"

It was a rude awakening. Probably fun is the benefit....

Thursday, October 13, 2011

Leadership is support....

Do you feel like calling your boss when you are in a problem hoping he is there for you?


In my opinion, leadership is about the support you can provide to the community that you touch upon - your team, your customer, your vendor, etc, when they need you.


I want to take an example of one of my colleagues, who is basically an account manager. His role doesn't demand him to fix a java or a shell script, but in case of one, I feel like reaching out to him. His role doesn't demand him to take care of low quality conference bridge issues. But in case of one, I reach out to him. And he does all this without a fuss. For me, he is a leader.


I know whom to reach out in case of an issue. Are you one of that kind? A supportive leader or a tyrant boss.

Wednesday, October 12, 2011

Working with your competitors...

The IT Services business is very very tricky. And to win business, you are supposed to do anything...


You need to stay competitive. And you need to stay with competition...


The latter part is a very unusual situation when you are supposed to work with competition to deliver value to the customer. Now, how do you do that? You would have won the deal against the same competition and post that you need to work along with them. 


To give an example, take a Manufacturing services company getting serviced by multiple IT service vendors. Nothing unusual about it. Now, typically in a datawarehousing project, the data is pulled from multiple sources and then integrated into a datawarehouse and then reported from this environment into a presentation layer. 


We have 3 distinct ecosystems- sources, data-warehouse & presentation. Now, if each ecosystem is driven by a separate IT services vendor, and all 3 of them compete against each other for every project, how can you expect harmony to exist between the 3, which will naturally flow into the application that is getting built. 


Lot of times, projects get delayed not by the team performance, but purely by such strange de-risking practices followed by organizations to make the competitors work together. They never can. There will always be the line where information sharing will be seen as an "evil act".

Sunday, September 11, 2011

Learning to document..hmmm...no...communicate

We document something or the other everyday. 

We document for "formality" purposes. 
We document to "save our asses". 
We document for "milestone deliverable" purposes (payments would be dependent on it).

But how many times have we documented to communicate?

Every time, I compose a design or an architecture document, it starts on a good note. I enter the "table of contents", with a lot of thought and structure and then as the documentation progresses, the interest wanes. The objective starts with "communicating the design" and then finishes with "documenting the design". A more deeper thought on it revealed that when I start documenting, I start with documentation, not communication...High level design documentation, low level documentation, support manual documentation, etc...These are all boring words to anybody. Who cares to read the disclosures? Who cares to read the "Conditions apply?". Because these are all documents. Their primary purpose is to save themselves and not to communicate something to their customers. That's why they are a failure..

Now documentation is a boring word...I researched the two keywords - documentation & communication on Google's Ngram Viewer and this was the graph...
(Communication vs documentation)

It is a nice comparison between the 2 words. One basic inference is that "communication" has been in use for a long time. Documentation seems to be a word of the post-40s. And communication has been used in a lot of books compared to documentation, illustrating the fact that its communication you would want to do rather than documentation in your projects.

Once you start thinking in terms of communication, your whole perspective towards composing any kind of artifact changes. You would want to communicate your design process, challenges you faced, your solution, benefits and drawbacks. Its like selling your design process. This will free you from MS Word documents. It can be a simple presentation or a movie or an audio file too or just a diagram.

Documentation..hmmm...no...Communication is an art..Its one of those pieces when done right, the satisfaction is fulfilling. Ask the book writers and scholars.

Tuesday, September 6, 2011

Formal meetings in informal setups

I entered this field of pre-sales/sales without any kind of formal education, so you can expect me to be a bit rusty. One month ago, I was in a casual dinner setting with a potential prospect. We were having dinner, chatting about projects, states and their cultures, etc...It seemed like everything went well that evening. I was giving my usual DW and BI story, maturity, roadmap, etc...I was invited into this meeting to primarily impart some potential pitfalls about a tool that the customer was planning to buy.


It has been more than a month and we didn't hear back from them, in spite of repeated followups. I was wondering why. Today, I received a call from my sales manager, who was also in that dinner meeting that evening. He told me. 


"Senthil, I would like to give you a small piece of useful tip. Never use your mobile during such a meeting, even though it might be a casual dinner meeting. Either excuse them and use it or don't even use it". 


After some analysis on that particular incident, I recollected that I used the mobile to text my wife that I will be coming home late. And some more analysis revealed that I had taken the dinner meeting with the prospect a little too light. After I was done with my job of educating the prospect on something that they were looking for, I was relaxed and forgot that I was still with a prospect and not a customer. I should have been more careful.


I realized that it was a bit rude from my end for having used my mobile. I wouldn't have certainly used my mobile, had I been in a conference meeting room or more of a formal setup. The restaurant made me feel that it was a very casual meeting and I felt it was okay to give up some of the "formal" rules.


Formal meetings in informal setups can be tricky. Never fall for the casual ambiance. It is still a customer meeting. I screwed up that day and I am thankful to the gentleman who called to correct me.