I have experienced working for startups and large businesses. In my experience I have preferred working for large businesses. For me, I actually find a lot of the "perks" of startups to overall be worse for the environment. Sure, I can show up whenever I want and dress how I like, but overall is this really a good thing? Or does it just trend toward laziness and lack of personal responsibility? What's so bad about a little structure -- I grew up in a structured educational environment and learned to thrive in it.
Beyond this though, what I really like about larger companies is the expertise at my fingertips. I think I'm a pretty good programmer, but I can't do everything, and I don't have the experience to be good at everything.
At Corporation A, adding a new feature requires the following process: marketing identifies a need, project manager creates a plan, software architect decides how it should be implemented, programmer implements the feature, designer spruces it up, QA ensures that it is correct, and sales creates a pitch. Money rolls in.
At Startup B, it works like this: Investor X identifies a need, Investor Y disagrees on implementation, 95% of time is spent discussing exact wording instead of the usefulness of said feature. Programmer implements it, no one remembers what it was for, it gets dropped at the next redesign.
People say they don't want to just be a "cog in a wheel", but I see nothing wrong with being a cog in well-oiled, efficient machine. I find it very satisfying to be a small but significant part of something larger than I could ever create on my own.
I work at a start up now after working at the largest software corporation for about two years, and I guess I see the complete opposite. Sure, at the start up, we can dress how we like, show up when we want, etc.. but honestly, people dress the same as they did at the corporation, and people show up at roughly the same time. And I feel (and see) more of a trend of personal responsibility at the start up. With 20 engineers, there's no one to pass the buck to: if something breaks from your area, you fix it. Especially dealing with a live site with millions of customers, versus a two year release cycle at my previous job.
I'm going to have to disagree on the point of expertise too. At my corporate job, I tried bringing up functional programming at a happy hour and got a lot of blank stares. Anything programming related that was not directly related to the job, my coworkers didn't seem to care about. At the start up, people learn different languages for fun and try to stay up with new technology.
I know that all I've done is provide more anecdotal evidence, but my experience has been so 180 degree opposite from yours, Markus, that I felt compelled to comment. I guess the big difference I see is that of passion: corporate programmers are rarely super excited about what they work on, and start up programmers almost have to be. I'm not saying passion means a better product or success, but I'd choose working with passionate people any day of the week.
Sure, I can show up whenever I want and dress how I like, but overall is this really a good thing?
I'm going with "yes". I fail to see how it's an improvement to have to wear less comfortable clothes than you'd like, and have to be there when your body really doesn't want to be. My company went back to a minimal dress code after a year of "business casual", yet somehow we still do our jobs and as a result I'm much more inclined to stay longer when it's needed. And we've always had flexible hours; if I had to be in at 9 I'd be useless for the morning and would be gone before my most productive time in the evening.
At Startup B, it works like this: Investor X identifies a need, Investor Y disagrees on implementation, 95% of time is spent discussing exact wording instead of the usefulness of said feature. Programmer implements it, no one remembers what it was for, it gets dropped at the next redesign.
Look into Bugzilla or FogBugz. You don't need 6 layers of bureaucracy to handle new features.
I have experienced working for startups and large businesses. In my experience I have preferred working for large businesses. For me, I actually find a lot of the "perks" of startups to overall be worse for the environment. Sure, I can show up whenever I want and dress how I like, but overall is this really a good thing? Or does it just trend toward laziness and lack of personal responsibility? What's so bad about a little structure -- I grew up in a structured educational environment and learned to thrive in it.
Beyond this though, what I really like about larger companies is the expertise at my fingertips. I think I'm a pretty good programmer, but I can't do everything, and I don't have the experience to be good at everything.
At Corporation A, adding a new feature requires the following process: marketing identifies a need, project manager creates a plan, software architect decides how it should be implemented, programmer implements the feature, designer spruces it up, QA ensures that it is correct, and sales creates a pitch. Money rolls in.
At Startup B, it works like this: Investor X identifies a need, Investor Y disagrees on implementation, 95% of time is spent discussing exact wording instead of the usefulness of said feature. Programmer implements it, no one remembers what it was for, it gets dropped at the next redesign.
People say they don't want to just be a "cog in a wheel", but I see nothing wrong with being a cog in well-oiled, efficient machine. I find it very satisfying to be a small but significant part of something larger than I could ever create on my own.