Thursday, August 31, 2006

China, India and Bangalore - the new order, in that order?

My comment on the Infosys blog:

More interestingly, Richa Govil quotes Silicon Valley and Bangalore as examples of friendly ecosystems to Tech Entrepreneurship and IT professional hiring. (respectively) I'm not sure this has anything to do with an IT outsourcing ecosystem - the only plus for bangalore, and in fact, India, is it's cheaper and skilled engineer force which has been numbed by years of retrograde teaching techniques .(learning by rote, low practical exposure etc.)

You need all three. You need skill, that's what makes you deliver. You need mind-numbness because such work involves long boring processes which aren't fun for the technically passionate individual. And you need cheap, or there will be too many questions.

China has all three, in perhaps as much abundance as India. They only need to get their act together; English skills is their only drawback. In fourteen years, they can bridge that gap, and they already have years of mind-numbness from communism. How can India match their infrastructure?

As for Bangalore within India - ask around in the city about the new commercial "software parks" and whether they're able to get tenants? The answer, my friend, is blowing in the wind.

Thursday, August 24, 2006

Creating a work culture

I'm trying to figure out what the best way is to create a positive work culture for three People Goals:
1) Hiring: People should want to join.
2) Retention: People should want to stay.
3) Growth: I should be able to scale up manpower and still maintain 1 and 2 above.

The business goals we have involve Productivity and Quality. Essentially this means profits - higher revenues, lower cost.

So how does one build a work culture that addresses the "people" goals, and at the same time maintains business goals?

A few things I've considered, but will not do:
1) Get tons of money and throw it at people. Won't work. Firstly, it's very difficult to scale, and secondly, you don't get the business goals => paying more salaries does not mean more productivity or quality.

2) Do "cutting edge" work and get phenomenal talent. The gaming industry works this way; some of the best programmers work in this field because it's dynamic, exciting and cutting edge. You can pay less; programmers will work to be part of such a team and product. Does not work for me; for our work is quite banal - bug fixing, spec writing, database development and the like. Personally it's worse - my job involves a lot of Microsoft Word and Excel. So my edge is as "cutting" as a hammer.

3) Huge Infrastructure, CMM/ISO etc, Lots of HR, Mass Recruitment. The Indian Software biggies do this - you basically get cogs in the big wheel. One cog goes away, replace it with another cog. The overall infrastructure promotes retention: Having a Pizza Hut in the campus, getting little cycles to roam around, Gyms and swimming pools etc. - the poor cog won't get this in most other companies, so he'll stay. CMM/ISO processes add lots of resume glitter. A huge HR force and mass recruitment makes sure you have enough low cost bench resource ready to replace the exiting cogs. If you have constant inflow and constant outflow, the net result is stability.

I can't do this - Don't have the money, and won't get it.

What I choose to do instead is to approach things in a piecemeal but integrated manner. (Whatever that means). Here's the story.

Make them want to join

Create a solid pitch to every candidate, with our business focus in mind. Each person should be aware of where the company is, where it's going and most importantly what they will be doing to take it there. Talk about growth, rewards, performance assessments and everything else mentioned below.

Create good infrastructure that's attractive but not expensive. A clean and quiet office, enough whiteboards and pinboards to write or pin stuff, high end machines with awesome monitors (no they're not that much more expensive) Etc. Impress them when they're in for the interview.

Make them stay

Provide a well defined career path and skill credits for both technical and leadership levels. Every individual can obtain skill credits by going through courses or passing certain tests.

Set up internal training programs (online) with certain skillsets and Assessments with internal certification and skill credits. This ensures they have an objective way to assess where they are and where they can go.

Give employees exposure to conferences, presentations and user group meetings: Not very expensive; definitely cheaper than getting a corporate trainer - and builds technical strength.

Organise a company wide meeting every quarter in a resort or such: The cameraderie will build over time. Ensure that employees can be frank with you here, and tell them where you are and where you expect to be by the next quarter.

Infrastructure: Small things matter. In India an employee is happy to wear a company T-Shirt - don't skip that, ever. Get more company branded merchandise: Pens, Pads, Diaries and the like. Get a coffee machine; people like to have coffee when they stay late.

