Why is software project management important?
1 in 3 projects fail to meet expectations
Why is Software Project Management Difficult?
-Complexity Methodologies Uniqueness / Customization Change Criticality Size Reuse
Must induce the right people at the right time to address the right issues and make the right decisions
Systems Development Lifecycles
Waterfall V-Shaped Prototype RAD Incremental Spiral Agile
Waterfall
Strengths -Well known -Ordered approach for handling complexity -Milestones Weaknesses -Linearity – hard to go back -Lack of user involvement -Excessive documentation
V-Shaped
Strengths -Emphasizes verification and validation of all deliverables Weaknesses -Does not handle iterations -Hard to handle changes in requirements
Prototyping
Strengths -End user can see the system requirements -End user provides feedback -Helps avoid miscommunication Weaknesses -System performance may suffer -May continue indefinitely -Poor documentation
Rapid Application Development
Strengths -Reduced cycle time – 60 days or less -Increased customer involvement and feedback -Reuse Weaknesses -Requires high skill-level -System must be modular -Cost and completion date are not known up-front
Incremental/Iterative
Strengths -Operational product delivered with each increment -Divide and conquer -User feedback and involvement Weaknesses -Requires good planning and design -Need well defined interfaces -Tendency to push hard problems until the end
Spiral Model
Strengths -Identifies risks early -Users feedback and involvement -High risk functions implemented first Weaknesses -Expensive for low risk projects -Risk assessment expertise required -May continue indefinitely
The Agile Model
Agile software development emphasizes agility and the ability to adapt to changing conditions
-Characterized by limited up-front planning and frequent product deliverables
Strengths -Adaptability -User involvement and feedback -Collaboration Weaknesses -May not be suited for large development teams -Limited documentation