views:

489

answers:

17

Hi,

After asking this question, and reading some of the comments, I realised that some of my peers would simply refuse to work for a large corporate environments. Personally, I have worked for both small start-ups (6 employees), medium sized ISVs (180 employees), and several large IT Services companies (10,000+ employees). Each type of company has it advantages and disadvantages, and I have got a lot from each of the companies that I worked for. I'm currently with a large company that has me working in a small team with some great developers developing enterprise level software.

What I would like to ask is, what type of company do you believe programmers should avoid working for?

I'm NOT just talking about the size of the company; I would be interested in reading answers about particular development areas (for example, malware, finanical services, etc) that you think we should all avoid.

Thanks, MagicAndi.

A: 

As long as I get properly compensated and the technology used is not ancient, I'm fine.

Otávio Décio
I'd rather take a little less money than work where work is not fun. But ok, with "technology not ancient", it can't be that bad ;)
OregonGhost
@OregonGhost - I agree with you, given the option. But I have to admit, I left places because I couldn't do the best possible job.
Otávio Décio
+5  A: 

I.T. Departments in Retail Banks & Financial houses.

In my experience these folks are terrified of I.T. change, and love the status quo, which will drive any red-blooded developer around the twist (which means you don't get many red-blooded developers staying very long).

Worked in one for about 5 years (doing C++ with very occasional VB6, so was happy enough . . . mostly).

The also locked down the machines to the point where you have to ask yourself are you the only non mentally-deficient-pervert on the payroll.

We got XP machines in 2005 (was windows 98 until then). If I hadn't been using .net for pet projects at home I'd have gone insane . . .

Binary Worrier
Binary Worrier, I worked with a leading insurance company for 6 months and know exactly what you mean.
MagicAndi
The only reason I stayed was because they let me loose at C++, and I got to call the C++ shots. But after 5 years - after writing the same package several times (you wouldn't be changing working code would you? God no, copy something like it and make it work) - I'd had enough and wanted greener pastures
Binary Worrier
For some reason, there is a perception that banks have state of the art software. This is not the case at all. After working with a bank on an interface, I'm amazed online banking works.
Jim
Retail banking is often pretty conservative with their technology choices. Investment banks (especially the front office), hedge funds, brokers, etc. often use cool, new technologies in places where it saves time or gives them an advantage. Perhaps not popular places to work these days!
Stephen Darlington
I agree with Stephen - I think that you need to differentiate between retail banking and investment banking. I've never worked in the former, but in the latter most software development is pretty cutting edge.
anon
I've never worked in the latter, and in the former the remove all the cutting edges in case you hurt yourself on them. I have 2 words; NEVER AGAIN . . . well ok 6 words NEVER AGAIN, unless I'm REALLY hungry
Binary Worrier
A: 

I'm pretty much OK as long as there's a path forward from whatever it is I'm doing. Like ocdecio, as long as I'm not maintaining FoxPro systyems, I think I'd be OK. That might stem from the fact that I've used PowerBuilder off-and-on (currently on) for most of my career and have alwauys been able to find work in a shrinking market.

I would caution folks about working for one of the big service companies unless they like less control and more pressure (I did 7 years at KPMG/BearingPoint).

Information service companies might be an issue for folks who don't like hard deadlines. When you have regular contractual commitments to deliver, "I need two more weeks" won't cut it. (JD Power, for example, has to deliver private client studies, changes & recalcs included, every month)

DaveE
+5  A: 

A company with a low score in the Joel Test. No, really. And if it's not fun to work there, I'd avoid it even with a high score.

And, as I already mentioned in the linked question, I'd rather not work for a company where the developers don't have control over their machines.

One of the first questions my boss asked me when I began was

What kind of screen, keyboard, mouse etc. do you want?

And when I answered I'd like to have two screens, a Natural Ergonomic Keyboard 4000 and a MX 512, I got all those. That's like it should be.

As an addendum, a few years ago, my company would score low on the test. But when you have the chance to increase the score actively, that's fine too because it's a lot of fun to build things up.

OregonGhost
+4  A: 

The OP doesn't say what are the reasons to avoid a company that he is concerned about--

Some people would avoid companies where there is a greater chance of being laid off. Eg. The more a company treats programmers as commodity developers, the riskier the situation for the programmers.

Others would avoid a company where the tasks are routine, even if the employment is very secure.

It isn't smart to generalize about industries. There are innovative companies in every field. Rather, find out about the culture and tools of a specific company. If you like them, go for it!

Larry K
Larry, Interesting point of view, and one that I would in general agree with. But there are some categories of company that I would avoid, and recommend everyone else to avoid, simply because of my prior experience working in that field, or simply because they leave a bad taste in the mouth (ad-ware, pornography). It wouldn't matter how progressive the company is, if it is in that field, I would avoid it.
MagicAndi
+4  A: 

Generally speaking, just about any company has IT related business needs, so there's a place in just about any kind of business. You should evaluate the business the company is engaged in to determine what kind of lasting value they're producing. For instance, you've mentioned malware, so I'm assuming you believe that kind of company to be engaged in something morally "wrong". Other industries might also fit into a morally "wrong" category -- I know I would never provide IT consulting services to a company engaged in producing pornography, for instance.

Another consideration is the corporate work environment -- are the staff treated fairly, given adequate tools to get the job done, and have reasonable expectations of what they are to do? If not, I'd definitely choose to work somewhere else. Good and bad companies exist in every strata of our society, so there's no easy answer here.

Be cautious about using the available technology as a huge factor in determining whether or not to work for a company -- my father works in IT for a rescue mission in south-central Pennsylvania, a far cry from his earlier career working for IBM. But it's been one of the most rewarding jobs he's had, because of the caliber of the staff he's working with, and the mission of the organization to reach out and assist those in need.

Matt Newby
+1  A: 

If a class of business has a reputation for shadyness, or produces products that people distrust, there's a good chance that the people you'll be working with will be shady as well.

We can all think of examples, and this is a test you can run yourself.

Michael Petrotta
+9  A: 

Not all IT in banks are horrible to work in as @binary-worrier mentioned. It really depends on how the company views IT, this is something that isn't limited to financial services either.

A good developer should never take a job where the company views IT as a cost-center. On the flip-side, a company that views IT as a strategic advantage is where you should be. When IT is viewed as strategic advantage, they actually put money into the organization and support it from the top down. However the cost-center view will only ever treat IT as the red-headed step-child...

Work for a company that views IT as a strategic advantage!

Redbeard 0x0A
Good point mate, of course I can only speak from personal experience
Binary Worrier
A: 

See this Stackoverflow posting for a discussion on a similar topic.

ConcernedOfTunbridgeWells
A: 

This is a very subjective question as the type of company a programmer is willing to work for is largely influenced by the programmer's ethics. I think that there are always good examples and bad examples of companies in any category you can think of so it's impossible to make any absolute guidelines.

For me personally, I have never and will never work for any company in the defense sector. Now, I've been lucky that I've found work elsewhere that has paid OK but I'm sure I would be much better finacially had I done work in that sector. I would also be wary of working on medical related projects.

Skizz

Skizz
+1  A: 

Anything where most of your money is not coming directly from individual end-users is on my "avoid" list. Anything where your primary customer(s) are companies orders of magnitude larger than yours is on my "DO NOT WANT!" list.

These environments are bursting with horrific levels of extremely nasty politics, both internally and between your company and the others. Nothing gets done, sociopaths thrive, and saying anything that isn't some massively-obfuscated version of official truth (nevermind actual truth) is actively punished.

And God help you if you try to fix a problem without consulting whatever little-Napoleon decides it's his code...

Nicholas Knight
A: 

I would say stay away from manufacturing companies. Deadlines are aggressive and the software guy is usually the last person to touch a process before it goes online. If the hardware guys are late (they usually are) you are already weeks behind and you are the one having all 8 of your bosses stopping by 5-10X a day, looking over your shoulder and asking you "Are we there yet? Are we there yet?"

PaulG
+2  A: 

Companies that are in business. They tend to have all manner of pesky expectations about things being completed and working correctly.

Paul Morie
Is this a joke?
mafutrct
+1 for making me laugh!
Dominic Rodger
A: 

I took a position that offered a much higher salary than I would have expected, assuming the extra income would allow me to overlook the glaring problems which included, to name a few, poor communication amongst the team, project owners who were slinging mud at each other, ineffective project managers, a lack of design and subsequently poor requirements. Lesson learned! With this experience under my belt, I would much rather evaluate the "health" of the company and team that I would be a part of before I assume that money (or any other perk) would make all the uglies go away. I hadn't read the Joel Test before seeing this question, and despite the fact that it's 9 years old, it's incredibly relevant and is precisely how I would go about evaluating a company before accepting an offer.

mannish
A: 

The mistake I have made over and over again was not asking enough questions about the company. Every shop is looking for the most talented developers they can land, and the result is that people will lie right to your face. "Of course we have the best equipment money can buy." "Yeah, we properly document code" "Our work environment is top notch"...so the due diligence is on your shoulders.

Good questions to ask in addition to the previously mentioned Joel 12:

Why did my predecessor leave? What is your software methodology? (And mixed agile just means laziness) How often are developers computers upgraded/replaced? Will you pay for developers to go to development confereances? Who gives estimate for work being done? (This one always kills me) What exactly does flexible schedule mean?

Look around; is this the type of place you want to spend the majority of your waking hours toiling to make someone else wealthy? If not, take your time and find the right fit.

Pro777
A: 

Ones that were founded/run by someone other than a programmer or former programmer.

In the case where its some MBA or sales weasel, the development/IT/engineering department will be almost an afterthought and get the least say in the company's direction. It's all downhill from there.

They won't care about requirements, documentation, good design, time to test, technical debt or anything that matters to a programmer except getting the job done.

Trampas Kirk
+1  A: 

I'd like to think that there are some realms in society that are heavily loathed and so working for companies engaged in that field is what I'd think we should avoid working for altogether. Examples here would include companies that create computer viruses and worms, spread child pornography or support slavery, or support fraud.

Granted that laws may differ from country to country, but I'd like to think there is some common ground on these topics to make them a base of what we wouldn't want to support with our skills. Much like one wouldn't want to take capitalism to an extreme, so to must there be limits on where the power of technology is applied.

JB King