Software development process |
A software development process is a process used to develop computer software. It may be an ad hoc process, devised by the team for one project, but the term often refers to a standardised, documented methodology which has been used
before on similar projects or one which is used habitually within an organisation.
Some managers who are held accountable for software development, may seek to find the commonalities in the efforts of their
organizations. If those managers are process-oriented, (rather than people-oriented, task-oriented, profit-oriented,
project-oriented, etc.) then they may seek methodologies or other proxies which can serve as templates for the software
development process.
Of course, it is entirely rational for other managers who are not process-oriented to use a documented software development
process or methodology. In such a case one might say that the methodology is used by them as a "proxy" for the necessary set of
process-oriented skills required in any software
engineering project.
Processes and meta-processes
A growing body of software development organisations implement process methodologies. Many of them are in the defence industry, which in the
U.S. requires a 'Rating' based on 'Process models' to obtain contracts.
The Capability Maturity Model (CMM) grades
organizations on how well they create software accrording to how they define and execute their processes. ISO 9000 describes standards for formally organizing processes with documentation.
ISO 15504 or SPICE, The software process life cycle is also gaining wide usage.
This standard is aimed at setting out a clear model for process comparison. SPICE is used much like CMM and CMMI. It models
processes to manage, control, guide and monitor software development. This model is then used to measure what a development
organization or project team actually does during software development. This information is analyzed to identify weaknesses and
drive improvement. It also identifies strengths that can be continued or integrated into common practice for that organization or
team.
Six Sigma is a project management methodology that uses data and statistical analysis to
measure and improve a company's operational performance. It works by identifying and eliminating "defects" in manufacturing and service-related processes. The maximum permissible defects are 3.4 per million
opportunities. However Six Sigma is manufacturing-oriented, not software development-oriented and needs further research to even
apply to software development.
Agile Methods, such as Extreme programming and Lean software
development are full blown methods that take an incremental or evolutionary approach
to software development.
Lists
Some software development methods:
Some paradigms for programming software:
There are also a variety of kinds of software
documentation.
See also
|