Friday, February 22, 2008

Back to product development.. finally :)

Yes! and why not? finally am back !
Am back to what I was waiting for since last 1 year, getting back to what I've always wanted, to do what I am made for .. and that is all about getting back into PRODUCT DEVELOPMENT MAINSTREAM.
I know its gonna be nuff challenging, and i'll take some time to get accustomed also, but that all has to happen one day, so better now.
I have already started feeling the sincerity of the environment and the quality of people all around me, no doubt I made a very right decision at a very right time.
Although I don't like the tall cubicles and the deserted cafeterias, but have to make do with them. After all, no one gets a perfect world, and that's all to make me happy, for now ;-).

Friday, February 01, 2008

Should I join - IT Products or IT Services?

Note: This EXCELLENT article is COPIED-n-PASTED from http://www.pluggd.in/2006/10/should-i-join-it-products-or-ithtml

Calling all ye IT folks - did you ever give a damn whether to join an IT product or a services company? Frankly speaking, does it really matter to you?

Well, here is a post on why it should matter whether you are joining an IT product or an IT services company. Comprehensive list of pros /cons of joining IT Product/Services firm.

* Challenging work*
All IT companies talk about *Innovation*, which I believe is one of the most abused terms in the s/w industry (others being work- life balance, flat structure, open culture, and of course flexi timing).
Open up the ToI Ascent page you will find every company talking about *Innovation*/*bleeding edge tech*
If all these companies offer such a great innovative work, why are they suffering from so much of attrition? The reality is that very few companies build innovative products - rest all do a lip-service.
On the other hand, Product companies offer far more innovative work than their counterparts in the services segment.
Ever heard of a service co. filing patents? How many technology patents do Indian IT services co. have? [FYI - Indian cos. have filed for less than 50 patents in the last 5 years, while US companies have filed 800+ patents from India!, using the local talent].

Services companies might talk about delivery model etc, but service companies are good at execution of processes and hence innovation/R&D takes a backseat.
Lets try to understand why product companies are better suited for Innovative work?

* Because the product requirements are very dynamic.
* They are not simply governed by SLAs (service level agreements).
* The software requirements come from different sources (Product Management, Marketing, Consulting, Analysts, Competition etc.) and hence the challenge to build a framework, which can scale upto future releases too!

Imagine yourself in the shoes of developing applications like eBay, Amazon, Google, Yahoo etc. What challenges do you see? Performance/ Optimization/ Scalability/ Integration with third-party products/Competition coming up with innovative features and snatching away your market share?
Too many things to be worried about while designing such products! You need to be efficient/nimble and a smart coder to develop such products.
And to build a scalable product (which will still be in sync with future technical release as well), technical challenges are far more compared to building an application for a client.

* Show me the money (INR)
A necessary evil! This is one of the most said/*unsaid* reason for job shifts.
In general, Product companies are better paymaster than services companies.
And why is that so?
Lets look at the type of professionals that are required in these 2 companies.
Service companies do a variety of services. Right from development to testing/ maintenance/ implementation etc. (60-70% of revenues are sourced from maintenance work).
- What this means is that service cos. do not really need rock stars (a breed which is intelligent, smart and innovative).
What they need is a bunch of average performers, who can follow the process and keep developing the system as per the client requirements.
On the other hand, product companies desperately need rock stars - they need people who have the ability to handle bottlenecks in s/w performance, who can efficiently code scalable solutions, who can think beyond the obvious stated requirements!!

So how does this map to salary? Well, there is obviously a demand-supply gap as far as Rock Stars are concerned
And its because of this demand-supply gap that Product companies have to attract the talent, offer better salary compensation than services.

Rock stars, in general have a suicidal tendency on hearing words like Process/CMM etc and are very skeptical of reporting structures.
And at the same time, they are the ones who have the capability to build solutions like Yahoo/Amazon/Google etc.
If you are a rock star (or dare to be one), I strongly suggest you not to join a services company.

* Show me the money ($)
So services guys are paupers who are neither innovating nor get a great salary?
Well, here lies the real fun!
As a developer/QA in a service co, you will have enormous opportunity to visit customer locations and make $s!
With the current trend of outsourcing, product companies are setting up their offshore dev centers (which they do not want to publicly admit as cost cutting center, but in reality 90% of such centers are meant to cut the development cost and nothing more), and therefore chances of long term onsite is very minimal.
The only opportunity for long-term onsite role in Product Company is to be the part of consulting team (which implements the solution).
Unfortunately, if your firm is in ASP business model (OnDemand service, where there is no client installation/implementation of the product-a business-model which is getting widely seen these days), your onsite opportunities are as bleak as Ganguli’s comeback in the Indian squad.
In short, if you are desperately looking for dollarised life, join a services company.

* Diversity in work
If you are the one who gets bored of same stuff/same people/same team very frequently, product companies do not have much to offer.
The moment you join one of the product lines, it is very difficult to shift to other domains/products.
But, services companies have projects (which have start and end date) and the moment your project is over, you will be shifted to different project:: new team, new codebase, new domain and of course, new deadlines!!

* Domain expertise
Be it SCM, Finance or CRM, product companies are undoubtedly richer in domain knowledge (after all, that is their bread, butter and jam!) than services.
There is no doubt that professionals from product companies are better equipped with domain knowledge than their counterparts from services background.
Very few of the service projects have much to do with the domain. Typically, their client will have a SME (subject matter expert), who will play the functional role and business analysts from service company side will fetch the requirements and convert them to SRS.
So, if you are the one who loves marrying business domain and techie stuff, go ahead and join a product company.

* Stability/Future
Stability and IT do not go very well for the product companies.
Year 2005 has seen major product acquisitions (Siebel-Oracle, Flickr-Yahoo, Skype-eBay, Retek-Oracle, Requisite-Click Commerce etc..). Any idea what happened to employees? Well, when a co. gets acquired, employee’s fate is at the mercy of the acquiring company.
If you are lucky you get a job elsewhere but layoffs are a major part of life@ product companies.
And you thought if you are a technically sound /have always been a great performer, you will never get laid off?
You are wrong.
Few major reasons for these layoffs are that the product line is not profitable, or the company gets acquired and the new * dad* may decide to downsize.
Also, most of the product companies source their funding requirements from VCs who in turn start looking out for an exit option after a certain point.
In such a scenario, the only option left for companies is to either go for IPO or get acquired (easier way out!).

If you are lucky, you might get to encash your ESOPs and make money, but otherwise your fate largely depends on the acquiree company/their strategy.
Therefore, if you are the kind who wants to stick around and retire, think twice about joining a product company!!

* The next leap? Growth path?
In services, a typical growth path that one follows is either get into Project/Delivery Management or follow the Architect route.
But Product companies have a lot more to offer.
Apart from Proj/Delivery manager and Architect role, you can join the Product Management/Marketing/Business Analysis team, which in itself opens new avenues (you can join the sales/marketing team, or be a core domain expert!).
Hence, if you are the one who wants to perform different roles in your career span, product companies are a better bet.
But, if you prefer processes (six-sigma etc..) and you want to stick to proj. mgmt, go for services! - Project Management is a lot more challenging in Services (needs direct customer handling), unlike in Products where Project Managers work internally with Product Management.

Summary:
Okay - here is a checklist for self-evaluation:
* Identify your technical strengths as well as weaknesses:

* Are you a great techie, a rock star? Do you always dream of solving complex technical problems?
* Or you are an average coder (Do what is given and maybe a little more)? It is okay to be an average coder, but have great skills to handle customers.
* What exactly interests you? - Coding/Technical talks? Or People Management?

* How do you define career stability?

* How important is onsite trip for you? Short term/Long term?

* Do you want to be a business domain expert or is it the technical domain (integration/server-side etc) that interests you?

My Blog List