39
Team Management in Team Management in Software Engineering Software Engineering Jennifer Weingarten Jennifer Weingarten

People Management in Software Engineering

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: People Management in Software Engineering

Team Management in Team Management in Software EngineeringSoftware Engineering

Jennifer WeingartenJennifer Weingarten

Page 2: People Management in Software Engineering

Overview of PresentationOverview of Presentation

Team SelectionTeam Selection

Team StructureTeam Structure

Team MotivationTeam Motivation

Page 3: People Management in Software Engineering
Page 4: People Management in Software Engineering

Team Selection OverviewTeam Selection Overview

Importance of member selectionImportance of member selection

Characteristics of potential membersCharacteristics of potential members

Measuring member characteristicsMeasuring member characteristics

Page 5: People Management in Software Engineering

Importance of Member Selection: Importance of Member Selection: Case Study Xerox CP6Case Study Xerox CP6

Data gathered over 12 yearsData gathered over 12 years

Same training, tools, and methodology for allSame training, tools, and methodology for all

Productivity measured by bugs fixed in Productivity measured by bugs fixed in softwaresoftware

Top 27% of programmers did 78% of the workTop 27% of programmers did 78% of the work

From “Not all Programmers are Created Equal” by G. Edward Bryan

Page 6: People Management in Software Engineering

What are the Important What are the Important Characteristics of Selecting an Characteristics of Selecting an

Employee?Employee?

Page 7: People Management in Software Engineering

Factors Governing Member Factors Governing Member SelectionSelection

Application Domain KnowledgeApplication Domain Knowledge Platform ExperiencePlatform Experience Programming Language ExperienceProgramming Language Experience EducationEducation CommunicationCommunication AdaptabilityAdaptability AttitudeAttitude PersonalityPersonality

From Software Engineering by Ian Somerville

Page 8: People Management in Software Engineering

Measuring Staff CharacteristicsMeasuring Staff Characteristics

Resources Available to Project ManagersResources Available to Project Managers

InterviewsInterviews ResumeResume RecommendationRecommendation Programming aptitude testsProgramming aptitude tests Psychological TestsPsychological Tests

Page 9: People Management in Software Engineering

ImportanceImportanceCriteriaCriteria When ImportantWhen Important Where indicatedWhere indicated How Easy to How Easy to

TellTell

Application Domain Application Domain KnowledgeKnowledge

Always Always

(I disagree High (I disagree High Requirements Input)Requirements Input)

Resume Resume EasyEasy

Platform ExperiencePlatform Experience Project is Low-levelProject is Low-level Resume Resume EasyEasy

Programming Programming Language ExperienceLanguage Experience

Small Project Length Small Project Length Resume /Tests/ Resume /Tests/ InterviewInterview

EasyEasy

EducationEducation Low Experience Low Experience Resume Resume EasyEasy

CommunicationCommunication Always Important Always Important Interview/ Interview/ Recommendations Recommendations

MediumMedium

AdaptabilityAdaptability Always ImportantAlways Important Interview/ ResumeInterview/ Resume Hard Hard

AttitudeAttitude Always ImportantAlways Important Interview/ Interview/ RecommendationsRecommendations

Hard Hard

PersonalityPersonality Always ImportantAlways Important HardHard

Page 10: People Management in Software Engineering

Picture from www.bongonews.com

Page 11: People Management in Software Engineering

Why Interviews Not EffectiveWhy Interviews Not Effective

Interviewees will say what you want to hearInterviewees will say what you want to hear

Interviewees prepare for questionsInterviewees prepare for questions

Interviewers don’t get good feed back on Interviewers don’t get good feed back on decisionsdecisions

Page 12: People Management in Software Engineering

Interviews and biasInterviews and bias

Different interviewers = different resultsDifferent interviewers = different results Good impression = interviewer talks more /betterGood impression = interviewer talks more /better Previous Candidates affect outcomePrevious Candidates affect outcome bad first impression = less creditbad first impression = less credit Bad is noticed more than goodBad is noticed more than good First impressions are important – decided in first 4 First impressions are important – decided in first 4

minutesminutes

“How to Pick Eagles” by Robert Zawacki

Page 13: People Management in Software Engineering

Ways to improve Interview Ways to improve Interview ObjectivityObjectivity

Use multiple interviewersUse multiple interviewers Ask each candidate the same questionsAsk each candidate the same questions Try to relax candidatesTry to relax candidates

No desk betweenNo desk between Start with interviewees interestsStart with interviewees interests

Page 14: People Management in Software Engineering

Problems with ResumesProblems with Resumes

