Egoless programming

In the early days of computer development, managers tended to think of the G.M.Weinberg, The programmer as communing mysteriously w ith the machine. The tendency was for Psychology of Computer programmers to see programs as being an extension of themselves and to feel Programming, Van over-protective towards them. The effects of this on the maintainability of Nostrand Reibold. 1971.

programs can be imagined. Gerald Weinberg made the then revolutionary'

suggestion that programmers and programming team leaders should read other people's programs. Programs w ould become in effect the common property of the programming group and programming would become 'egoless'. Peer code reviews are based on this idea. Weinberg's ideal programming team was a decentralized group freely communicating within itself.

Chief programmer teams

The larger the decentralized group, the slower it w ill get. because of the increased communication. On really large time-critical projects, a more formalized centralized structure is essential. Brooks pointed out the need for design consistency when producing a large complex system and how this might be difficult when there are a large number of people involved in producing a piece of software. One suggestion was to try to reduce the number of people actually creating software but to make these programmers as productive as possible by giving them as much support as possible.

The result of this train of thought was the chief programmer team. The chief programmer is the person who defines the specification, and designs, codes, tests and documents the software. There is also a copilot, with whom the chief programmer can discuss problems and who writes some code. They are supported by an editor to write up the documentation drafted by the chief programmer, a

Brooks' Mythical Man Month has already been referred to. He was in charge of the huge team that created the operating system for the IBM 360 range.

program clerk to maintain the actual code, and a tester. The general idea is that this team is under the control of a single unifying intellect.

The chief programmer concept was used on the influential New York limes data bank project, where many aspects of structured programming were tried out. In this case, each chief programmer managed a senior level programmer and a program librarian. Additional members could be added to the team on a temporary basis to deal with particular problems or tasks.

The problem with this kind of organization is getting hold of really outstanding programmers to carry out the chief programmer role. There are also the dangers of information overload on the chief programmer, and of staff dissatisfaction among those who are there simply to minister to the needs of the superstar chief programmers.

Controlled decentralized groups

This compromise structure has been suggested and seems to follow common industry practice. A project team is made of groups under the leadership of senior programmers. Within these groups there is free communication and a practice of reviewing each others' work. Communication with other groups is at senior programmer level, while a project leader has overall authority.

Was this article helpful?

0 0
Project Management Made Easy

Project Management Made Easy

What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.

Get My Free Ebook


Post a comment