Small Companies vs. Corporates - An Employee's Perspective
by
, 22-Dec-12 at 08:32 PM (55538 Views)
Some of you may know (I posted a thread on the topic) that I changed jobs in April. I used to work for a very small software company (± 10 people), and I now work for a contracting firm (300+ people) which has placed me at a large corporate (28 000+ people).
Having spent four years in a small company, I found that I had stepped into a whole new world when I started my new job. I wanted to share my thoughts and experiences with the forum. Of course, I can't generalize and say that all small companies are the same, or that all corporates are the same. Therefore, this post is based purely on what I've experienced. If you've had a different experience, please comment and tell us about it.
This is what I've learned.
What You Do
During the first four years of my career, I spent a great deal of my time being a Jack of all trades. If you have a limited number of staff, people tend to be forced to wear many hats. I wore a developer hat, an architect hat, a DBA (database administrator) hat, a tech support hat, a system administrator hat and an analyst hat. Nowadays, I get to focus on what my job title says - I develop software.
While one learns a lot via the "many hats" approach, you tend to lose your focus, because you hardly ever get to devote your full attention to a particular area of your work. Instead of being an okay-ish developer/database admin/analyst/architect/tech support hybrid, I would rather excel at one of them. It also leads to a great deal of interruptions - one could be in "the zone" while writing a program, and then you get interrupted by a tech support call. A five minute call can easily end up consuming an hour of your day - first you have to get details, then you have to trace the issue, fix it, and inform the user. After this whole process, you have to try and get into "the zone" again (there goes another fifteen minutes of your day). On the upside, it does teach you how to work under pressure and you get exposure to more roles (e.g. architecture and analysis) than the average developer.
On this note, because your role in a small company isn't as limited to development only, you have more power to influence high-level decisions. If you firmly believe that someone is taking the wrong approach to a problem, you are well within your rights to point it out, state your case, and have it done differently. In a corporate, however, decisions are made long before work reaches a developer. Therefore, thanks to teams of analysts sitting between the client and the developer, the developer can't ask as many "why" questions - when you get a task, you are expected to stick to the spec and make it work. Granted, because of the process (see below), the specs that reach you are generally solid, viable and sensible.
Also, in a small company, your day doesn't always stop at 17:00. Sometimes, no-one else is available, and you need to step up and get something done. Sometimes you need to work overtime, sometimes you need to support users after-hours, and sometimes you need to visit a client and spend a day (or an evening) there to sort something out. I have no quarrel with putting in extra effort, but if you have to do it constantly, you become a workaholic and your personal life starts to suffer. The corporate has very little of that (at least for developers). Sure, the pace is still fast and you still have to put in overtime sometimes, but generally, you get to walk out the door at 17:00 and not worry about work until you sit down at your desk the following morning.
How You Do It
When it comes to software development (and I'm talking about the whole life-cycle), the corporate has a very strict process. Small companies also have a process, but they seem to be more lenient towards bending the rules at times. The process is justified though - there are large sums of money involved. For this reason, there is no room for error. The drawback to this approach is, that while small companies can frequently deliver software (that is, "going live"), process can appear to delay this in larger companies. In a small company, you might see the software that you write go live every couple of weeks. In a large corporate, you may have to wait six months (or more) before you can see your software going live and adding value to the business.
Also, because corporates have more money, they can invest in tools to support the process. Money also means that staff can be sent on various training courses; some relating to process, other relating to the technical skills that we need to do our jobs. While the company foots the bill, individuals themselves benefit as well. Not only does the company gain something by having properly trained staff, the staff members also get the opportunity to put something new on their CVs, should they wish to move on someday. In my experience, small companies cannot always give their staff these luxuries.
Corporates can also afford to buy more toys (by which I mean technology). The technology stack that I'm currently working with is huge; again, this gives me additional experience to put on my CV. Herein lies another one of the key differences between my my current and previous jobs - in the small company, I did a lot of things (all the hats) using limited number of technologies. Now, I do one thing (developing code) using a large number of technologies. For a developer, this is far more appealing.
Who You Do It With
In the small company, I worked closely with a team of five people. All of the developers were pretty similar; we were more or less the same age, we had similar backgrounds, we grew up in the same area, three of us even attended the same high school. Now, I work with much larger, more diverse team. More people means that there is a larger skill-pool to draw knowledge from. People also come and go more often, so the pool is constantly changing. If you work with a small number of people, most of the knowledge that can be transferred between team members will be transferred relatively quickly, and from that point onwards, everyone stays more or less the same - the rate of growth (in terms of knowledge) slows down.
In a small company, you get to build close relationships with everyone, including management. In a corporate, you still build relationships, but only with the people on your level. You almost never get to interact with the higher-ups. You might run into them in a hallway once in a while, but chances are they won't recognise you - after all, they have hundreds of people working under them.
Where You Do It
Small companies have small premises. Large corporates have large buildings filled with all kinds of awesome stuff, like canteens, entertainment areas and an abundance of coffee machines. If machine coffee doesn't do it for you, you can always visit the building's coffee shop. In the small company, I spent almost all of my time at my desk, with occasional visits to the kitchen to go and make coffee. All of us had lunch at our desks. Nowadays, I spend my lunch hour in the canteen, often followed with a quick visit to the entertainment area for a game of pool or foosball. I have learned that one should never underestimate the immense value of a brief change of scenery - it clears the mind, and once you get back to your desk, your productivity is renewed. If you spend eight hours straight at your desk, your mind gets stuck.
What You Get For Doing It
I've already mentioned that corporates have more money. Therefore, it is no surprise that they can offer very competitive salaries which small companies struggle to match. To reiterate a previous point, corporates can afford send their staff on a variety of training courses and things that lie beyond the reach of small companies. They can also afford to randomly "spoil" their staff. Ever so often a big platter of fruit will appear in our area, or someone will come around handing out gifts: be it branded shirts, key rings, or boxes filled with treats. If nothing else, these little surprises contribute to a positive working environment - as shallow as it sounds, who doesn't like getting free stuff? Lastly, corporates can give large bonuses. This is not to say that I've never received bonuses in the small company, it's just that larger companies seem to do it more often, and their bonuses are substantially more. I like this - it contributes to my childhood dream of owning a Porsche.
Summary
Small Companies Corporates Hectic workload Manageable workload More power to staff Limited power to influence decisions Limited tech stack Huge tech stack Limited skills in company Huge skill-pool Limited opportunities Lots of opportunities for growth "Jack of all trades" Focussed responsibilities Frequent "go live" Software doesn't "go live" as often
In closing, regardless of my experience, the most important thing is to find a place where you are happy. Some might prefer the power to influence decisions and the close-knit, homely feeling that small companies bring. Others might chase after the opportunities and the big figures offered by corporates. My advice to an IT graduate at the start of his/her career, would be the following: spend a year or two in a small company then spend some time in a corporate (or vice versa). Experience both and decide for yourself which you prefer. As for me, I love working for a corporate - I love the opportunities, I love the growth and I love the environment.