The placement season is around the corner for many people, a few juniors have been asking me whether it is better to go into the software industry and join a consulting company or a core product development company. While answering this question in itself is not possible, my experience in working for both a consulting as well as a core product development company might be able to give a few pointers about what to expect in these respective organizations.
In a consulting company, the first thing you learn is that the customer takes the highest priority over anything else. If you promise the client that you will be able to resolve a bug in the next 24 hours, you better do it within those 24 hours. Your word, either on a telephone conference call or via email, will become the law. The brand image that is built for a a company is based on these aspects of its individual employees: and thus what will be drilled into you is the professionalism expected out of everyone. On one hand you will get exposure to a variety of technologies, right from open systems and Java to the legacy mainframe jobs, depending on the project you land into. On the other hand, you also have the chance of landing into the maintenance projects. While many curse this brand of projects, the fact is that you have a more than 50% probability of landing in some such project wherever you go. At a consulting company, you will have chances to go onsite and have a free world tour on the company budget. You will have frequent conference calls, you will also get to all sorts of project commencement and release parties. Keep in mind that your interaction with other project teams will be limited to social gatherings or the lunchtime chatter: very rarely will you interact with the people from the other team in a "technical" environment, so to say, except a few borrowed subject matter experts at times. But you can also attend a lot of trainings in different spheres (if you have time, that is) and you can also switch companies every 2-3 years if you like until you find a place that pays you enough and your position on the corporate ladder is also something that suits you.
At a core product development company, on the other hand, the first thing that will hit you is how you are contributing to the larger picture, to the organization as a whole. You will find that you will interact in technical discussions with a lot of people across a lot of teams. The diversity of the work along with the little ways in which you get to contribute to the big product as a whole will be, to say the least, humbling. Unlike consulting companies, you can suggest innovations in design and implementation, and can actually try out various ways of doing the same thing (akin to the famed 'research' some of you dream about), and you will have the freedom to do these. You will have fewer conference calls, and will be more concerned with the development at your local center. Also, most of the big core product development companies have their own proprietary extensions to standard softwares, such as their own Java classes or their own operating systems, etc. So while you will gradually gain expertise in them, your chances of being able to switch to other similar companies will also go down.
To conclude, thus, I'd say that you should choose well if you have a choice, that is. The pay will be similar in either place, although the core product companies tend to pay a little more. You will have ample time to prepare for your MBA/MS dreams if you wish in both these places, and you will also have a good life outside the 8 hours at office, if you so wish. The only difference between joining these two types of organizations will be that your career will take off on very different footings, thats all.
In a consulting company, the first thing you learn is that the customer takes the highest priority over anything else. If you promise the client that you will be able to resolve a bug in the next 24 hours, you better do it within those 24 hours. Your word, either on a telephone conference call or via email, will become the law. The brand image that is built for a a company is based on these aspects of its individual employees: and thus what will be drilled into you is the professionalism expected out of everyone. On one hand you will get exposure to a variety of technologies, right from open systems and Java to the legacy mainframe jobs, depending on the project you land into. On the other hand, you also have the chance of landing into the maintenance projects. While many curse this brand of projects, the fact is that you have a more than 50% probability of landing in some such project wherever you go. At a consulting company, you will have chances to go onsite and have a free world tour on the company budget. You will have frequent conference calls, you will also get to all sorts of project commencement and release parties. Keep in mind that your interaction with other project teams will be limited to social gatherings or the lunchtime chatter: very rarely will you interact with the people from the other team in a "technical" environment, so to say, except a few borrowed subject matter experts at times. But you can also attend a lot of trainings in different spheres (if you have time, that is) and you can also switch companies every 2-3 years if you like until you find a place that pays you enough and your position on the corporate ladder is also something that suits you.
At a core product development company, on the other hand, the first thing that will hit you is how you are contributing to the larger picture, to the organization as a whole. You will find that you will interact in technical discussions with a lot of people across a lot of teams. The diversity of the work along with the little ways in which you get to contribute to the big product as a whole will be, to say the least, humbling. Unlike consulting companies, you can suggest innovations in design and implementation, and can actually try out various ways of doing the same thing (akin to the famed 'research' some of you dream about), and you will have the freedom to do these. You will have fewer conference calls, and will be more concerned with the development at your local center. Also, most of the big core product development companies have their own proprietary extensions to standard softwares, such as their own Java classes or their own operating systems, etc. So while you will gradually gain expertise in them, your chances of being able to switch to other similar companies will also go down.
To conclude, thus, I'd say that you should choose well if you have a choice, that is. The pay will be similar in either place, although the core product companies tend to pay a little more. You will have ample time to prepare for your MBA/MS dreams if you wish in both these places, and you will also have a good life outside the 8 hours at office, if you so wish. The only difference between joining these two types of organizations will be that your career will take off on very different footings, thats all.
really informative. iam at a similar junction now, although at a different level.
ReplyDeletewow.. gud one dude.. this post is worth it for so many ppl outta there..
ReplyDeleteQuite informative i'd say.
ReplyDeleteBut you missed out the differences in terms of (My opinion in terms of Services and Product Companies Respectively)
--Work Culture
Service Companies Su*k big at this.
Product Companies are good.. rather try to make it better.
--Managers
Service Comp - Managers taught to harass, critize, assault employees.
Product Comp - Manager is primarily concerned on the work.. Rest doesn't matter.
--Frustration Levels
Service Comp - Managers+work+Money adds up to regular life frustrations.
Product Comp - I am still not sure of any in terms of the above 3..
--Work Timings
Service Comp - Some of them are like primary schools/factories where attendance is compulsory, others dont care if i turn up daily and if i sit at my seat for 8 hours.
Product Comp - Most of them are kool about flexi timings.. even provide ways to work from home.. there by increasing productivity
Now that makes a complete article ?
hmmm...will sure guide anyone who asks me the same to this page.. :)
ReplyDeletenice post....-(d)
ReplyDeleteGood informative post, Sudipta... shows the differences between two different industries clearly even though the term IT is loosely applied to all of them.
ReplyDeleteMaverick, okay.. glad to know that -- hope this helps!
ReplyDeleteBhuvanesh, thanks! And welcome onboard!
Swaroop, now thats what I call is a complete comment: something that really completed the post. Your views seem a little biased and rather based on personal experience: but they are true, for the most part.
Di, you're more than welcome! :)
D, thank you! BTW, did you use your last name's initial here?
Hari, thanks... and yes that IT term kinda gets on my nerves when it is thrown about oh-so-knowledgeably.
Can there be any other (d)??
ReplyDeleteD, can there not be? Man, I really didn't expect that question from you! :-\
ReplyDeleteI second swaroop.
ReplyDeleteAnd working on system side requires more effort to understand:esp Domain; coding might be in propreitery language and has less/NO onsite opportunities :( i.e. more slogging. In other words--system side more disadvantages.
Whereas on application side like J2ee needs only coding and not much of domain. Also has loads of onsite and can make money ;-)
also, testing has more onsite compared to development :)
ReplyDeleteI would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own BlogEngine blog now. Really the blogging is spreading its wings rapidly. Your write up is a fine example of it. certificazioni Viterbo
ReplyDelete