organizing a Software Engineering Project

advertisement
Software Project Organization
Introduction:
Organizing a Software Engineering project involves developing an
effective and efficient organizational structure for assigning and
completing project tasks and establishing the authority and
responsibility relationships among the tasks.
Organizing involves:
- Itemizing project activities required to achieve project objectives.
- Arranging project activities into logical clusters.
- Assigning groups of activities to various organizational entities.
- Delegating responsibility and authority needed to carry out the activities.
Major Issues in organizing:
The major issues in organizing a software engineering project are
as follows:
-
It is difficult to determine the best organizational structure for
a particular organization and/or environment (for example,
project, functional, matrix) to manage the project.
-
An organizational structure may leave responsibilities for
some project activities and tasks undefined or unclear.
-
A matrix organizational structure is not accepted by many
software development personnel.
-
Many team leaders are expected to perform technically as
well as manage his/her team.
1
Organizing Activities for a Software Project:
Activity
Identify and group project
functions, activities, and
tasks
Select organizational
structures
Create organizational
positions
Define responsibilities and
authority
Establish Position
Qualifications
Document organizational
decisions
Definition or Explanation
Define, size, and categorize the project work.
See Table 1 for example.
Select appropriate structures to accomplish
the project and to monitor, control,
communicate, and coordinate.
Establish title, job descriptions, and job
relationships for each project role.
Define responsibilities for each
organizational position and the authority to
be granted for fulfillment of those
responsibilities.
Define qualifications for persons to fill each
position.
Document titles, positions, job, descriptions,
responsibilities, authorities, decisions,
relationships, and position qualifications.
Project Organization Structures:
There are three main types of organizational structures:
1.
Functional Project Organization:
-
The project is organized into a number of functional groups,
each group accomplishes its responsibilities and passes the
project to the next group to complete other functional activities
of the project. (Figure 1)
Project management is distributed among functional groups
managers.
2
Figure 1.
2.
Project Organization:
-
The project manager creates a project group
accomplishing all activities of a given project (Figure 2).
Project manager has total authority over project.
for
Figure 2.
3
3.
-
Matrix Project Organization (the two boss system):
A combination between the project and functional project
organizations. (Figure 3)
The project manager has the responsibility for managing and
completing the project.
The functional managers provide the resources (employees)
needed to conduct the project.
Not a widely acceptable form of project organization.
Project authority must be clearly defined by upper
management.
Figure 3.
Software Project Teams:
There are three main types of software project teams:
1.
The Egoless Programming Team (the democratic team):
-
Consists of 10 to 12 members
4
-
2.
Decisions are made by consensus
Group leadership responsibility rotates
No permanent central authority
Rarely found today, however, sometimes used in research
organizations.
The Chief Programming Team:
-
Consists of 3 or 4 permanent team members: chief
programmer, backup programmer, and librarian.
Other programmers or analysts are assigned as needed.
Chief programmer makes all technical and managerial
decisions.
Rarely used today, because of difficulty in recruiting and
training chief programmers.
3.
-
The Hierarchical Team (the controlled decentralized team,
and project team):
Has a top-down flow of authority
Project leaders manage senior engineers
programmers).
Senior engineers manage junior engineers (junior
programmers).
Most commonly used team structure today.
(senior
5
Table 1
6
Download