Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

In addition to answering the question in the subject, feel free to weigh in on which you personally prefer and why.

share|improve this question

closed as not constructive by Thomas Owens Oct 6 '12 at 19:17

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.

16 Answers

In a small company it's easy to become 1 in 10 instead of 1 in 100 in a big company.

share|improve this answer
show 1 more comment

I've analysed the mechanics of this issue as my company grew from 3 people to 120 people. To summarise my article, which is at:

http://www.edval.biz/why-large-software-companies-are-generally-inefficient

  • A high manager-to-developer ratio makes things worse
  • Too many customers leads to competing requirements, competing focuses and O(n^2) interactions between features
  • The source-code was branched between customers, leading to a maintainability disaster until we reined it back in over 8 years
  • Attempts to improve quality and "predictability" (meeting deadlines) backfired, adding more bureaucracy for no measurable improvement
  • Employees became disempowered and less engaged
  • The average developer became more average than was the case in the early days
  • No single mind was across the whole design
share|improve this answer
show 1 more comment

I've never had to worry if my paycheck would bounce at a large company. Nor did I ever have to worry about friends of the CEO getting promoted to jobs they were not qualified for or getting benefits such as extra days off, lunch paid for, company cars that other people in the same job were not eligible for because they weren't friends with the CEO. I have found politics to be much worse at small companies because they are often based in relationships that certain people have no chance to break into (I can't help it I am not related to the CEO or attended school with him). I've also never seen someone fired at a large comapny to make room for my cousin who just graduated either.

I'm a specialist, so naturaly I prefer large companies anyway. After all they are the ones that hire people in my specialty. They don't think that application programmers can be database experts as well. Plus the far more interesting work in my field at large companies draws me to them. The databases I worked with at small companies were simple compared to what I work with now and the problems were much more straightforward when I didn't have to consider the 300 applications that might be affected by a change or whether I will bring the entire company to halt with a poorly performing import.

In my experience pay is better at large companies, benefits are usually better and certainly the computer equipment I have is far better. And no one asks you to steal the software you need. Nor do I have to go reboot the server at 3am.

On the plus side for small companies, I did get a chance to work with a broader variety of tasks and technologies. That helped me get the skills to become a specialist.

share|improve this answer

I would rather look at the culture and not the headcount, if you manage to find a big company, where there are many bright people are working next to you and you can learn from them then it is much better than a small company where you are the only one with technical skills!

share|improve this answer
2  
I have been lied about the culture in a large company during an interview. I had no good way of figuring out whether it was the case. It was not ... – Job Sep 11 '11 at 15:17
3  
@Job, that certainly is not true only of large companies, lying in the interview seems to be epidemic (on both sides of the table) – HLGEM Dec 19 '11 at 21:25

I believe you can make a big difference regardless of the size of organization. The biggest difference is when you are assigned to work on something less than desirable. In a large organization, there is the possibility of moving to another project whereas in a small organization, you have to find a new employer...

share|improve this answer

I've found my immediate supervisor to be a better predictor of my situation than the size of a company. Large companies have bureaucracy, but good managers insulate you from that. I've had managers who've mapped out, scheduled, and approved payment of all my training. Support was spread out among trainers, admins and occasionally developers. I attended very few meetings outside my department. At a small company, you're on your own and get involved in everything.

At one small software company the owner (no technical background) was very receptive and encouraged your input, but you had to back it up. There are others where once they get a thought in their head; it's stuck and they make all the decisions. If they were in a larger company, their control could be lessened due to some committee.

Larger companies can benefit in gaining experience. You may use different technologies and deal with larger datasets.

Personally, I prefer a small company. You're a bigger part of what drives the company. It can be easier to be 'surrounded' by good people. I'd rather work with one other person who was really good than add an additional 12 fools.

share|improve this answer
show 2 more comments

Cash Flow

Having just abandoned a medium-large sized hardware company to join a software startup I'll add to list with something that hasn't been said already: cash flow is a big difference. In my Previous Life if I wanted a tool, some hardware, a new monitor or four it wasn't hard to to get. I asked and it just magically showed up the next day. At the startup every bit of spend needs to pass the "Do we really, really, really, really need it? Really? Like seriously do we really freaking need this?" scrutiny test.

And you'd be surprised how many things don't hold up to that test.

share|improve this answer
3  
Wow. When I worked in a large company, to get a second monitor you had to be a director. Not for us low-life programmers noooo (ok, I got myself a second monitor by getting one from an empty desk without asking)... Now I'm working in a startup and they just asked me to order all the tech I would need in my job. Two monitors and a fast computer, thank you! – pimeys Jul 26 '11 at 10:14
show 3 more comments

It seems the advice so far has been overwhelming negative towards big companies. While I agree with many of the points, let me try to articulate some opposing views.

Ability to be a part of making standards

Working for a large company provides the ability to participate and direct industry standards. Sure, small companies and individuals can revolutionize technologies, but more often than not, it’s the large companies that sit on standards committees. These august bodies can decide how millions of people interact with technologies. How exciting to be a part of that process.

Greater reach

Again, there are exceptions, but the large companies tend to have greater reach. If you work on a feature in Internet Explorer, you know millions of people will be using it.

Specialization

In larger companies, specialization is rampant. You can’t figure out how to write the terms of service for your software? Don’t worry; that’s Legal’s problem. The toilet is dirty from months of use? Get Building Services on that. If you enjoy a particular aspect of your job, you may have the opportunity to just do that.

Recognition

When you tell strangers you work for Interslice, you have to quickly follow up with a description of what Interslice does and sells, etc. When you say IBM, that’s pretty much all that needs to be said.

Exceptions

The beauty of working in this field is that these points aren’t necessarily true. There are examples of small companies that can provide the above. However, I would say that these small companies, in time, will either become large (at least in mentality) or be acquired by large companies.

share|improve this answer
5  
And don't forget that at smaller companies (generally speaking) you are much more likely to work more than 40 hours a week. – Korbin Sep 14 '10 at 23:15
3  
@Korbin: I can attest that this is not always the case. You'll get what you go looking for. – Scott Whitlock Nov 20 '10 at 21:36
7  
"When you say IBM, that’s pretty much all that needs to be said." -> I'm not sure people really know what IBM does and sells nowadays, so that's probably not the best example. However, I get your point. – Zsolt Török Jan 7 '11 at 16:25
1  
Standards and committees ... sounds exciting! Not. Maybe in the world of hardware this is needed, but with software there is always an RFC or an equivalent. A protocol can evolve via a democratic/meritocratic, rather than bureaucratic process. – Job Sep 11 '11 at 15:13
show 2 more comments

Politics. In bigger companies people tend to identify less with a common goal and tend to be more selfish. Trying to push their ideas no matter what.

share|improve this answer

Flexibility

Having worked for both, i have to say that on a small company you have more flexibility to try fresh new things without be locked-in with standard tools, languages and conventions that a Big Company usually imposes.

share|improve this answer

A small company only survives if its employees are willing to take on whatever roles are necessary to get the job done (QA? Sure. Spend New Years' Eve remotely rebooting servers in Virginia? check.) If you see a problem, you fix it. A large company evolves specialized roles, which inevitably results in some folks having the attitude of seeing problems and thinking that they can't/shouldn't fix it (and, by extension, that their only recourse is to send lots of email complaining about the problem). However, this has the upside of it actually being someone else's job to reboot things on New Years Eve. The best of both worlds seems to be the person at the big company who can fix anything - then you get to work on what you want plus you have resources to do it right. The key thing is to find a big company where you'll work for people with the same values as you, so you don't have to rewrite the company's DNA to get "rules" that you can work with.

share|improve this answer
show 1 more comment

I find this a very easy question to answer - it's a classic risk vs. reward scenario. The risk of working for a small company is higher, but the reward if things work out is usually much better.

Personally, I've worked for both, and although at times working for a small company is frustrating through lack of tools and resources, I find this far better than working for a large company which could afford whatever tools you need, but the rules won't allow it.

share|improve this answer
3  
At small companies, when I said, "I need this to do my job", I usually got it within a week after a 5 minute explanation of why. At larger companies when I said, "I need this to do my job", I was asked to submit a reports with measurements showing the cost-benefit, and it was rejected because then "everyone" would need to get that equipment. – Scott Whitlock Nov 20 '10 at 21:38
show 2 more comments

Resources. Some small companies are very poor and avoid buying expensive tools. Particularly important for embedded system work where we need logic analyzers, etc. to debug hardware/software bugs.

share|improve this answer
2  
Good thing that for software only projects... say web pages, you can do it using all FOSS. – Job Sep 11 '11 at 15:16

Lord, I hate working for big companies.

  • Doing your job and protecting your job are two independent skillsets. Large companies tend to wind up with plenty of people only good at the latter who get dug-in like ticks.

  • When dealing with higher-ups, you are rarely dealing with decision makers; you're dealing with arbiters of The Rules. Want something? The Rules shall determine if you can have it. Need help resolving a conflict? The Rules shall reveal who is right and who is wrong. Run into a situation that The Rules handle badly and need help figuring out how to get the right thing done? Sucks to be you; The Rules are never wrong. Nobody ever gets fired for going by The Rules, even when they are ridiculously ill-suited to the situation at hand. Circumventing them means risking your job, and people who like rolling those dice don't last long.

  • The culture strongly encourages maximizing the money you squeeze out of [widget] NOWNOWNOWNOWNOW; building something for the long-haul is secondary, and an anathema if it gets in the way of immediate gain.

  • Meetings. Oh, God. The meetings.

Big companies are good for job security and tend to have better benefits packages. Smaller companies tend to be more unstable (my own resume has a certain "ping-pong-ball-in-a-clothes-dryer" feel over a few stretches) and can sometimes have a disconcerting degree of Crazy at the top. ("Crazy" is actually a competitive advantage in an entrepreneur. I'm so not kidding.)

But all in all, I'll only work for big companies if I'm desperate. Small companies are more fun, more fulfilling, and less corrosive to my soul.

share|improve this answer
11  
+1 for "Meetings. Oh, God. The meetings." – Paddyslacker Sep 14 '10 at 17:10
1  
+1 I tend to enjoy smaller companies as well and dislike politics – gyurisc Jul 28 '11 at 13:51
1  
Oh, so you've worked for Kodak? – Paul Tomblin Sep 11 '11 at 13:57
show 4 more comments

The ability to make a difference

One thing about a small company is that typically there are less layers, barriers and corporate politics between you and the main decision makers in the business, so it's much easier for you to pitch an idea that you have to the decision makers, or show them what you've come up with.

To achieve the same thing in the corporate world (at least in the US), you have to either navigate the politics of the company and avoid upsetting your manager (and potentially their manager) by going through the chain to convince each person in the chain to let you move your idea up the chain, or you have to bypass that completely and hope that you can weather the potential storm that could come your way if your managers find out about what's going on.

I find that people who've worked in the corporate world for a long time are either extremely political animals, or are scared to make decisions for themselves for fear of the consequences.

From my answer, it shouldn't be hard to tell that I prefer working for smaller companies!

share|improve this answer
7  
Entrenched corporate decision makers too often don't want to make the RIGHT decision; they want to find the decision least likely to get them into trouble. There's a hell of a difference. Small companies forever, mate. :-) – BlairHippo Sep 14 '10 at 15:15
1  
I hate "political animals" :) – Sandeepan Nath Feb 2 '11 at 14:16
show 1 more comment

Working at a large, very well known hardware manufacturer now:

A simple refactoring assignment has been in code review for 2 weeks, next it will spend 2 or more weeks making its way through integration/merge. All to rename a couple functions at the team leads request (in a 100% statically compiled code base where the compiler is guaranteed to catch simple mistakes).

At startups in the past:
Source control? What source control? Can't you just get the site up now already?

share|improve this answer
3  
can't just pass by without upvoting you! Very nicely said "Source control? What source control? Can't you just get the site up now already?" – Sandeepan Nath Feb 2 '11 at 14:18
1  
I worked in a team of 2.5 developers, and we have had source control. Not doing so, along with not having backups would have been insane. – Job Sep 11 '11 at 14:38
1  
@Job: I'll take the bait... How do you have half a developer? Part-time? – Cameron Dec 19 '11 at 23:37
show 4 more comments

Not the answer you're looking for? Browse other questions tagged or ask your own question.