If you are lucky enough to have a brilliant boss who really knows how to manage a software department, you can skip this section.
Still with me? I thought you might be!
The software industry seems to suffer from a real problem with poor man-agement, and there are several reasons for this:
Software engineering is difficult. Managing people is difficult. It's not surprising that there are few people to be found who are both able and willing to do both of them at once.
Software managers are expected to be able to manage people, organize a department, and make strategic decisions concerning choices of technologies and architectures of products. It's not surprising that many software managers can't cope.
Software moves very fast. If your boss has been managing long enough to be an experienced manager, they must have stopped being a programmer several years ago, and unless they have made a conscious effort their technical skills will be out of date. While it may not matter that they can't program any more, managers tend to get out of touch and make stupid decisions that are based on press hype or on people feeding them rubbish. In other words, their judgement becomes less reliable.
Perhaps a way will be found to split these responsibilities somewhat. The software industry is still immature and new job titles are being invented all the time. The 'mentoring' role sometimes found in bigger organizations may become more common and more permanent, perhaps becoming a sort of software coaching role.
Some software managers love coding so much that they don't stop. As a result, their management jobs don't get done.
Engineers often get promoted to management because they are good engineers. They may be lousy managers.
Engineers often get promoted to management with no training in management at all. Perhaps they get a three-day training course. If it takes several years to learn how to do software engineering, what makes organizations think that people can learn the skills of management in three days? Or do they think that there is nothing to be taught, people just have to pick it up somehow, whilst in the meantime, their employees must suffer?
In many organizations a good MBA is now a prerequisite for a management position. Sometimes, an exception is made to this rule for software managers. In my opinion this is a huge mistake, as it is bound to diminish the software manager in the eyes of the rest of the management team.
Software managers are often recruited by more senior managers who are themselves not familiar with software engineering. Often, no technical people are involved in the recruitment at all. The result is that bullshit-merchants get hired, who are very good at making themselves look good but at little else.
My reason for including this list is to point out that before you leave your current job because of your boss, you should be aware how likely you are to meet another poor boss somewhere else. It's not surprising that even a well-meaning and capable person can become a poor software manager. Things are even worse if the person has an autocratic or hopelessly spine-less personality.
So what should you do about it? Firstly, you should not defy your boss nor actively undermine his or her position. You can quite rightly be sacked for this. If you are given clear instructions by your boss then you should try your best to implement your boss's instructions and to make them work, even if you disagree with them. Your boss has the authority to make decisions and you must recognize that authority. Equally, it is not a good idea to try to play politics or to get devious to show your boss up these things usually backfire. Do your job to the best of your ability but don't get yourself into trouble just because your boss is useless you might find yourself being made into a scapegoat. You should act honestly and treat your boss with the same respect you would treat anyone else, if you expect to be trusted and respected in return.
Fortunately, poor bosses usually have an inkling of their own incompetence. They often cover up their inability to make good decisions, by not making any decisions at all. If you have such a 'passively incompetent' boss this is not too bad because you and your colleagues will be able to take the decisions instead. This will involve you in doing work that your boss should be doing, but it's usually preferable to take on that work, rather than not have it done at all.
There are two levels to this taking-on of work: you can either get your boss to delegate, or you can simply act anyway. Let's take an example. Suppose that the office layout needs changing the desks need moving because some people are too cramped. It might well be that if you ask your boss to sort something out, nothing will happen. But if you ask if you could arrange it, you might be allowed. Of course your boss may want to approve your decisions before you implement them, especially if money needs to be spent, but your boss's involvement might be reduced to giving you the go-ahead. That is the delegation approach.
If you take the act-anyway approach, you and your colleagues would simply rearrange the desks without reference to your boss at all. The approach to be taken depends on your boss and on the issue, but the delegation option is certainly less likely to get you into trouble.
One common characteristic of poor bosses is that they never come out of their offices. This can work to your advantage as they may not notice if you move the furniture around, work from home for a day or two, or emigrate on full pay.
Let's have a look at some of the things that a software manager is supposed to do, and see if you and your colleagues could help a 'passively incompetent' boss to get some of them done if they are not happening. Let's see which you can help out with:
Talk directly to Human Resources about individual candidates and about the recruitment process as a whole.
Get CVs sent to you and your colleagues instead of your boss for filtering.
Get involved in the interview process.
Work out improvements between yourselves and send them, piecemeal, to your boss for approval.
Allocating people to projects: No
It will be very hard for you to judge the conflicting priorities of the organization and its different customers. You should not unilaterally decide where the organization's priorities lie, so you must appeal to your boss for decisions. If you don't get them then you can only carry on as instructed. Don't try to appeal to your boss's boss, as 'going over the boss's head' is likely to get your boss all upset.
Encouraging open communication within the department and between departments: Yes
If you have a 'passively incompetent' boss it will be down to you and your colleagues to make sure that you know what is going on by talking to each other, and by talking to other people in the organization. If communications are especially poor, you might like to call some regular meetings (not too regular!), to discuss what is going on in different areas.
Don't underestimate the power of informal communications. If the problem is one of a lack of trust and understanding, a trip to the pub can be a far more effective way to get people talking than locking them up in a meeting. Plus you can arrange a visit to the pub without feeling compelled to invite your boss.
Resolving personnel issues: No
If one of your colleagues is a pain to work with, or is lazy and incompetent, you can have a quiet word with your boss. If nothing happens about it then it will be very hard for you to act further. This is one of the major reasons why poor bosses destroy departments. People who should be disciplined or sacked are allowed to get away with murder, while good people get stressed out and leave.
Of course if one of your colleagues is doing something totally intolerable, like bullying or harassing you, then you should take more formal action, by following your organization's grievance procedures. But most personnel problems are not so extreme and are very hard to prove.
There is usually little point in going to the Human Resources department, as their first, and possibly only, action will be to talk to your boss, which just makes you look like a trouble-causer.
Monitoring the budget: No
There is no incentive for you to try to get involved here. If you need some resources that will cost money, it will have to be saved elsewhere. You can try to agree this with those affected but you are not likely to have much success. Resources are tight in most organizations and people don't give them up unless forced to.
Strategic planning: No, except...
Strategic planning means stepping back from the details and making the larger, riskier, more creative and longer-term decisions that a business needs to make if it is to keep alive. You can't do this because you don't have access to the other strategic policies such as the crucial marketing strategy, but you can provide the organization with some 'technological push'.
Many profit-making organizations are dominated by 'market pull', where they allow the market to dominate what they do, and by and large this is a very healthy way to run a business. But there is also a need for some 'technological push', where the organization's direction is steered to make best use of new technical possibilities. There is nothing to stop you providing this input directly to other parts of the organization, such as marketing.
Training and developing staff: Yes
If you or someone on your team needs a training course, you should be able to get it by justifying how much time it will save you and what that person will be able to do that they could not do before. It will help if you choose a course and find out all about it, and present this to your boss for approval.
However, 'development' means more than going on courses, it means taking on more responsibility and growing as an individual. A 'passively incompetent' boss may actually help here, as you may find yourself doing things that your boss would normally do, although unfortunately you will not have the job title or authority to go with it nor the salary.
Representing the department: No
Most bosses realize that if they don't turn up for management meetings they will soon be out of a job and so this is one area where they may work very hard. Many managers are very good at making themselves look good and won't want any help in this direction.
The above assumes that you have a boss who realizes that they are out of their depth and so tries to keep their head down. But there are some bosses (thankfully much fewer) who are much more actively incompetent. The sins of such people include:
Adopting an autocratic style, shouting and threatening.
Not delegating any responsibility, centralizing all decisions.
Surrounding themselves by cliques of cronies and yes-men.
Appalling judgement, based on political and personal considerations, or out of an ignorance combined with arrogance that prevents them asking for advice.
Nepotism (recruiting, or making business deals with, friends and relations).
Politicking and war-mongering, encouraging rivalries and winlose battles.
Interfering in people's jobs at a level of detail that they should not get involved in.
Closing down communications. Telling people not to communicate with other departments, or with each other.
Such people should be sacked. If you are of a serene and philosophical disposition you might like to take a balanced view, judging the problems caused by your boss against the positive aspects of your job, which are in fact all too easy to take for granted. You might decide that on balance you can put up with the problems. If you are of a less serene and philosophical disposition then you might be forced to look for a new job as the stress could become intolerable.
At the worst extreme there are managers who are bullies or who subject people to sexual harassment, discrimination or other forms of mental abuse. Nobody should have to tolerate being treated like dirt at work. Take legal advice and act on it.