views:

1116

answers:

18

Hi,

I would like to hear some opinions regarding working in small companies versus large corporations.

So far, my personal experience has been that esp. for junior programmers small companies have given a more solid background, as follow-up is with experienced workers. In larger corporations on the other hand, the experienced have already worked they way way out of reach.

Is this a general feeling or just my bad experience?

A: 

I haven't had the chance to work at a large company. At the small companies I've worked at though, I find you get a lot broader set of experiences. You get to be involved with many different aspects of the business. If you are open to learning, this can be a great experience. For instance, I had to do lots of networking and learn about load balancing, firewalls, etc even though I was a programmer. This type of learning helps you on future projects and/or debugging systems in the future.

Micky McQuade
+18  A: 
  • Small companies give you more varying tasks and beef up your resumé.
  • Small companies put you in charge of your own projects sooner.
  • Small companies get you out of a cube and into an office with a door in a short time.
  • Small companies listen to you when you have a good idea or want something to change.

None of these were remotely possible when I worked for a large company. I left, found a good small one with a lot of talent inside, and all have come true.

Edit: I still do suffer some "large company" problems at my small company. However, most/all of these happen only because my project's customer is a medium sized company with a large company attitude. Your mileage may vary.

Update: When I wrote this over a year ago, I had just gotten an office with a window. Now we're moving to a new building, with enough space for everyone to have a door they can shut. I'm working on the same product but with more responsibility. I'm fairly ashamed of code I wrote this time last year, which means I'm getting better pretty fast. This small company is still a great one.

