- Software project scheduling is an action that distributes estimated effort across the planned project duration by allocating the effort to specific software engineering tasks.
- It is important to note, however, that the schedule evolves over time.
- During early stages of project planning, a macroscopic schedule developed.
- This type of schedule identifies all major process framework activities and the product functions to which they applied.
- The product and process must decompose into a manageable number of activities and tasks
- Tasks that can be completed in parallel must separate from those that must be completed serially
- Every task has start and completion dates that take the task interdependencies into account
- Project manager must ensure that on any given day there enough staff members assigned to completed the tasks within the time estimated in the project plan
- Every scheduled task needs to assigned to a specific team member
- Also, Every task in the schedule needs to have a defined outcome (usually a work product or deliverable)
- A milestone accomplished when one or more work products from an engineering task have passed quality review
Scheduling of a software project does not differ greatly from scheduling of any multitask engineering effort.
Therefore, generalized project scheduling tools and techniques can apply with little modification for software projects.
Moreover, Program evaluation and review technique (PERT) and the critical path method (CPM) are two project scheduling methods that can apply to software development.
Both techniques are driven by information already developed in earlier project planning activities: estimates of effort, a decomposition of the product function, the selection of the appropriate process model and task set, and decomposition of the tasks that selected.
Both PERT and CPM provide quantitative tools that allow you to
- Determine the critical path—the chain of tasks that determines the duration of the project
- Also, Establish “most likely” time estimates for individual tasks by applying statistical models
- Moreover, Calculate “boundary times” that define a time “window” for a particular task.