chapter 10 schedule your schedule. copyright 2004 by pearson education, inc. identifying and...

37
Chapter 10 Schedule Your Schedule

Upload: kelly-stevens

Post on 16-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Chapter 10

Schedule Your Schedule

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks

The schedule from the Software Development Plan (SDP) is the basis for developing a more detailed schedule.

This new schedule should clearly define dependencies between tasks and the task-role assignments for the project.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks

The first few weeks/months of a project must include sufficient time for the up-front tasks facing the team.

The team will expend time in up-front tasks whether they are scheduled or not.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks

After the up-front tasks are identified, the team can review the tasks needed for each milestone defined in the SDP.

The team can suggest changes to the tasks or dates to for those milestones.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks

Achieving the first milestone is critical to team culture, be sure to set your schedule accordingly.

If a milestone is missed, the team needs to understand why and assess the impact on the future of the project.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks - Up-front Tasks Steps to Scheduling Up-front Tasks:

1. List the hardware and software installation tasks, the estimated time needed for each, and the dependencies between each.

2. List the training required for the team, with the estimated time needed for each training activity.

3. Specify time for the team to gain an understanding of the product, customers, and development and deployment environments.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks - Up-front Tasks Steps to Scheduling Up-front Tasks Cont:

3. List the product and process standards the team will need and specify the time needed to develop them.

4. Schedule hardware and software installation, training, project assimilation, and standards, observing all dependencies.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks - Up-front Tasks List Hardware and Software Up-front tasks.

Have team members perform mini-exercises of hardware and software functionality.

These mini-exercises often flush out problems that would be difficult to find and fix with your entire application.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks - Up-front Tasks List the Training Tasks.

Training deserves a high priority.For the team members to get the most from

their training, they need time to prepare (review training documentation and understand the reason for the training).

Follow the training with meaningful tasks to help reinforce the training.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks - Up-front Tasks Allow Time to Understand the Project.

As project manager, you will have a clear vision of the project while your team may not have their vision yet.

Forming a vision takes time. You can help your team by repeatedly describing the user environment, highlighting what the user will need to do, and explaining why the software is important.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks - Up-front Tasks List Process and Product Standards.

If your organization already has a standard process, you will need to customize it to your product. If no standard exists, you will need to create one.

The goal of standards is to establish a consistent format, acceptable and unacceptable content, and commonality across products and process tasks.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks - Up-front Tasks Schedule Up-front Tasks.

Pay special attention to task dependencies, and schedule accordingly.

Note both the logistics (the when and order of the schedule) and implications (things inferred from the schedule) of scheduling.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks – Software Engineering Tasks Steps to Scheduling Software

Engineering Tasks:1. Determine what portions of the requirements

must be specified before design can begin.

2. Determine what portions of the design must be completed before the coding can begin.

3. Determine what portions of coding must be done before testing can begin.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks – Software Engineering Tasks Steps to Scheduling Software Engineering

Tasks Continued:4. Determine what portions of the testing must be

complete before installation or deployment can be tested.

5. Balance overlap against potential rework.

6. Understand dependencies and commitments.

7. Apply forward and backward scheduling as needed to create a schedule.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks – Software Engineering Tasks Determine Requirements Overlap.

As requirements are clarified and specified, design can begin.

Decide when enough of the requirements are specified well enough to make high-level design practical and useful.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks – Software Engineering Tasks Determine Design Overlap.

As the design is engineered, the basic software units, data structure, external interfaces, and the like are defined.

Once this core design is in place, coding can begin on those portions.

Make sure your team knows which parts of the design are considered solid and which will most likely change in time to reduce rework.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks – Software Engineering Tasks Determine Code Overlap.

Coding is usually developed in branches, with each branch being completed before moving on to the next.

These branches, as they are completed, are candidates for early testing.

Other candidates include user interface and core functionality.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks – Software Engineering Tasks Determine Test Overlap.

Various types of testing (unit, integration, system, deployment,…) can overlap one another.

By accelerating testing on critical code, the team can determine critical errors before they become costly to fix.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks – Software Engineering Tasks Balance Overlap against Rework.

Utilizing the overlap in phases does come with some risk.

By beginning an advanced phase before the current phase is complete, you risk having to rework a portion of the project.

Minimize rework by making sure the portion you are working on is stable in the previous phase.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks – Software Engineering Tasks Understand Dependencies and

Commitments.The impact of risk on one task typically places

risk on other tasks.Because dependencies and commitments

exist between people who perform tasks, team members in lead roles should be involved in scheduling tasks assigned to their role.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks – Software Engineering Tasks Apply Forward and Backward Scheduling

as Needed.Forward scheduling requires you to obtain

estimates from project leads for each task needed to reach a milestone.

Avoid scheduling based on best-case scenarios. You will most likely not have the best case.

Copyright 2004 by Pearson Education, Inc.