Kevin Conner
On the other hand, they may not have the money to get you better tools, and you may come in to work one morning to find a padlock and eviction notice on the door. Been there, done that, got the "High Impact GIS" t-shirt.
Paul Tomblin
I'd not generalize the padlock/eviction notice phenomenon as a small company problem--happens with the big boys plenty. The metric is not how many companies have this happen to them, but how many employees.
Stu Thompson
Large company -> definetely better tools/equipmentSmall Company -> could also be one or two huge rooms with 6-12 people in it, or more! (but there's more fun to be had because you'r all in the same boat, pulling the same strings compared to a large company's big room offices).
steffenj
Fortune 3 company -> definitely worse tools/equipment -> packed into trailers in 8x8 cubicles -> 6-10 weeks red tape just to download open source -> beg/borrow/steal to get any work done. Flexible Work Arrangements are really nice though.
sixlettervariables
Nice to read the update, thanks for that.
Goose Bumper
A: 

It's obviously going to depend a lot on the company. In a small company, the junior guy might be the senior guy. The advantage there is that you get a lot of leeway to learn new things, but you also don't get the guidance of more senior people.

Large companies also tend to have less manageable politics, but also tend to have better budgets. Larger companies tend to have bigger problems to solve, which can be more challenging, but also don't tend to give those problems to junior people.

I think part of this is how well you learn from other people, vs learn on your own.

dvorak
+3  A: 

I've done both.

The best job experience I ever had was when I was young and inexperienced working for a company that was started by some really smart and experienced people that grew quite quickly, doubling in size every year for the first 3 or 4 years I worked there. It was great because although I was young and inexperienced, we were continually hiring people even younger and less experienced, so I quickly got to be one of the more experienced people with the code base and learned how to mentor and lead others. My wife was very impressed when the president of the company came over to us at the company Christmas party and introduced me to his wife as a fellow Courier du Bois in the Canadian Ski Marathon.

You can get that same small company experience in a small team within a big company, but often a big company is slow to react, slow to promote, and layered with lots of useless management. On the other hand, they also may offer stability, and give you good benefits and better equipment budgets.

Paul Tomblin
+2  A: 

There is not general rule but ...

Working at a big company may sometimes turn out into a place similar to a prison, a lot of rules that need to be taken into account, a lot of bureaucracy. There could be many things you need to do before making a very simple thing like a bug fix. Usually in a large company there are a lot of things to learn because there are usually a lot of experienced people you can ask almost everything you need.

In a small company there is a lot more freedom and usually things move faster, the atmosphere is dynamic and there is a lot to learn in a very small amount of time because many small companies don't have a single big contract which they can rely on.

So it is a question of what do you expect from a company, not a matter of small vs. large companies. If you find something you like you should try and see it for yourself.

Iulian Şerbănoiu
+5  A: 

I see large vs. small rather in the light of how inefficient and stupid can an operation get before it breaks.

Large Companies

Large companies can afford inefficient operations and a lot of stupid decisions.

Cons:

  • Source of most anti patterns
  • Steep hierarchies (see also thermocline of truth )
  • Responsibility straitjacket
  • Career back daggering
  • Politics
  • Lots of supervision
  • Inefficiencies, stupid things, Dilbert
  • Personal contribution often unnoticeable on the whole

Pros:

  • Paid Over hours
  • Well defined roles (hopefully)

Small Companies

Small companies can't afford much inefficiencies and waste.

Cons:

  • Almost never paid over hours
  • Likely to get tons of work

Pros:

  • Can easily assume New Roles
  • Lots of personal freedom and responsibility
  • self responsible work style with little supervision
  • Personal contribution a visible part of the operation
Florian Bösch
At most large companies in the U.S. you are not paid overtime.
Mike C.
A: 

I think you have to look at personality type when making this consideration ... I am currently working in my first large company and, after 20 years of working for three small companies, don't care to play the whole politics game that is required to succeed. My personality type is such that I'm aggravated by decisions that are made for purely politically reasons when there is a clear and logical technical answer.

If anyone knows of an interesting software start-up looking for an experienced CTO (Java or Python preferred), please let me know!

Steve Moyer
+2  A: 

Small companies are much more interesting and challenging places to work but they are often financially insecure. I've worked for 3 small companies that I really liked, but they all went out of business eventually (one was acquired and then dismantled).

Large companies are usually more secure financially though no company is completely safe. If you are young and don't have children, I would recommend a small company every time.

David G
+3  A: 

In 15 years, I have worked at few medium size (1500 employees) company and a very small (10 employee) company. Each environment has their pros and cons.

Larger Company

  • More possibility to move around internally. After 2-3 years of doing something, I like to switch gear and do something else. It is much easier to do at a larger company.
  • More resources, better labs, etc...
  • Might have better benefits
  • More possibility for mentoring (but this has way more to do with your colleagues personality).
  • A more defined career progression
  • More PHB (pointy haired boss) factor
  • As a junior person, you probably won't have as much responsibility for the overall design.

Smaller Company

  • You have lots of responsibility for many aspects of the design.
  • You probably have to learn alot about many different topics
  • You will work long hours (especially at a start-up)
  • Limited supply of experts...you have to become one
  • You might have more chance for advancement, but the corporate ladder only has a few rungs...
  • Limited possibility to change jobs
  • You have to get along with your colleagues.
  • Limited budgets for equipment
  • Limited "hand-holding", more of a sink-or-swim mentality.
Benoit
A: 

Personally, I've always had difficulty dealing with bureaucracy, so I've always preferred smaller companies and, when a company of about 100 that I worked for got bought out by a multinational, it wasn't more than a couple months before I turned in my resignation because I couldn't stand the change in company culture.

And then about 4 years ago, I made the ultimate committment to my preference for the flexibility, variety, and self-determination possible in small companies: I quit my job and went freelance (with my former employer as my first client). There have definitely been rough times since then, especially because I'm awful at sales/marketing and rely on a small number of clients obtained by word-of-mouth, but I have never looked back.

If, like me, you prefer to be more independent and operate based on what you see as needing to be done, then you'll likely be happier with a smaller company. If you'd rather have security and stability, then a larger one is probably for you.

Dave Sherohman
+2  A: 

Here are some major cons with some but not all small companies:

  • Lower pay.
  • Low quality tools.
  • Clueless management.
  • Poor employee incentives.
  • Long, boring, pointless meetings.
  • Ancient technology.
  • Entrenched, tired, underpaid coworkers who have no ambition, but have seniority regarding decision making.
postfuturist
This is exactly the opposite from what I've experienced.
prestomation
+2  A: 

First off, be wary of generalizations ... look first at your prospective boss and immediate team. You aren't working with people 6 layers away in a large company, you're working with your team and the groups it interacts with.

I learned as much from my boss in a large company (15K employees) as I did from my first boss in a 12-person company. The first was a great technical mentor, the second, a how to work with (and manage) people mentor. Both were invaluable to my career in their own way.

I've been luck to have had great experiences at both extremes, and in between. I worked with great programmers in both (and a third company, a mid-sized (300 employees) .com. This one has both the advantages (must be efficient, flexible, etc.) and disadvantages (flat organization limits "job title" advancement, etc.), but has some of the best programmers and architects there are, and I'm still learning daily, 30 years into my career.

It's easy to generalize about technologies, company size, etc., but in the end it's the people you relate to on a daily basis that matter the most. Are they smart? Are they interesting? Are the projects in line with your goals? Do they get good stuff done? Does the company produce something you are interested in or want to learn about?

TomG
+1  A: 

The advantage of a small company is short lines between employee and their bosses. Unfortunately this is also the disadvantage.

I have worked at some really small companies (less that 10 people). If you can get along with your bosses and they listen to your suggestions they can be heaven. But if there is tension between you and the bosses, it really can be hell.

Worse i have seen (not first hand experience) is a small company with two bosses that had their problems. But instead of working it out together, they played it through their employees, and gues who got the blame.

Gamecat
+1  A: 

As a college student who has to do required co-ops/internships, I can tell you what I've experienced so far.

My first work experience was for the US Government, at an Air Force Research Laboratory in my hometown. I loved that - the pay was good, holidays and weekends off, sufficient tools, enough manpower to get the job done. The problem here though was red tape. It's not like you could say "I have this brilliant idea to do X so I'm going to take a day and whip something up to show you all." Instead, you had tight schedules and deadlines, lots of paperwork before, during, and after the project, and bureaucratic stuff.

I'm currently working for a large company, but the team I'm on is small. One system administrator, a web designer borrowed from another team when needed, a web programmer, and two different managers. It's not that great, I don't think. The people are all good people, but it's rough simply because we don't have the resources we need to do everything we want to do. Sure, we can justify it, the manager says it's a good idea, but it just gets buried in the next task and the next task and the next task.

No matter what, there's going to be something wrong/bad/you don't like about where you are working.

Thomas Owens
A: 

Small companies might offer good opportunities for the junior employees to be able to get exposed to the bigger, funkier projects - but there will be fewer of these in the first place. Larger companies might well have larger number of projects, but the changes of new or junior employees getting the choicest cuts is inverse proportional (this isn't a certainty, but it's likely).

The key thing is that every situation is different. My current employer is reasonably small with a reasonable transparent culture - so long as people are still here, people will happily discuss their code with you (and even in a couple of cases when they're no longer still here).

But I don't always have the time, so the inclination might be there, but the time might not well be. That's generally been the case everywhere I've worked. And the more senior (or the more personnel, admin and management you have to do) the more this is true.

Small companies might have policies and practices that allow people to make the time because the people that make the rules and set the work loads are closer to the coalface, but the lot of a junior is always going to be that of a grunt, however large your employer.

Unsliced
A: 

Small companies can offer a more rounded out experience as the programmer may also have to handle networks, databases, etc. Large companies by contrast can have more specialized roles to free up one's time for developing if that is what they were hired. At a small company you may have some options when picking out what hardware you'll be working on if the company doesn't already having a contract with a company like HP or Dell to supply workstations while at a bigger company there is likely standard issue workstations for developers.

Another point though is how old is the company and how much process do they have? Where I work now, the company itself is over 20 years old and has over 1,000 employees, but the IT department I'm in tends to have few workers that have been with the company more than a year. I'm not saying that that is good or bad, just that it can be that sometimes a large company can act like a small one.

As for the other companies I've worked for, there were a couple of dot-coms where the difference was night and day in terms of how things were done. The first one I worked at was a little older but there wasn't the growing out of the team that would be a combination of IS and Product Development as part of what the company did involved custom server code to handle transactions and encryption keys. The second one was just 5 years old when I got there but there were 60 people in the IT department alone and there were processes for how website code was developed and released that was quite impressive ultimately.

JB King
A: 

In a small company, they are realistic. In a large company, they require you to be Professor Dumbledore.

Alex
A: 

What would be the suggestion for someone who is a fresh graduate?

Start up with smart set of people with 15 years of industry experience or Big well established company with good pay and other goodies

Ashish