As a team member, or as a programmer, would you accept a boss like that? If he wants to learn and he is interested by programming and what a programmer does? Can somebody with not programming background understands quickly how an IT environment works?
One thing needs to be clarified here; the PM's role is NOT to develop any code. One role is the programmer, developer, etc... so I would hire people with technical skills required to do that role, and another different role is the Project Manager's. For this role, I would hire the person with the strongest capabilities to lead the project (if he or she has technical skills on top of project management expertise then good, but it's not the core competency I would be focus on)
The Project Manager is the person responsible for capturing customers requirements, estimating, planning and communicating to the Team Members, Stakeholders and so forth.
Good PMs can handle multi-disciplinary projects regardless of the field/industry.
The key to ensure that both PM and Team can successfully work together and deliver the agreed outputs is COMMUNICATION. If you, as a programmer, come across certain issues with infrastructures, testing or anything related to your area of expertise, you need to have the back up support from your PM. He/She needs to understand your issue, estimate the impact (with your help, of course) to the product/output, and communicate delays or additional requirements to the stakeholders. I really don't think you need a person that knows different programming languages to understand that for X reason you cannot deliver and therefore the project may be delayed. On the other hand, a manager that understand that you have issues and supports you by communicating clearly and effectively with clients/sponsors and gets you additional resources/time/funds I believe it's more efficient.
My recommendation is to keep your mind open and support your manager. A solid working relationship will be more beneficial to you during the project's cycle life.
I am a fresh project manager, who grew up from developer. I noticed in my company, that knowledge of technical issues really helps me manage complex technical projects. It allows me to better understand developers , and when dealing with a client I can understand a lot more technical and business issues.
I noticed that pm's in my company, who don't have even a basic technical knowledge have a harder situation with many problems, because they simply do not understand them.
Whether or not you hire someone who does not have technical knowledge depends on the specifics of the project and the competence of that person in your company. If he/she wouldn't have to make decisions that require such knowledge, or will have for example the production manager, that will be able to give him such information - then OK. But personally I think that it is better that the person had at least a basic knowledge of technology that will have to work with.
I'd hire the person who is smart and can demonstrate that they can get things done. If he happens to have the IT background, wonderful.
PMs don't need to be very familiar with the IT environment to be successful. It helps but its not critical since most of the work he will be doing won't be of a technical nature anyway.
IMHO, You have more problems with those clueless ones that THINK they know IT.
The key thing about dealing with non technical PMs is to have a strong technical team leader to act as a bridge between the team and management. If you are missing a good team leader as well then things can get messy.
I would prefer a strong people manager to a brilliant programming leader as my boss.
Somebody who takes it on the chin for the team,understands & resolves people issues.
As far as IT background goes,in my experience I have seen non "technical" project leaders/managers (who have the skills to interview & elicit information from tech people and who created a culture of trust and fearlessness in the team) fare much better than ones from a hard core "technical" background (leading purely from a technical aspect).
The key is (as I mentioned above) is the ability to "understand" tech speak & tech peoples's egos, make sure that there are no impediments in their way :)
To answer the headline question: Absolutely. If the person has the right skills, I would take him or her on regardless of programming background or not.
You imply that an IT environment equals a programming environment. That's an interesting side issue: I work in an IT environment and always have. In my current role I work alongside about a dozen other environment and infrastructure PMs, and the majority of us have never written code as a professional programmer, and we don't manage programmers either. We deliver infrastructure, we manage testing, and we coordinate implementations. Other PMs manage the programmers.
You also ask whether a programmer would accept a non-programmer as a boss. Well, having been a non-programmer who managed programmers in the past, I have to say that this can work, but both groups have to accept that the skill sets and the knowledge bases are quite different, and they have to work through the inevitable challenges. This can bring benefits to both: the PM can often see non-technical solutions to a problem, while the programmer may be able to offer better ways to achieve an end result than had been put forward by the PM.
Your final question is also interesting: whether a PM without a programming background can understand how IT environments work. I believe the answer is yes, although it may take a little time to get up to speed. Deep detailed knowledge should not be required, although a general understanding is helpful. As a PM who has moved from one business to another, and one technical environment to another several times, I find that honesty about what I know or don't know is the best way to progress. One of the most powerful questions is "Can you explain that in easy, layman's language" - which forces the technical person to really think about his answer, and can uncover a whole load of assumptions or identify things that are done "because we have always done it that way".
Keep in mind the Project Management isn't Functional Management. The Project Manager needs to be aware of and familiar with the -types- of problems and issues that might arise on a project, but won't be expected to resolve them. More typically, the Project Manager will benefit from more "paperwork" and "interpersonal" skills than anything IT related.
As a team member in this environment, if the PM is willing to learn, then it might be a better situation as the PM may approach situations with an open mind and be receptive to good feedback from the team, rather than try to use their background and experience to "drive" the team to a course of action.
Well I'm developer and I would n't accept a project manager which wasn't a developer at least for a short time. Somebody without this experience doesn't know what the typical problems of a developer are. I don't want him to solve the technical problems, but I think he should be able to see from the perspective of his developers to know when it's necessary to interfere and when not.
If your company has a management style similar to the type that Joel Spolsky recommends, where technical decisions are made by the front-line technical people, then a non-IT person who happens to have good people skills should work fine.
If your company has a command and control management style or a place were technical decisions get escalated "up the chain", the chances of a non-techie project manager being accepted by the project team and be an effective leader is quite low.
As a non techie manager in an office full of developers, I can relate to this topic from experience. I agree that:
"The key thing about dealing with non technical PMs is to have a strong technical team leader to act as a bridge between the team and management. If you are missing a good team leader as well then things can get messy"
However, my job requires that I research the industry itself for trends and current events whereas this is sometimes "news"for programmers who have a preferred method of coding. They tend to be happy within those parameters. No, not everyone...but I am always surprised at how many can't be bothered to look outside their nook.
When they do, it's always a treat because we both learn something.
I don't think there is a general rule because there are good PMs and bad ones regardless of developer/IT experience.
I have had great PMs that have not been very techsavy but they knew how to listen and communicate. A PM is not necessarily somebody you sit and discuss technical problems with, instead his main role is to act as administrator.
I have also had mediocre PMs who obviously cannot let go of their developer past and see an absolute need to micromanage developers.
So no, I don't think it is necessary with a developer/IT background but it is a bonus if the PM is good.