Entries may be misleadingEntries may be misleading Fail to capture intangiblesFail to capture intangibles

Must be used along with other methodsMust be used along with other methods

Page 15: People Management in Software Engineering

Problems With RecommendationsProblems With Recommendations

People say things to be nicePeople say things to be nice People may be politically motivatedPeople may be politically motivated Checking recommendations takes a lot of timeChecking recommendations takes a lot of time

Only use recommendations for few candidatesOnly use recommendations for few candidates Take recommendations with a grain of saltTake recommendations with a grain of salt

Page 16: People Management in Software Engineering

Problems with TestingProblems with Testing

Test questions often answered in a time Test questions often answered in a time limited mannerlimited manner

Problem solving with large time segments Problem solving with large time segments does not map directly to this type of testingdoes not map directly to this type of testing

Page 17: People Management in Software Engineering

Team StructureTeam Structure

Why team structure is importantWhy team structure is important Types of team structuresTypes of team structures Advantages and disadvantages of team Advantages and disadvantages of team

structuresstructures

Page 18: People Management in Software Engineering

How much of programming How much of programming is teamwork?is teamwork?

Page 19: People Management in Software Engineering

Why Team Structure is ImportantWhy Team Structure is Important

Figure 28.7 from Software Engineering 5th Edition by Ian Sommerville

Page 20: People Management in Software Engineering

General Team StructureGeneral Team Structure

Hierarchal Functional OrganizationHierarchal Functional Organization Vertical OrganizationVertical Organization Matrix OrganizationMatrix Organization

“Organizational alternatives to project managers” by Robert Youker

Page 21: People Management in Software Engineering

Hierarchal Functional OrganizationHierarchal Functional Organization

Standard pyramid with management at the topStandard pyramid with management at the top Strength – lumps similar recourses togetherStrength – lumps similar recourses together Weakness – Weakness –

there can be conflicts for time between projects for there can be conflicts for time between projects for resources resources

Resources do not see big picture Resources do not see big picture

Page 22: People Management in Software Engineering

Vertical OrganizationVertical Organization

Each Project its own organizationEach Project its own organization

Strengths-Strengths- Ability to see the big picture and focus on Ability to see the big picture and focus on

projectsprojects

Weaknesses-Weaknesses- Organization is temporary and causes turmoilOrganization is temporary and causes turmoil Facilities are duplicated Facilities are duplicated

Page 23: People Management in Software Engineering

Matrix OrganizationMatrix Organization

Combines the two structures so there is a Combines the two structures so there is a functional boss and a project coordinatorfunctional boss and a project coordinator

Strengths-Strengths-

Can see big picture and employees have securityCan see big picture and employees have security

Weaknesses-Weaknesses-

Each employee has two bossesEach employee has two bosses

Page 24: People Management in Software Engineering

When to Choose WhatWhen to Choose What

Choose functional structure when there are Choose functional structure when there are many small short term projectsmany small short term projects

Choose project structure for large long-term Choose project structure for large long-term projectsprojects

For a mix of projects of unknown length use For a mix of projects of unknown length use the Matrix Structurethe Matrix Structure

Page 25: People Management in Software Engineering

Programming Team StructureProgramming Team Structure

Egoless ProgrammingEgoless Programming Chief ProgrammingChief Programming

Page 26: People Management in Software Engineering

Egoless ProgrammingEgoless Programming

All programmers on one levelAll programmers on one levelDecisions are made by consensusDecisions are made by consensus

AdvantagesAdvantages Free flow of information between all programmersFree flow of information between all programmers Generally better solutions to hard problemsGenerally better solutions to hard problems

DisadvantagesDisadvantages Communication takes more timeCommunication takes more time Personality conflicts a major issuePersonality conflicts a major issue GroupthinkGroupthink

Page 27: People Management in Software Engineering

Chief ProgrammingChief Programming

The chief guides the project and makes all decisions The chief guides the project and makes all decisions but consults with specialistsbut consults with specialists

Advantages –Advantages – Fewer personality conflictFewer personality conflict Faster decisionsFaster decisions

Disadvantages-Disadvantages- Chief can get overloaded with information and make Chief can get overloaded with information and make

incorrect decisionsincorrect decisions

Page 28: People Management in Software Engineering

When to Choose What?When to Choose What?

Choose Chief programmer when the project isChoose Chief programmer when the project is LargeLarge Has a tight scheduleHas a tight schedule Not many new technical challengesNot many new technical challenges

Choose egoless programmingChoose egoless programming When the schedule is loose When the schedule is loose Groups are smallGroups are small Many technical challengesMany technical challenges

Page 29: People Management in Software Engineering
Page 30: People Management in Software Engineering

