info 637lecture #21 software engineering process ii tsp roles and overview info 637 glenn booker

56
INFO 637 Lecture #2 1 Software Engineering Process II TSP Roles and Overview INFO 637 Glenn Booker

Upload: job-simmons

Post on 31-Dec-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

INFO 637 Lecture #2 1

Software Engineering Process IITSP Roles and Overview

INFO 637

Glenn Booker

INFO 637 Lecture #2 2

TSP Roles

The PSP had you doing pretty much everything yourself – a veritable jack (or jill) of all trades

The TSP breaks roles down so that each leadership function can be more specialized

While each role represents about one person for class, in reality some roles may need more than one person to fulfill them

INFO 637 Lecture #2 3

TSP Roles

The leadership roles are: Team Leader Development Manager Planning Manager Quality and Process Manager Support Manager

INFO 637 Lecture #2 4

TSP Roles

When choosing roles within your project, consider What roles have you done before? What roles interest you? What roles do you think you can do?

Consider the possibility of stretching your skills – try a role which is unlike any you’ve done before!

INFO 637 Lecture #2 5

Development Engineer

In addition to one of the previous roles, everyone is also a Development Engineer This is a really important point!

Hence you will be producing your own products (code, documents, etc.) and fulfilling one of the leadership roles on slide #3

INFO 637 Lecture #2 6

Development Engineer Activities

This means that during your project, you need to: Record your time in the time recording

log (LOGT) Enter the week number when each task

is completed Update TASK and SCHEDULE templates Record all defects for your products in your

defect recording log (LOGD)

INFO 637 Lecture #2 7

Development Engineer Activities

Enter the size of each product or component Submit updated copies of completed TASK,

SCHEDULE, and WEEK forms to the planning manager and the instructor at the start of each week

When you complete a system or component task, update the SUMP and SUMQ forms and give copies to the quality/process manager and the instructor

INFO 637 Lecture #2 8

Development Engineer Activities

Report all changes in configuration-controlled components to the support manager

Report issues to be tracked to the support manager for the issue tracking log (ITL)

Above all, examine your data and use it to help you produce quality work!

INFO 637 Lecture #2 9

Team Leader Goals

The team leader is the equivalent of the project manager for the team

Goals of the team leader include: Be a cooperative and effective team member Build and maintain an effective team Motivate all team members to work

aggressively on the project

INFO 637 Lecture #2 10

Team Leader Goals

Resolve all the issues team members bring to you

Keep the instructor fully informed about the team’s progress

Perform effectively as the team’s meeting facilitator

INFO 637 Lecture #2 11

Team Leader Skills Needed

You enjoy acting as the leaderYou are able to identify key issues and

make objective decisionsYou can take unpopular positions and can

push people to do difficult tasksYou respect the people you are leading

INFO 637 Lecture #2 12

Team Leader Activities

Motivate the team to perform their tasksRun the weekly team meetingReport weekly statusHelp the team to allocate tasksAct as a facilitator and timekeeper for

team meetingsMaintain the project notebook

INFO 637 Lecture #2 13

Team Leader Activities

Lead the team in producing the development cycle report

Act as a development engineer

INFO 637 Lecture #2 14

Development Manager Goals

The development manager is the leader for creating the product itself – sort of the software architect

Their goals are: Be a cooperative and effective team member Produce a superior product Fully utilize the team members’ skills

and abilities

INFO 637 Lecture #2 15

Development Manager Skills

You like to build thingsYou want to be (or are!) a software

engineer and want to lead design and development for a product

You are a competent designer You are familiar with design methods

You are will to listen to and use others’ ideas

INFO 637 Lecture #2 16

Development Manager Activities

Lead producing the development strategyLead producing the preliminary size and

time estimates for the productsLead development of the software

requirements specificationLead producing the high level designLead producing the software

design specifications

INFO 637 Lecture #2 17

Development Manager Activities

Lead implementing the productLead developing the test plansLead developing the test materials and

running the testsLead producing the product

user’s documentation

