Post on 31-Dec-2015
transcript
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 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