Project Lifecycle

In software engineering, a project lifecycle models how a project is planned, controlled and monitored from its inception to its completion. In the earliest stages, and in the last stages, of the lifecycle, software architecture, requirements, and system definition is an issue:
  1. What is the market for the system/software?
  2. What is the competition?
  3. What is the platform of the system/software?
  4. How much time is available to the project?
  5. How many skill-sets are needed?
Over the years, a number of different models have been developed, beginning with the oldest and simplest being the Waterfall Model. However, as software has become larger and more complex, this method of development has been found to be counter productive, especially when large teams are involved. Models that are iterative have evolved including Prototyping, Evolutionary Prototyping, Incremental Development, spiral model, V model, and Chaos model. The use of these models was for the most part confined to the overall management of the project, however projects are now considered better controlled if the model best suited to them controls the individual aspects of the project. For example, a project may be managed using the Incremental Development model, but during each increment the Documentation is created managed using the Waterfall Model and the Code development managed using the 'V' model. The level of formality and complexity of the lifecycle for each project is constrained by any number of factors, including budgetary constraints, experience and size and complexity of the project and development team. Some experienced and highly respected project leaders and programmers consider rigid application of lifecycle plans to be a theory that does not work well in practice. Linus Torvalds, the very highly regarded project leader of the Linux kernel, made the following statement on the Linux kernel mailing list:
No major software project that has been successful in a general marketplace (as opposed to niches) has ever gone through those nice lifecycles they tell you about in CompSci classes.
Source: Google Groups archive of fa.linux.kernel discussion
ISO 12207 is a standard that was developed to describe the method of selecting, implementing and monitoring a lifecycle for a project.

See also

 

<< PreviousWord BrowserNext >>
pablo neruda
pinconning cheese
prophet
pleading
personal communications service
pcs
puck
personal attack
portia
priesthood
proto language
proto indo european
peter roget
playstation 2
pterodactylus
pterosaur
pteranodon
primitive recursive function
pisistratus
prime minister of japan
protein targeting
parthia
pinochle
peptidoglycan
pde
pope sixtus iv
panama canal
potato chips
political media
prohibition
phenothiazine
pale fire
preservative
proteobacteria
professional wrestling
plasma physics
pauli matrices
pie menu
pollution
pole weapon
personal jurisdiction
pell's equation
telephone card
cd i