You can gather this information in a number of ways in an interview. Simply ask one of the interviewers where their group exists in the company hierarchy. If you don't want to be explicit, ask to look at the area where the developers sit and work. If the area is well done and people seem happy, you're probably in good shape. If the people are essentially stuffed into a closet or makeshift office/hallway then you might want to run.
Generally, try to work for a company that makes money on software or technology. A company that makes money on other products or services is likely to treat software developers as a low-level function of the organization.
I'd say this is usually good advice, but with a caveat: larger companies with deep chains of command -- even software companies -- typically have "management culture". These types of companies put a lot of pressure on their employees to move into management, even if they're not good at it or they don't want to. These companies reward playing social power games above any other kind of achievement. There will be lots of meetings and not a lot of work being done. There will be no reward for technological innovation or productivity.
So, I'd say avoid companies with deep management hierarchies unless 1) you want to go into management or 2) are stoked by the thought of doing the bare minimum.
To me, it felt like a psychological prison. I managed to break out.
The only advice I can give is this: if you're unhappy where you are, start planning your escape. Start networking and be patient; in my experience, this is the way to land a good job. On the other hand, if you're content at your current company then who cares what other people call dysfunctional?
That can induce bad habits.
People look askance at resumes from successful Microsoft employees because to succeed in the last N years they had to do things that add no value to anything other than surviving or thriving at that dysfunctional company. Why hire such an person if there's a good chance he'll do some damage to your company while you attempt to deprogram him, during which he'll be much less productive that someone from a less damaged company.
(OK, finding the latter might actually be difficult....)
> Why hire such an person if there's a good chance he'll do some damage to your company while you attempt to deprogram him, during which he'll be much less productive that someone from a less damaged company.
Hire such a person if you happen to be hiring for a dysfunctional company. They've got the experience, and they'll appear productive immediately.
So then the "black mark" on the resume only becomes a hindrance if after, say, 10 years a person finally decides to break out. It's still possible, but it will take a lot more work.
There's a lot of technical debt, but I have the time to clean it up. Most of the previous guys in my job just coasted, so I'm already kicking ass compared to them.
Edit: "Technical debt has to be the acceptable cost of rapid and affordable innovation."
We can't talk about (technical) debt without recognising the commensurate leverage it provides to business. If a debt does not continue leveraging the business, then and only then, can it be considered carcinogenic. And the only reliable solution then is to simply switch the solution off or replace it.
The easiest way to avoid these problems is to commit to clean code, and having the stones to stick to that plan. That means someone in power needs to agree with this way of doing things.
In my experience, the tone of a company is set from the top and works down. If the boss is non-technical and is not open to delegating, then there is nothing that can save that company other than new leadership.
What happens is the competent people bail, leaving behind the less talented and/or less motivated which creates a positive feedback cycle.
Well described here:
http://brucefwebster.com/2008/04/11/the-wetware-crisis-the-d...
That's painting with a broad brush, as software is used in a huge variety of businesses. But I'd plan on any organization without mega-income-$$$ (and even that is no guarantee) being pushed to their level of competence and beyond, having turnover to deal with, having features that marketing 'needs quickly to close a big deal', and maintaining zombie ware [it wont' die]. Welcome to my 15 years of experience...