12 SOCIAL STRUCTURES  24/11/97

12 Social structures

i.e. Management, teams, leadership, organisations

12.1 Management

Management

Two types of management are relevant to software:

• people management

• project management

Both types are best seen as enabling activities: a good manager doesn’t do the actual work of building software but aims to maintain an environment in which it’s possible for people to get on and do so!

Of course many would argue that the bottom line is always financial.

A manager is not the same as a leader...

Slide 82

One view: management as enabling activity

No project can succeed without management support. The best sort of management support is the kind in which management doesn’t find out about the project until it’s a market success. If management notices a project too soon it’ll support it in the following ways:

• Demand frequent status reports to explain why the team doesn’t have enough time to meet deadlines.

• Demand explanations of how the project differs from all the projects that have similar acronyms.

• Ask the team what it could do if it had only half as much funding.

• Appoint an Oversight Committee whose members are always on trips.

To put it another way, managers understand that their role is to remove obstacles from the project team. They probably could do that, with the help of Dr Kevorkian, but most managers are not such good sports. Therefore, coincidentally, the biggest obstacle to the success of any project is management itself.

(from The Dilbert Principle, p233)

This is of course a caricature: but the kernel of fairly uncontroversial truth here is that an important function of the manager of a task is to keep mindless bureaucracy away from the people who are doing the task, maybe by making the necessary arguments to make it go away, and if necessary by doing the dirty work him or herself.

12 SOCIAL STRUCTURES  24/11/97  12.1 Management

Another view: management as financial control Here’s an extreme expression of a financial view of management (from Drucker, P.F. The Practice of Management):

Management must always, in every decision and action, put economic performance first. It can only justify its existence and its authority by the economic results it produces. There may be great non-economic results: the happiness of the members of the enterprise, the contribution to the welfare or culture of the community, etc. Yet management has failed if it fails to produce economic results. It has failed if it does not improve or at least maintain the wealth producing capacity of the economic resources entrusted to it... The first definition of management is therefore that it is an economic organ of an industrial society. Every act, every decision, every deliberation of management has as its first dimension an economic dimension.

Of course, we may need to take a very wide view of economics to make this view defensible: the manager of a safety critical software project cannot ignore the safety of human beings, but maybe that can be accounted for by the effect of a failure on the financial position of the company. On the whole I tend to think not...

Project management

A project manager arranges for the following functions to be fulfilled:

• Planning

• Organizing – e.g. defining lines of communication, assigning tasks among team members

• Staffing – e.g. making sure appropriate people are selected for the project

• Monitoring – e.g. measuring the progress of the project

• Controlling – e.g. telling people what to do, keeping the project on track

• Innovating – e.g. making sure appropriate tools are used

• Representing – e.g. liaising with the customer or with other parts of the organisation.

Software project management

A project manager arranges for the following functions to be fulfilled:

• Planning

• Organizing

• Staffing

• Monitoring

• Controlling

• Innovating

• Representing

Slide 83

12.1.1 People management

Normally each employee will have a personal manager (line manager). This may be the same person as the project manager, but more often will not be. Whereas you may have a different project manager for each project, a personal manager (sometimes called line manager) will have a long-term involvement. His/her job is to make sure your career is progressing, that you are getting appropriate training, that your performance is satisfactory, etc. Probably also has a role in deciding what projects to assign you to.

Reasons to have two separate people: there’s a conflict of interests, since the project manager has the immediate project’s best interests at heart, whereas the personal manager is aiming to further the long-term interests of the company by making best use of people and enabling them to develop their skills. Reasons not to: it’s extra overhead, you may end up with a personal manager who doesn’t know the employee or their work very well.

Line management

As a software engineer, you probably at any one time have both

• a project manager (determined by what project you’re on)

• a line manager (determined by who you are)

Your line manager oversees your career progression, training, overall performance, and probably has a role in assigning you to projects.

