They’re different in large companies than they are in smaller companies. Some programmers know this intuitively, some learn it over the years, and some never quite figure it out.
- In large companies you’re a specialist; in smaller companies you’re a generalist. You have to be a programming guru in large companies, grouping together whatever skill-sets it takes to get the job done. In smaller companies your programming skills can be average but you need to be a guru when it comes to knowing every aspect of the business. The fewer skill-sets you use to accomplish this the better – expanding the number of skill-sets it takes to replace you does a disservice to the company by eventually increasing their labor costs.
- In large companies elegant programming counts; in smaller companies if brute force programming can get the job done faster then use it.
- In large companies you can speak Klingon – business analysts will translate it into English for you so others can understand what you’re saying (that’s a large part of their job). In smaller companies speak English, or your native tongue – there aren’t any translators.
- In large companies your satisfaction will come from solving a programming problem your peers can’t, or from getting something done faster than your peers could. In smaller companies your satisfaction will come from seeing people appreciate the fact that you’ve made their job easier. (In large companies you might not even be in the same state or country as the users are so there won’t be any helper’s high coming from them.)
- In large companies a major mistake could cost the company a lot of money. In smaller companies it could cost everyone their job.