INFO 637 Lecture #2 18

Development Manager Activities

Participate in producing the development cycle report

Act as a development engineer

INFO 637 Lecture #2 19

Planning Manager Goals

The planning manager is responsible for managing the plan for your project

Their goals are: Be a cooperative and effective team member Produce a complete plan for the team, and for

each team member Accurately report team status every week

INFO 637 Lecture #2 20

Planning Manager Skills

You have a logical and orderly mindYou tend to plan your work when you canYou like process data, and feel better if

you know if you’re on scheduleYou think planning is important, and can

help your teammates track and measure their work

INFO 637 Lecture #2 21

Planning Manager Activities

Lead producing the task plan for each development cycle

Lead producing the schedule for each development cycle

Lead producing the balanced team development plan

Track the team’s progress against the plan

INFO 637 Lecture #2 22

Planning Manager Activities

Participate in producing the development cycle report

Act as a development engineer

INFO 637 Lecture #2 23

Process and Quality Manager Goals

This role is to ensure the TSP process is being followed, and to verify the quality of your team’s products

Their goals are: Be a cooperative and effective team member Ensure team members correctly report and use

TSP process data

INFO 637 Lecture #2 24

Process and Quality Manager Goals

Ensure team follows the TSP quality plan and produces a quality product

Ensure team inspections are properly moderated and reported

Ensure team meetings are accurately reported, and reports are put in the team notebook

INFO 637 Lecture #2 25

Process and Quality Manager Skills

You are concerned about software qualityYou are interested in process and

product measurementsYou are aware of inspection and

review methodsYou can give constructive reviews

INFO 637 Lecture #2 26

Process and Quality Manager ActivitiesLead producing and tracking the

quality planAlert team leader and instructor if

there are quality problemsLead defining and documenting

team processes and conducting process improvement

INFO 637 Lecture #2 27

Process and Quality Manager ActivitiesEstablish and maintain the team’s

development standardsReview and approve all products before

their submission to the Configuration Control Board (CCB)

Act as the team’s inspection moderatorAct as a recorder in all team meetings

INFO 637 Lecture #2 28

Process and Quality Manager ActivitiesParticipate in producing the development

cycle reportAct as a development engineer

INFO 637 Lecture #2 29

Support Manager Goals

The support manager is focused mostly on configuration management and risk management

Their goals are: Be a cooperative and effective team member Ensure the team has tools and methods needed

to support their work

INFO 637 Lecture #2 30

Support Manager Goals

Ensure only authorized changes are made to baselined products

Ensure team’s risks and issues are recorded in the issue-tracking system, and reported each week

Ensure team meets its reuse goals during the development cycle

INFO 637 Lecture #2 31

Support Manager Skills

Lead determining support needs and obtaining needed tools and facilities

Chair the CCB and manage the change control system

Manage the configuration management system

Maintain the system glossary

INFO 637 Lecture #2 32

Support Manager Skills

Maintain team’s issue- and risk-tracking system

Act as team’s reuse advocateParticipate in producing the development

cycle reportAct as a development engineer

INFO 637 Lecture #2 33

Common Features

Notice that every role has the common goal of: Be a cooperative and effective team member

All roles have the activity, as mentioned previously, of: Act as a development engineer

INFO 637 Lecture #2 34

Common Features

And most roles also have the activity Participate in producing the development

cycle report

So the challenge of teamwork is to balance shared tasks with role-specific ones, and still produce a viable product along the way!

INFO 637 Lecture #2 35

Team Size Considerations

As noted on page xiv of the Preface: If your team has four people, the support

manager activities get divided among everyone If your team has five people, each person gets

one leading role If your team has six people, the quality and

process manager role is split in two; quality manager and process manager

INFO 637 Lecture #2 36

TSP Overview

INFO 637 Lecture #2 37

Iterative Approach

The TSP is based on an iterative approach, where cycles are used to develop major parts of the product incrementally

We’ll follow the first cycle only, and then see how things would follow for subsequent cycles

INFO 637 Lecture #2 38

TSP Overview

The Team Software Process has eight steps or phases Launch Development Strategy Development Plan Define Requirements Design Implementation

INFO 637 Lecture #2 39

TSP Overview

Integration and System Testing Postmortem

We’ll skim the first seven of these this week, before working through one cycle

At the end of the course, we’ll do the postmortem and address miscellaneous teamwork issues

INFO 637 Lecture #2 40

Launching a Team Project

The use of a formal launch step helps ensure roles are clearly assigned, and allows conscious team building to take place

Script for this step includes: Understand your product’s objectives Develop team and individual goals Conduct an initial team meeting to establish

roles and initial due dates

INFO 637 Lecture #2 41

Development Strategy

This is the earliest planning stage in the TSP, where a conceptual plan, development strategy, and estimates are developed

Risk assessment is also done, and the configuration management plan is drafted

These tasks are needed to obtain commitment to the project before further investigation is done

INFO 637 Lecture #2 42

Development Strategy

Script includes: Define the strategy criteria; what product,

process, and quality criteria can be defined, in spite of minimal product knowledge?

Produce the conceptual design; outline what the product will be like

Select development strategy; when will different kinds of functions be created?

INFO 637 Lecture #2 43

Development Strategy

Produce preliminary size and time estimates Identify and evaluate risks Produce configuration management (CM) plan

INFO 637 Lecture #2 44

Development Plan

This is a project management plan, to help make sure the right steps are done in the right order

We need to define, in detail, what will be done and who’ll do it

Need to balance workload so people are well utilized

INFO 637 Lecture #2 45

Development Plan

Tasks include: Start with size estimates Produce task plan Produce schedule plan Produce the quality plan Produce engineer plans for each person Balance the workload for the sake of fairness

and efficiency

INFO 637 Lecture #2 46

Define Requirements

This is definition of the software requirements specification (SRS)

Defines what the product will be able to do, and how well it will be able to do it (speed, reliability, etc.)

Key objective is to ensure that your product will meet the customer’s needs

INFO 637 Lecture #2 47

Define Requirements

Clear requirements also form the basis for the change control system, which manages changes in the requirements

Steps include: Clarifying the product needs Define and document requirements Develop system test plan, to prove

requirements were met

INFO 637 Lecture #2 48

Define Requirements

Do formal verification of requirements and test plan

Verify requirements with customer

INFO 637 Lecture #2 49

Design

The TSP is not limited to any particular design methodology (object oriented, information engineering, etc.)

Hence each team needs to choose the design method for their project

Design elaborates on the conceptual design

This step is only high level design

INFO 637 Lecture #2 50

Design

Design is usually based on breaking a system down into components

Then the requirements for each component are determined

Keep breaking down components until they are small enough to be easily understood, and created by one person

INFO 637 Lecture #2 51

Design

Steps include: Develop high level design Apply design standards Document design Allocate design tasks to team members Create integration test plan Inspect design and integration test documents

INFO 637 Lecture #2 52

Implementation

Implementation is the coding step (which may have been called the Construction phase in other classes)

Detailed designs figure out how each component can best be implemented

Then using the designs as blueprints, the product is created, and unit tested

INFO 637 Lecture #2 53

Implementation

Steps include: Define and allocate implementation tasks Prepare detailed designs Write unit test plan and test cases Write the code Conduct unit tests Review results Release component when passes review

INFO 637 Lecture #2 54

Integration and System Testing

Now that components have been created and unit tested, we can assemble them and do integration and system testing

Recall that test plans were drafted in the requirements and design stages

Here we’ll review test strategies, and address quality measures

INFO 637 Lecture #2 55

Integration and System Testing

Steps include: Define and allocate test activities Build the system Integrate the system, and do integration testing Conduct system testing Document test results

INFO 637 Lecture #2 56

Summary

After system testing is passed, a postmortem meeting is held to: Document the cycle, Look for process improvement opportunities, Evaluate our team, and Revise our plans for the next cycle

That’s the TSP in a nutshell (apologies to O’Reilly)