These managers may or may not (esp. matrix management be the same person.

Should they be?

Conflict of interests (so no) ?

Communication problems (so yes) ?

Slide 84

What are the characteristics of a good manager?

Teams

What makes a successful team? Hard to describe, but certainly includes:

• balance of appropriate personal characteristics. For example, the team needs people (probably different people!) who are good at

– seeing the customer’s point of view

– coming up with ideas

– finding the flaws in ideas

– helping the team stay focussed on the task

– making sure everyone’s voice is heard

• balance of appropriate skills for the task

• people who get on with one another

• being part of a basically happy and successful organisation

Success builds on success. For example, the more successful a team the more likely it is to have low turnover, which is likely to lead to further success...

At the lowest level teams normally have between 3 and 8 people: small enough to keep communication problems under control, though of course the size depends on the project: each team should have a fairly clearly defined task, otherwise the burdens of communicating with other teams will be overwhelming. There will usually be a team manager: this may be a member of the team so designated for one project only, or it may be a separate job title for a managerial person. The team manager will have the main responsibility for managing interactions with other teams. On a large project there might be a hierarchy with

12 SOCIAL STRUCTURES  24/11/97  12.2 Leadership

groups of teams forming sub-projects under a sub-project manager and so on. Managing communications in such a project is very hard, and failure to do so is one of the main reasons why projects fail. There are various approaches to tackling this. At one extreme, a large project may try to keep all interaction between people on different teams to managed pathways: you talk to your team manager who talks to your sub-project manager who talks to another sub-project manager who talks to a team manager on that sub-project who... At the other extreme, a project may try to keep all possible channels of communication open, for example by having regular project meetings to which everyone involved in the project is invited. If we knew that one of these worked better than the other, we might have less of a software crisis than we do!

Individual roles within a team may be well-defined or not...

There’s also a wider concept of teamwork involving a whole company “pulling together”

– this is more nebulous.

Successful teams

What makes a successful team?

• balance of appropriate personal and interpersonal skills

• balance of appropriate technical skills for the task

• people who get on with one another

• being part of a basically happy and successful organisation

• appropriate size (3 - 8 ?)

• good team manager

• low turnover

• success!!

Slide 85

12.2 Leadership

Leadership is often confused with management (not least by managers!) but the functions are essentially different, and need not be taken by the same people; indeed it’s possible to argue that they shouldn’t be. (I’ve several times observed apparently successful situations where the X is a leader whilst the Deputy X is a manager, and perhaps this is an organizational pattern?)

So what’s the difference? It’s hard to characterise, but the best I’ve come up with is that a manager is a smoother-down and a leader is a shaker-up.

A leader is a person who knows where they’re going and has ideas about how to get there: a vision person. They may concentrate on the most important goals to such an extent that they lose sight of more peripheral issues altogether. They aren’t easily sidetracked, or indeed diverted from their course in any way. As you see, any of these characteristics can be strengths or weaknesses, and which one is in any circumstance may well depend on whether the observer agrees with the leader or not!

12 SOCIAL STRUCTURES  24/11/97  12.3 Organisations

Management skills can (to some extent at least) be learned, and someone who’s a good manager will probably be competent at managing any task which they understand well enough. With leadership skills it’s not so clear that they can be learnt – and it’s certainly possible for someone to be a good leader for one task, and quite unable to lead another. On the other hand, it’s not essential for leadership to come always from the same person, even within a task. Since a large part of good management is about understanding lines of communication, I don’t think it’s possible to distribute management in the same way. So one might argue (I think I would) that in making appointments into a hierarchy one should look primarily for good management skills, and let leadership arise where it will.

Leadership

A leader is

• one who makes things happen

• a shaker-up

• a vision person

• someone who sees what’s important

• not easily diverted from his/her course

Can someone simultaneously lead and manage?

Slide 86

What makes a good leader?

Do you think you are more likely to make a good manager, or a good leader?

12.3 Organisations

There are probably as many types of organisations as there are organisations! Moreover successful organisations vary so wildly that it doesn’t seem sensible to lay down rules here about what’s right. The only common factors I can think of are the rather obvious:

• a successful organisation will make its customers happy

• a successful organisation will make its employees happy

I guess it has to make its shareholders happy too, but maybe that’s a consequence! Here are some things that differ, in question form since they come from a piece of

coursework last year that asked people to consider what kind of organisation they’d like to work for:

• Some organisations tend to have separate “analysts”, “designers” and “programmers”, so that you would be working primarily on one part of the life-cycle. Others tend to employ people (often called “software engineers” or “analyst/programmers”) who will work on various stages of the life-cycle, often following a project through from an early stage to completion.

• Would you prefer to work in a situation where you will have a great deal of autonomy and responsibility for dealing with customers directly; or would you prefer to concentrate on solving well-defined technical problems, leaving interfacing with the customer to others?

• Promotion: in some organisations being promoted necessarily involves taking on more management responsibilities. In others, there is a “technical track” such that it is possible to be promoted into a position as “technical expert” available for consultation in your area of expertise, without moving into management.

• Most management structures will include the idea that a given team has a “team leader”. In some cases, the team leader will be someone with a different job title from the rest of the team and particular experience or expertise in management; that is, you have to have a formal promotion before you can be a team leader, and from then on you will (almost) always lead the team on which you work. In other organisations, anyone, however recently appointed, can act as team leader for a project. In the latter case the decision might be made on the basis of such factors as the person’s experience in the technical or business field. Which do you think is best, or which would you prefer?

• Would you prefer to work on a large project or a small one?

• Would you prefer to be involved in development of new products or in maintenance of existing products?

• Should your company frequently employ contractors to balance out peaks and troughs of work? What about specialist consultants? What should its attitude be towards subcontracting out parts of its work? Which parts? (e.g. should it contract out the boring routine parts, or should it contract out the difficult parts to specialists?)

• Would you prefer to be involved with products which are well-understood, where the challenges are to do with producing exactly the right variant of a basically wellunderstood thing? Or would you prefer to work on something technically innovative, where the challenge is to make the thing work at all, and where this may prove impossible?

• Would you prefer to work in an organisation which has a certification such as BS5750/ISO9001, or in one which does not?

• Would you prefer to work in the IT division of a larger organisation, satisfying the IT needs of that organisation? Or would you prefer to work for a specialist software company that bids for contracts from outside? Or for one whose business is selling “off the shelf” software?