Identifying And Scheduling Tasks – Software Engineering Tasks Apply Forward and Backward Scheduling

as Needed.Backward Scheduling from a future milestone

back should start with tasks that need to be completed directly before a milestone can be reached.

These tasks usually include testing, debugging, deployment, etc…

Copyright 2004 by Pearson Education, Inc.

Assigning Tasks to Roles

Guidelines for Assigning Tasks to Roles: Solicit input from the team on each task. Consider each team member’s skills and motivation

for a task. Assess and mitigate the risk of each person-task

assignment. Balance task assignments based on desirability and

effort. Present person-task assignments as team decisions. Consider the cultural impact of person-task

assignments.

Copyright 2004 by Pearson Education, Inc.

Assigning Tasks to Roles

Solicit input from the team on each task.Encourage open and honest assessment of

what the task requires and what completing it entails.

Make know just what impact the task has on the project and what skills and effort will be needed to perform it.

Copyright 2004 by Pearson Education, Inc.

Assigning Tasks to Roles

Consider each team member’s skills and motivation for a task. If a person has previous experience with a

task, they should be considered a prime candidate for it.

Don’t underestimate motivation to undertake a task, but at the same time don’t underestimate the learning curve for a task.

Copyright 2004 by Pearson Education, Inc.

Assigning Tasks to Roles

Assess and mitigate the risk of each person-task assignment.For a person new to a task, allow for more

time for training and learning.Providing a mentor who has experience with

the task can also help mitigate the risk.

Copyright 2004 by Pearson Education, Inc.

Assigning Tasks to Roles

Balance task assignment based on desirability and effort.Keep all discussions of task assignments

open and public to avoid the perception of “playing favorites”.

Unfortunately, “you can’t please all the people all the time.”

Copyright 2004 by Pearson Education, Inc.

Assigning Tasks to Roles

Present assignments as team decisions.Assignments should not be project manager

decisions, instead, they should be project (team) decisions.

By presenting assignments as team decisions, you help foster team cohesion.

Copyright 2004 by Pearson Education, Inc.

Assigning Tasks to Roles

Consider the cultural impact of assignments.To avoid cultural problems, make sure the

team understands why each person was assigned each task.

Help each team member understand the importance of their tasks, and how they impact the project.

Copyright 2004 by Pearson Education, Inc.

Create a Backup Plan

Steps for Creating a Backup Plan:1. Review the risks in the Software Development Plan.

2. Determine when and how each risk can be detected.

3. Designate a scout for each risk, to gather information and assess if a risk is a reality.

4. Review the risk impact and determine the team’s action in light of each risk impact.

5. Specify these actions as one or more backup plans.

Copyright 2004 by Pearson Education, Inc.

Create a Backup Plan

Review Project Risks.Remember, the list of risks is dynamic and

needs to be reviewed and updated as the project progresses.

Team members need to assess individual risks as well as project risks.

Team members should communicate with other team members to identify risks not immediately evident.

Copyright 2004 by Pearson Education, Inc.

Create a Backup Plan

Determine When and How Risks Are Detected.The team should brainstorm questions that

would reveal each risk.Record these questions and the answers to

them so you know when and how to clarify the likelihood and impact of risks.

Copyright 2004 by Pearson Education, Inc.

Create a Backup Plan

Designate a Scout.To answer the questions in the previous step,

you can assign a scout to investigate.To be effective, scouts must have knowledge

of what information is needed.Scout assignments may vary depending on

project. One project may have one scout to investigate all risk, another project may have many scouts.

Copyright 2004 by Pearson Education, Inc.

Create a Backup Plan

Review the Risk Impact and Solution.Review the detailed schedule assuming the

worst-case scenario.You and your team should decide what

exactly would need to be done, when, and by which roles to recover from the impact.

Document these responses as a backup plan for that risk.

Copyright 2004 by Pearson Education, Inc.

Create a Backup Plan

Create Backup Plans.The key to assessing risk and creating

backup plans is to make both processes team exercises and give everyone a stake in the backup plan.

This can be accomplished during the launch meeting or the first few project meetings by having the team keep track of risks on a whiteboard while you capture information and create the backup plan.

Copyright 2004 by Pearson Education, Inc.

Chapter Key Points

The Software Development Plan is too abstract. You and the team need to create a more detailed schedule.

If your project is using a staged or cyclic process, your team will need to review and further specify the functionality to be implemented in the next cycle or stage.

The detailed schedule must specify which roles perform which tasks, and when the tasks will begin and end.

Copyright 2004 by Pearson Education, Inc.

Chapter Key Points Continued

Both up-front and software engineering tasks need to be scheduled based on project needs and the input of the team.

Assigning tasks should be done based on both cultural and software engineering factors.

Overlapping task assignments benefits both individuals and the team.

The team needs to review the schedule based on risks and create a backup plan that considers the impact of risks and schedule slippage.