Motivation OverviewMotivation Overview

Basics of MotivationBasics of Motivation

Personality and MotivationPersonality and Motivation

A shared visionA shared vision

Page 31: People Management in Software Engineering

Basics of MotivationBasics of Motivation

Most often bottom two Most often bottom two needs are satisfied needs are satisfied

So people motivated So people motivated mostly by social and mostly by social and self esteem needsself esteem needs

Only takes into account Only takes into account individual motivationindividual motivation

Maslow’s model of needs (1954)

Page 32: People Management in Software Engineering

Personality and MotivationPersonality and Motivation

Social needs: Allow time to meet co-workersSocial needs: Allow time to meet co-workers Self esteem needs: Recognize value to the Self esteem needs: Recognize value to the

organizationorganization Self Realization needs: allow people direction Self Realization needs: allow people direction

in choosing their own work, and make the in choosing their own work, and make the work interestingwork interesting

Page 33: People Management in Software Engineering

Three Types of ProfessionalsThree Types of Professionals

Task-OrientedTask-OrientedMotivated by the intellectual challenge of the workMotivated by the intellectual challenge of the work

Self-OrientedSelf-Oriented

Motivated by personnel success and Motivated by personnel success and recognitionrecognition

Interaction-OrientedInteraction-OrientedMotivated by coworkersMotivated by coworkers

Page 34: People Management in Software Engineering

A Shared VisionA Shared Vision

Mckinsey & Company Survey of 43 top Mckinsey & Company Survey of 43 top performing fortune 500 companies found a performing fortune 500 companies found a shared vision common to all of them shared vision common to all of them

Must know goalMust know goal Team understand this goalTeam understand this goal Team must buy in –team verbally or otherwise Team must buy in –team verbally or otherwise

commits to goalcommits to goal

Page 35: People Management in Software Engineering

Case Study: The Soul of a New Case Study: The Soul of a New MachineMachine

During the interview told During the interview told the interviewee about the the interviewee about the project to build a completely project to build a completely new computer system from new computer system from the ground upthe ground up

Warned the recruit that the Warned the recruit that the project is difficult and get project is difficult and get them to say that they want them to say that they want inin

Raise the interviewees self Raise the interviewees self esteemesteem

Said they only let the best in Said they only let the best in – then let them in– then let them in

Communicated the Goal/ Communicated the Goal/ Reason for goal:Reason for goal:

Got Buy inGot Buy in

Added to motivation by Added to motivation by invoking self esteeminvoking self esteem

Page 36: People Management in Software Engineering

Example Vision Phrases and GoalsExample Vision Phrases and Goals

Phrase: “The best coverage of local sports on Phrase: “The best coverage of local sports on CABL”CABL”

Goal: most coverage of sports gamesGoal: most coverage of sports games

Phrase: “Sports are Better on CABL”Phrase: “Sports are Better on CABL”

Goal: technical excellence in broadcastingGoal: technical excellence in broadcasting

Page 37: People Management in Software Engineering

Personal Experience with Shared Personal Experience with Shared VisionVision

Page 38: People Management in Software Engineering

OverviewOverview

Team selectionTeam selection Aspects used to pick team membersAspects used to pick team members Measuring these aspectsMeasuring these aspects

Team StructureTeam Structure Why team structure is importantWhy team structure is important Advantages and disadvantages of different team structuresAdvantages and disadvantages of different team structures

Team MotivationTeam Motivation Why team structure is importantWhy team structure is important Advantages and disadvantages of different team structuresAdvantages and disadvantages of different team structures

Page 39: People Management in Software Engineering

SourcesSources

Bryan, G.E. “Not all Programmers are Created Equal” Bryan, G.E. “Not all Programmers are Created Equal” UCirv-95-PROC-CSS-06UCirv-95-PROC-CSS-06

Zawacki, Robert, “How to Pick Eagles” Zawacki, Robert, “How to Pick Eagles” DATAMATION Magzin, Sept 15, 1985 pp 115-116DATAMATION Magzin, Sept 15, 1985 pp 115-116

Yoker, Robert, “Organizational alternatives for project Yoker, Robert, “Organizational alternatives for project managers” Project Management Quartery, Vol VIII, managers” Project Management Quartery, Vol VIII, No. 1 March 1977No. 1 March 1977

Sommerville, Ian Sommerville, Ian Software Engineering 5Software Engineering 5thth Edition Edition Thayer, Richard Thayer, Richard Software Engineering Project Software Engineering Project

ManagementManagement Curtis, Bill Curtis, Bill Human Factors in Software Development Human Factors in Software Development