|
|
The processes used for executing a software project clearly have a major effect on
the quality of the software produced and the productivity achieved in the project.
Consequently, a need exists to evaluate processes used in an organization for executing
software projects and to improve them. The Capability Maturity Model (CMM) for software,
developed by the Software Engineering Institute (SEI) is a framework that can be used for
both purposes . The CMM classifies the maturity of the software processes in five
levels-level 1 to level 5, with level 5 being the highest maturity. The three main characteristics of a project are its cost, schedule,
and quality, where "quality" represents how well the product satisfies the
customer. A project is generally initiated when some estimates for these parameters are
established. A project is successful if it meets or exceeds the expectations on all three
fronts-cost, schedule, and quality.
Possible reasons for project failures include improper
estimation, loose requirements management, weak project management, improper risk
management, and poorly engineered solutions, among others. Many of these reasons can be
combined in one category called "process failure." That is, a software project
often fails because the process followed in the project was not suitable. For example, the
major reasons for runaways are unclear objectives, bad planning, new technology, no
project management methodology, and insufficient staff . At least three of these five
reasons can be considered as "process failure". For a project to succeed, a key
success parameter is the set of processes followed in the project. If suitable process
models are chosen for the important tasks in the project, and the chosen processes are
executed properly, then the chances of a project succeeding become extremely high.
As having a high productivity can generally reduce cost and
minimize the schedule for a project, high quality and productivity (Q&P) can be viewed
as the twin aims of a project for delivering a software product. It is not enough that a
project have high Q&P; the organization also seeks a predictable Q&P. Without
predictability, good estimation is not possible, and building reasonable estimates is
essential to any project-oriented business.
Q&P of an organization depends on three factors: process,
people, and technology. As the process has major effect on the Q&P delivered by an
organization, one way to improve Q&P is to improve the processes used by the
organization.
|
|
Maturity Levels in CMM One objective of the CMM is to distinguish
mature process from immature or ad hoc processes. In a software organization that has
immature software processes, projects are executed without many guidelines, and the
outcome of a project depends largely on the capability of the team and the project leader.
Consequently, the result is not predictable.
On the other hand, in an organization with
mature processes, a project is executed by following various processes that the
organization has set up for software projects. In this case, the outcome of the project is
less dependent on the team capability and more controlled by the processes. It follows,
then, that the more mature the processes, the better the control on the projects and more
predictable the results.
In level 1, an organization executes a project in a manner
that the team and project manager see fit. The repeatable level (level 2) applies to an
organization in which project management practices are well established, although
organization-wide processes may not exist. At the defined level (level 3) the software
process for the organization have been precisely defined and regularly followed. With
organization-wide processes, the organization may learn from different projects and
subsequently improve the processes to benefit future projects. At the managed level (level
4), quantitative understanding of the process capability makes it possible to
quantitatively predict and control the process performance on a project. Once the
foundation of quantitative process management exists, then the process capability can be
improved in a controlled manner and the improvement can be evaluated quantitatively. At
the optimizing level (level 5), the process improves continuously.
The company though not formally evaluated for CMM ,is
presently at level 2 with a target to achieve level 3 within a year. In
this front the
companys SEPG team and the company management are driving hard at the introduction
of new processes integral of CMM level 3.Through this effort tangible results are already
visible with the CMM now becoming an organisation wide effort. Some of the continuing
efforts towards this end have been the establishment of an organisation process focus,
training program, Software product engineering ,intergroup coordination and introduction
of peer reviews.
The company has also applied to a NASSCOM initiative on this
front ,namely being an integral part of a cluster of level 3 CMM companies in the Delhi
region. This would entail the clusters being formally audited by an external agency KPMG
and systematic improvements being initiated to achieve the final goal of the company
reaching a level satisfying all the prerequisites of a Level 3 company. |