Software Project Scheduling and Delivery Strategies

Other subjects2.96 KB

Project Timing and Monitoring

Common Causes of Late Software Delivery

Although there are many reasons why software projects are completed late, the most common include:

  • Unrealistic Deadlines: Delivery dates set by individuals outside the software engineering team.
  • Requirement Changes: Customer requirements change without being reflected in the project plan.
  • Underestimation: Insufficient assessment of the effort and resources required.
  • Technical Difficulties: Unforeseen technical challenges.
  • Communication Gaps: Lack of effective communication within the project team.
  • Management Oversight: Failure by project leaders to acknowledge delays or implement corrective measures.

Recommended Mitigation Strategies

Given that software engineering often involves aggressive delivery pressures, we recommend the following steps:

  1. Detailed Estimation: Provide a comprehensive estimate detailing the necessary effort and project duration.
  2. Incremental Development: Use incremental process models to deliver critical functionality by the deadline, deferring non-essential features.
  3. Client Negotiation: Meet with the client to explain unrealistic deadlines and propose an alternative incremental development plan.

Defining Project Timing

Timing is the activity where a manager distributes estimated effort over the expected project duration, allocating effort to specific software engineering tasks.

Basic Principles for Time Planning

The concepts that underpin effective planning include:

  • Division: Splitting the project into manageable activities and tasks.
  • Interdependence: Determining the relationship between activities (sequential vs. parallel).
  • Time Allocation: Assigning effort, start dates, and end dates to each task.
  • Effort Validation: Reviewing resources allocated to an activity over time.
  • Responsibility Allocation: Assigning specific deliverables to project team members.
  • Milestone Definition: Establishing major landmarks throughout the project lifecycle.

Temporary Programming

This involves calculating the time, resources, costs, and personnel involved in development to manage the implementation process effectively.

Defining a Task Network

A task network defines individual tasks and subtasks based on their interdependencies. Because a common project involves several people, activities can often be performed in parallel. This requires strict planning control, as interdependent tasks should not start until the preceding tasks are completed. A task network serves as a graphical representation of the project's workflow.

Download

PDF Word HTML