software project development teams. team organization goal: organize teams so that they are...

15
Software Project Development Teams

Upload: blaze-wood

Post on 18-Jan-2018

214 views

Category:

Documents


0 download

DESCRIPTION

Democratic Team Group works for a common cause with no single leader; each member finds faults in others’ code advantages –positive attitude towards finding faults –especially productive in solving hard problems disadvantages –management has difficulty working with egoless team –senior members may resent review by beginners

TRANSCRIPT

Page 1: Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation

Software Project Development Teams

Page 2: Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation

Team Organization

• Goal: organize teams so that they are productive

• teams can be used in every phase, especially implementation

• two extreme approaches:– democratic team– chief programmer team

Page 3: Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation

Democratic Team

• Group works for a common cause with no single leader; each member finds faults in others’ code

• advantages– positive attitude towards finding faults– especially productive in solving hard problems

• disadvantages– management has difficulty working with egoless team– senior members may resent review by beginners

Page 4: Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation
Page 5: Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation
Page 6: Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation

Chief Programmer Team• Introduced in the 70’s, in the keypunch days• chief programmer

– directs and reviews work of other team members – does design and complex implementations

• backup chief programmer • other programmers

– specialized; work on detailed design and coding• programming secretary (librarian)

– maintains project library (code, test cases, etc.)– compiles, executes and runs test cases

Page 7: Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation
Page 8: Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation

Impracticality of chief programmer approach

• Good chief programmers are hard to find– must be both good programmer and good manager

• Good backup chief programmers are even harder to find

• Nowadays programmers compile, run and test their software at their workstations

• Disadvantage: chief is present at code reviews and also does evaluation of members; doesn’t foster positive attitude toward finding faults

Page 9: Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation

Combined approach (Modern Team)• Team leader

– responsible for technical aspects– attends all code reviews

• team manager– responsible for non-technical aspects (budget,

performance appraisals)– does not attend code reviews, but assesses

performance based on periodic team meetings• can be scaled up for large projects• decentralize decision-making

Page 10: Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation
Page 11: Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation
Page 12: Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation
Page 13: Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation

Synchronize-and-Stabilize Team• Used by Microsoft Corp.• Work is divided into several builds; first build is for

most critical features• Each build carried out by a number of small teams

working in parallel• All teams synchronize daily by putting partially

completed components together, testing, debugging• Stabilize at the end of each build• Advantages:

– ensures components work together– get early insight into operation of the product

Page 14: Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation

Synchronize and Stabilize Team Organization

• Program manager leads each team• 3 to 8 developers per team• 3 to 8 testers work one-on-one with developers• Team is given specifications, team members

design and implement their portion• Must meet at regular times for synchronization• advantages:

– promotes individual creativity– daily synchronization promotes communication and

coordination

Page 15: Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation