Content deleted Content added
m →Software development process: positive risk |
No edit summary |
||
Line 1:
'''Software project management''' is the art and science of planning and leading software projects<ref name="Stellman05">{{cite book | last=Stellman | first=Andrew | last2=Greene | first2=Jennifer | title=Applied Software Project Management | url=http://www.stellman-greene.com/aspm/ | publisher=O'Reilly Media | year=2005 | isbn=978-0-596-00948-9 }}</ref>. It is a sub-discipline of [[project management]] in which [[software]] projects are planned, monitored and controlled.
==History==
The history of software project management is closely related to the history of software. Software was developed for dedicated purposes for dedicated machines until the concept of [[Object-oriented programming]] began to become popular in the 1960's, making ''repeatable solutions'' possible for the software industry. Dedicated systems could be adapted to other uses thanks to [[Component-based software engineering]]. Companies quickly understood the relative ease of use that software programming had over hardware circuitry, and the software industry grew very quickly in the 1970's and 1980's. To manage new development efforts, companies applied proven project management methods, but project schedules slipped during test runs, especially when confusion occurred in the gray zone between the user specifications and the delivered software. To be able to avoid these problems, software project management methods focussed on matching user requirements to delivered products, in a method known now as the [[Waterfall model]]. Since then, analysis of software project management failures has shown that the following are the most common causes:<ref>[http://spectrum.ieee.org/computing/software/why-software-fails/5 IEEE] magazine article "Why Software Fails"</ref>
# Unrealistic or unarticulated project goals
# Inaccurate estimates of needed resources
# Badly defined system requirements
# Poor reporting of the project's status
# Unmanaged risks
# Poor communication among customers, developers, and users
# Use of immature technology
# Inability to handle the project's complexity
# Sloppy development practices
# Poor project management
# Stakeholder politics
# Commercial pressures
The first three items in the list above show the difficulties articulating the needs of the client in such a way that proper resources can deliver the proper project goals. Specific software project management tools are useful and often necessary, but the true art in software project management is applying the correct method and then using tools to support the method. Without a method, tools are worthless. Since the 1960's, several proprietary software project management methods have been developed by software manufacturers for their own use, while computer consulting firms have also developed similar methods for their clients. Today software project management methods are still evolving, but the current trend leads away from the waterfall model to a more cyclic project delivery model that imitates a [[Software release life cycle]].
==Software development process==
A [[software development process]] is concerned primarily with the production aspect of [[software development]], as opposed to the technical aspect, such as [[software tools]]. These processes exist primarily for supporting the management of software development, and are generally skewed toward addressing business concerns. Many software development processes can be run in a similar way to general project management processes. Examples are:
|