Measure their performance

Set up internal skill assessment metrics to see what level of skills each person has, in order to see what technical or leadership level they can be on.

Set up business goals: Ensure that people get their estimates right with respect to actual work done. Measure this. Divide work into templated tasks that have internally set estimates - and have employees enter their timesheets regularly so that you can check how well they've done.

Measure project performance with objective input on time and quality: Set up measures for number of bugs thrown back by customers with causal analysis of individual defects (whether it was a bad spec, lack of understanding, bad code etc.). Measure the time taken to fix issues during development, and post deployment.

Note non-project contributions: If people help with setting a process or tool that addresses your business goals (productivity/quality) - note this and reward them.

Set up objective measures, not subjective ones - so that you can scale appropriately. Subjective measures are prone to interpretation, involve too many inteperson dynamics and often are rubbished for not being fair or honest. Objective measures need to use and collate data - rate stuff from one to 10 or as a percentage. Rank employees within your company so everyone can see who's the top and more importantly, who's the bottom on the leaderboard.

Reward their performance

You have metrics in place; now assess your savings when people perform better than the internal metric, and give people hard cash for such savings. If it costs you Rs. 500 per hour to develop something and it's done faster than your metric estimate, you've saved some money. Share it with the employees in question, in proportion to their contribution to the saving.

“Pool” rewards: For things like bug fixes, you can't reward people for bugs or for fixing them. Keep a pool of money as a reward for a project; this pool reduces in size with the number of customer reported bugs that were avoidable. Bad coding or insufficient QA, for instance, reduces the pool size and in the end, the remaining money is shared with all involved.

Let people go
When you find that people are underperforming consistently, let them go. Define the process - for example, an employee is given three warnings, one of each time that he comes in below the acceptable metric of estimation, task performance and quality. After three consecutive warnings, the employee is let go.

People will complain about a productivity based performance system - and will tell you how unfair it is. It will be partly unfair because of a certain bit of subjectivity that is required; but it will only be unfair to those that underperform, or are scared of doing so. Give everyone the option of leaving if they don't like it. (Don't backtrack on this; if you do it no one will respect you anymore)

That's all I have so far. Thoughts?

Thursday, August 10, 2006

Going down the freelance road

Gautam Ghosh is turning freelance. My best wishes and a ton of good luck to him; I'm a recent reader but his articles have some...er.."dum".

Gautam is now an "organizational consultant" which I guess is either organization of consulting or consulting with organizations, or maybe something else. And can be rearranged to form "Tantalizing or uncool Satan".

But I digress. The issue is that of moving to a freelance situation, and having given up a not-so-high paying job for entrepreneurship myself, I know a few of the pangs that one goes through in this situation. Let me elaborate.

People will call you stupid.
You're giving up a monthly salary for a completely random, no paycheck job. You're relying on the fact that someone out there might actually want to use your services, and basing your life out of it. You're also potentially sabotaging your corporate ladder growth for a fleeting passion; growth that would perhaps ensure that one day you will be given an award, a plaque and perhaps even a cozier chair.

Ignore them. The idea of giving up a salaried job is anathema to most people; and the idea that your income is transient will seem like a serious disadvantage. There's more to life than that, of course; passion and the need to do something is as important. But there's something the salaried folks are not likely to know: you can earn more money by hiking it on your own, and transient income is fantastic for personal life (holidays, free time and quality of life).

Building blocks are important
Most of us in salaried jobs are completely ignorant of what it takes to run a business, even a freelance one. You need an accountant for the finances. You need to get yourself an office (more about that later). Brochures for marketing; a responsive web site; Service tax registration; Company accounts; etc.

I will provide a more detailed post on how to go about this, on another day.

And you need the base stuff for your business itself. A freelance trainer will need to create course outlines, training materials and powerpoint slides. A consultant needs convincing marketing material.

The time you spend on this stuff is not billable - so you don't get paid for what can be really hard work. You've been salaried all your life and haven't known a situation when you don't get paid for hard work. Not easy to face. But you've already figured out by now that it pays off in the long run.

Not as much fun
The usual crib of the new freelancer is that they have to do some much "boring" stuff.

