2 Absolutely Necessary Qualities in an Offshore Team/Member

After a recent event – where I ended up working all day Saturday, I have been thinking a lot about Offshore developer/teams and Onsite Clients’ requirements. Having worked on the other side where the Client looked down upon us for every little mistake – but couldn’t let us go because it doesn’t get any better – I have realized couple of things.

Here are 2 absolutely necessary qualities that I would expect in any Offshore development team or member.

1. Escalate: Offshore development kinda happens in future. I mean the timezone wise they are always ahead of us. This needs to be used as an advantage. Whenever something goes wrong or something doesn’t work – the Offshore team needs to escalate it to their Clients Onsite. This helps the Client to take necessary action even before this issue turns into a roadblock.

I am not sure of any other country, but of what I have seen mostly in India. So, these observations are based from my Indian work experience. It is such a strange medley of opposites and paradoxes. Indian developers are very smart to grasp technical ideas but their smartness fails them when it comes to communications. From the childhood, most Indian parents encourage their kids to become class toppers (Believe me, topper is a household word there, I was once a topper too.). There is no emphasis on clear communications. Parental authority in the initial stages and later work based hierarchy system actually supresses any communication abilities a person may have.

The end result is – a brilliant mind, but a numb tongue. So, if only the developers or the team members can learn to voice their opinions much more vocally – we would not have so many issues. Escalate problems as you see it. Raise red flags whenever you can. Your Onsite manager is not your Dad, he won’t be mad at you or judge you for bringing up a problem/issue.

2. Proactive: Most Indian developers I meet are reactive in their approach to development. If I give them a problem they will solve it based on their knowledge. But life doesn’t come in neat packets of problems. It’s a big mess that just overwhelms you.

Being Proactive means, anticipating delays, anticipating what might come up and prepare accordingly. It is said that only 300,000 years ago Humans developed – Pre-Frontal Cortex, the area under your forehead which gives us the ability to simulate any situation just by imagining it. Prior to that, we had no clue of any experience which we have NOT faced it physically. Just imagine how important this is. We got a whole extra add-on. We got a simulation laboratory right in our heads. This gives any human to use Imagination to try to simulate things, situations, actions, behaviors etc without even physically experiencing them.

So, developers – please put that to good use. Use that 1/4th of your brain to basically see the future. It’s something everyone does without being observant. It’s called day dreaming. When you are dreaming of that beautiful girl sitting in front of you in a Coffee shop or when you are dreaming of that vacation you have been wanting – all these things use your frontal brain. So, next time just use it in your projects to fore see what would happen if you did something and what possibly could be your response to it.

An example: We setup a stage server and I asked the developer to add some changes there and test them. He made his changes, but when he went to test them – the login didn’t work. So out of habit of his reactive mind – he assumed that he is powerless and basically sent out an email to me (from the future) telling me that the login doesn’t work. Well, you are the developer – if login doesn’t work then you gotta fix it. That’s what I did. When he said, the login didn’t work – I debugged it and figured out what was happening and I fixed it. The only difference between what he did and what I did – is not technical, but psychological.

That’s all. I don’t want any more features in my developer from India. I don’t care about your sex, about how you look, about your skills, about your coding powers etc. All I need from you is – A good red flag raising capacity and the ability to fore see them coming.

That would save the whole industry of Offshore development from using double the bandwidth in communications – back and forth.

Non-Technical Managers

I started working on computers in the year 1992. It’s been almost 17 years I have been working on software. As I left school to get a serious career in Software programming, I saw a clear cut pattern about people and software.

You see in this world there are 2 kinds of people –

  1. People who know Software
  2. People who don’t know anything about Software

people

But, I have realized that there is a third kind and the most dangerous one.

3. People WHO THINK they know Software

people2

And believe me there are a lot of people who are out there who fall into 3rd category. With technology advancing so fast, people who wield a iPhone or a Blackberry think they know enough about software. It’s because the software “using” has become so dumb and easy.

For example, take ‘iTunes’ – it’s the best interface ever to interact with music files. Period. It also comes with a Apple store plus a kitchen sink! People love it. People like one windowed interface to all their music. If you read that carefully – I said, ‘using’ software has become so easy. But the problem is ‘building’ software hasn’t improved as much as the ‘using’ part.

itunes
iTunes, the mother of all future software design

Now, coming to the point. Imagine if you belong to Group 1 (People who know Software)¬†– you work hard to build software and you know it and you are confident about yourself. Then as your career progresses you become a ‘Technical Manager’. You talk to developers and you give out ideas, you schedule project plans, communications. You know which tools to use and you have got it under control. Awesome. Congratulations and my kudos to you.

Imagine if you belong to Group 2 (People who don’t know anything about Software) – you work hard, you buy a Mac, you have friends who work in software but you never talk to them about their tools. You talk about the outcome of the software process, a product or a service. You use, of course, iTunes. You buy legitimate software and you are happy with your Apple updates. No problem. In the alternate universe – you buy PC, go for Vista and cussing Microsoft & HP printers but you still end up loving how easy iTunes works and how fast Safari 4 is.

Now, Imagine if you belong to Group 3 (People WHO THINK they know Software) – You work hard, but you don’t know that you don’t know. You have software friends, but you yap away some jargon. You use iTunes and think every software in this world SHOULD look like iTunes (Kamal, I can hear you giggle). You think software is cheap and easy and so are people who work on it. You zoom through your life without any clue about software but still maintain your egoistic authority on it.

The major pain in the butt situation is when these Group 3 people become Managers – by some chance or luck or sheer Oldage or money (mergers). These people think they know how software works and how their developers think. They have no idea about software project management and no clue about versions, timed release of software and best practices of software. What happens is the slow decay or rotting of the company. I have been in so many situations in my career all-together that I saw so many of these so called “Non-Technical” managers killing off the product, service and eventually the company. But, the real problem is they don’t know that they are the problem. They move onto new companies, new acquisitions and killing many other future companies.

How do you identify these people?

Look out for these warning signs.

  1. When they say they want a new tool to create a website with 1 click.
  2. When they ask you access to FTP because they think the data is on FTP server
  3. When they want everything to look like some software they have used in the past (Hint: iTunes)
  4. When they refuse to give you access to server but still want you to build a website on it
  5. When they ask you to store passwords & Credit card numbers in plain text because they want to see them in daily reports.
  6. When they want everything to be exported to an Excel sheet
  7. Their favorite quote – ‘I wanted this feature yesterday’.
  8. When they want ’rounded corners’ on everything.
  9. They think Web 2.0 is a boxed product.
  10. When they treat ‘Testing’ as a ‘Delay’

Let me know if you come across anything I miss. I am sure there are many more.

How do you fix this?

This is tough, but with some patience and some systems these could be fixed.  Here they are:

  1. You basically have to educate this person who thinks he/she knows software. The education they skipped in the past needs to be put in their brains.
  2. You create a system. You tell them – this is where you keep an eye and I will update the status when it’s done. Use some online project management tool.

If these 2 fail, you become an expert in one of the software niche and become a freelancer that way you never have to work under a ‘Non-Technical’ Manager. You finish a project and you move on. You never have to educate anyone and you will be happy with your work. You would giggle inside when the ‘Non-Technical’ manager references iTunes in a meeting, but at least you don’t have to see him after the project is done.