SV

9-Software project mgmt

Software Project Management

  • Purpose of Project Management:

    • Software development is subject to budget and schedule constraints.
    • Ensures software is delivered on time, within budget, and meets requirements.
  • Success Criteria:

    • Timely delivery of software.
    • Keeping costs under budget.
    • Meeting customer expectations.
    • Maintaining an effective development team.

Distinctions from Classic Project Management

  • Intangible Product: Software isn't visible; progress can't be measured visually.
  • One-off Projects: Software projects often differ significantly from previous ones.
  • Variable Processes: Software processes are unique to organizations, complicating predictions about outcomes.

Factors Influencing Software Project Management

  • Company size
  • Customer expectations
  • Software size and type
  • Organizational culture
  • Development processes

Universal Project Management Activities

  • Project Planning: Responsible for planning, estimating, scheduling, and task assignments.
  • Risk Management: Identifying and mitigating project risks.
  • People Management: Selecting team members and establishing work methods.

Specific Planning Processes

  • Break down the work into manageable parts.
  • Communicate project plans clearly to teams and customers.
  • Update plans regularly based on project progress.

Project Scheduling

  • Organizing work into tasks and determining execution timelines.
  • Estimating resources, dependencies, and staff allocation.

Challenges in Estimation and Scheduling

  • Development difficulties and productivity dynamics.
  • Brooks' Law: Adding people to a late project typically delays it further.

Agile Software Development

  • Iterative development with increments delivered to customers.
  • Flexible planning that accommodates changing customer priorities.
  • Benefits:
    • Involves small, stable teams for effective collaboration.
    • Motivates developers through ownership of tasks.
  • Difficulties:
    • Requires active customer engagement.
    • Challenging for larger, fluctuating teams.

Risk Management

  • Importance: Essential due to inherent uncertainties.
  • **Risks Involved: **
    • Staff turnover, system specifications delays, and changes in requirements.
  • Risk Management Process:
    1. Identify risks.
    2. Analyze likelihood and impact.
    3. Plan risk avoidance and contingency measures.
    4. Monitor risks continuously.

Risk Types**

  • Estimation Risks: Underestimating time or resources needed.
  • Organizational Risks: Changes in management or funding.
  • People Risks: Staff availability or skill shortages.
  • Requirements Risks: Changes leading to rework.
  • Technology Risks: Inability of components to meet performance expectations.

Risk Exposure Calculation

  • Risk exposure is calculated as: RE = Probability imes Cost .
  • Financial implications of software defects and ways to mitigate risks help in prioritizing management efforts.

Strategies to Manage Risks

  • Avoidance: Reducing the probability of risks.
  • Minimization: Reducing impact of risks when they occur.
  • Contingency Plans: Predefined responses when risks manifest.

Risk Monitoring

  • Regular assessment of identified risks.
  • Actively discussing risks and their management in progress meetings.