"I started out thinking I'll have so much fun, that I'll only work on what I want, and here I am filing taxes, making phone calls for payment, figuring out what colours look best on the marketing brochure."

This is part of a freelance life. My suggestion: Outsource what you don't need to do. Pay an accountant to make your service tax returns; get an ad-agency to do the creatives; hire a web designer. And for other painful tasks such as asking for money due - create models that reduce the pain; like advance or staggered payments, proforma invoicing, accepting credit card payments and so on.

I work from home
This is tough. Home is where you relax, or do difficult homely tasks such as hammering nails or cleaning the fridge. Home is where you hang out and see TV and curse the gazillion advertisements.

Home is not where you work. When you get to a freelancing situation your first feeling is: reduce rent, work from home. The money you save isn't worth two hoots if you can't get work done! So you have two choices:
a) Rent an office: This could even be a small place in a business center. This affords you the privacy of an office, and could have additional benefits like phone answering, faster internet connectivity, conference rooms, ability to call people over to discuss etc. Obviously, this is more expensive.
b) Designate an area for a home office: If you have a 3 bedroom house, consider allocating a bedroom as office space. Restrict your family from using the well accepted method of shouting your name and asking you where the cupboard keys are. Don't watch TV (unless you're a day trader in stocks) Consider this as your office - if this isn't getting anywhere, wear a formal shirt, tie and shoes to this room.

Working with family
If you ever start a freelancing business with your spouse, you're doomed. Well, not really, but it takes a serious toll on your personal life, a little bit later. Initially it's all hunky dory, like your pre-marriage days; and then it starts to dawn on you that you hate it when the excel sheet is not filled EXACTLY like that, and she hates you for creating that ridiculous looking destop icon.

You're going to have trouble working together, like any two people working together in this planet. The problem compounds because you see each other every bloody minute of the day - as a corporate slave, you didn't need to see your boss' face after office hours. And who do you crib to, mate? Not your mate.

One funda: Don different hats, and keep overlap to the minimum. One person does marketing, the other does delivery;One is responsible for accounts and the other for office supplies. Wherever there is overlap, ensure you know who's boss. If she's a better speaker, let her do the talking. If he's good at powerpoint, let him create the presentations. And never, ever, work from home.

Taxes: a pain?
To most freelancers the thing that hits most is the additional tax levels one gets involved with. There's Service Tax - a return must be filed every quarter. Then there's tax deducted at source (TDS), albeit only at 10% or so. And then there could be others such as advance income taxes.

Since freelancing begets "business income", freelancers are expected to provide bills for their expenses, provide numbered invoices, maintain cash flow etc. for tax purposes. This is a pain. Or is it?

Consider this: Business income is revenue MINUS expenses. That means your expenditure is "deductible" from your income. This is SOOOOO different from your salaried job where you would only see your money after taxes have been deducted.

Remember your good old car? You can now claim depreciation on it. Same for your computer, and your cell phone. You can expense your petrol bills, part of your phone bills, your electricity charges etc. So the comparison looks like this:


Freelancer

Salaried

Annual Income

500,000

500,000

Depreciation on car

120,000

(not claimable)

50% of petrol bills

25,000

(not claimable)

Depreciation on computer, cell phone

30,000

(not claimable)

Other expenses (consumables, electricity etc. @ 5,000 p.m.)

60,000

(not claimable)

Taxable income

275,000

500,000

Tax @20% (approx)

55,000

100,000


The saving of bills and preparing of invoices is a small thing to do to save so much in taxes!

(You will spend a little more as a freelancer, but your income is also correspondingly higher)

Do you remember how wholesale and retail markets work? When you buy from a wholesaler (let's say you're a shop) you can get a deduction for VAT, and pay, in general, lower prices. When you buy from a retail shop, you pay high and then you pay VAT on that price too.

In terms of income, Salaried people pay taxes and then spend money. Freelancers spend money and pay taxes on the remaining amount.

Salaried people are retail. Freelancers are wholesale.

Conclusion
As all writers must, I will stop. All of you who are still here, you either have a lot of patience or you cheated and read ahead. So go on, start your freelance venture and don't hesitate to make mistakes.