Software Project Management Brochure Template Page 12

ADVERTISEMENT

12
Handbook on Software Engineering & Knowledge Engineering
There are efforts devoted to the institutionalization of repeatable common
practices in software development organizations. Software Engineering
Institute’s Capability Maturity Model (CMM) [36], [45] is the most widely
known among such efforts. CMM provides a reference for determining the
maturity level of an organization's software processes and deals with the
establishment of management structures that are to facilitate the development of
the required professional culture. According to CMM, an organization can be at
any one of five predefined maturity levels, in terms of its commitment to
systematically perform the specific set of key practices that have been defined
for a given level. At Level 1, the organization is typically chaotic and
unmanaged, does not practice any uniform approach to the process of software
development, budgets are always overrun, the products are unstable, and never
meet the user’s expectations. At Level 2, processes in the organization are
controlled and maintained in detail, hence are repeatable. At Level 3, the
organization contains a coherent, integrated set of well-defined software
engineering and management processes, characterized by readiness criteria,
completion criteria, inputs, outputs, and verification mechanisms. At Level 4, the
organization formulates and strictly applies explicit assessment and feedback
mechanisms, and uses them to measure efficiency and effectiveness in software
development. Finally, the highest point in evolution is Level 5, at which the
organization is capable of using the outcome data from its own processes for
further self-improvement.
Some of the practices an organization may follow when establishing its
professional discipline and culture are the following ([1], [3], [4], [12], [27],
[20], [21], and [49]):
flexible rotation of key roles and tasks (e.g., system design, integration,
testing, code inspection) in the project team;
maintaining a catalogue that specifies all key roles and responsibilities;
the role of the project leader(s) is focused mostly on project management
and system design, and much less on coding and testing;
the project leader should have a small board of project advisors who set
the project goals, prepare status reports on intermediate stages of
development, care about resource management, monitor the project
dynamics and stability, and suggest how to better staff the project;
decision making should be based on consensus among the team members
whenever possible; failing to allow for that may cause lacking of the
sense of contribution to the project ultimate goal among those team
members whose voice is ``never heard";
project manager's awareness of the ``staffing profile" corresponding to the
development process being applied is very important; for example, in
object-oriented development processes it is necessary to have a chief
architect throughout the development project; however, the number and
efforts of system analysts and application engineers necessary to complete

ADVERTISEMENT

00 votes

Related Articles

Related forms

Related Categories

Parent category: Business