Team Organization Flashcards
(15 cards)
Definition of a Team
A team consists of two or more people working together towards a common goal with task dependencies
Good teams: Greater than the sum of their parts
Bad teams: Less effective than their weakest member.
Most significant software projects require teamwork.
Team Size & Structure
Small teams (<=10 members): More informal; leadership emerges naturally. Tasks allocated by skill. Decisions made by consensus.
Large teams (>10 members):
Require formal leadership.
More communication overhead.
Harder to manage & coordinate.
Effective Teams
To be effective, a team needs: Clear goals and direction. Good communication, Commitment, Defined individual roles, Mutual respect.
Effective Team Managers Must Ensure:
Realism: Set achievable deadlines.
Consistency: Everyone feels valued.
Respect: Acknowledge strengths & weaknesses.
Inclusion: Encourage participation from all members
Honesty: Be transparent about progress & challenges.
Ineffective Teams - Causes of Failure
Bad leadership
Lack of cooperation or compromise
Poor participation & procrastination
Missed deadlines & failed deliverables
Poor management = biggest cause of project failure.
Types of Team Organization
Task-Oriented Teams (Formal Role-based):
Team Leader: Guides the team.
Development Manager: Manages coding tasks.
Planning manager: Organizes schedule.
Quality Manager: Ensures best practices.
Talent-Oriented Teams (Skill-Based):
Chief Programmer (surgeon): Core decision-maker.
Co-Pilot: Assists main developer.
Tester: Ensures quality
Administrator: Handles documentation/logistics
Team Communication
Vital for success: Larger teams need structured communication
Formula for total messages: n*(n-1) messages
Larger teams struggle with communication overhead.
Solution: Use partial communication with managers as intermediaries.
Common Issues in Communication
Personality clashes
Poor workspace organization
Dominance by senior members
Team Cohesiveness
Cohesive teams perform better.
Members understand each other’s work
Code ownership is shared
Team goals align with individual goals
Potential Issues:
Democracy over leadership - can slow decision making.
Resistance to leadership changes.
Improve Cohesion:
Encourage team bonding (social events).
Take ownership of the project.
Recruiting & Staffing
Sometimes, you won’t have a choice in hiring.
High-demand skills cost more (e.g., DBAs, GUI, designers).
Best person = not always the most skilled.
Team Motivation
Understanding human needs improves performance:
Social Needs -> Provide spaces for discussion.
Esteem Needs -> Recognize contributions.
Self-Realization -> Assign meaningful tasks.
Mental Stimulation -> Avoid monotonous work.
Basic needs -> Ensure team members rest & recharge.
Key Skills to Consider in a Candidate
Domain knowledge
Programming & problem-solving ability
Communication skills
Adaptability & attitude
Negative Productivity
Top 5% of programmers are 10x more productive than average.
Worst programmers have negative productivity (slow down the team)
Pre-Hire knowledge building
Cvs - Fact-based, but limited.
Interviews - Reveal personality & fit
Recommendations - Often unreliable
Tests - Programming challenges, psychometric profiling, aptitude tests.
Easier to identify bad hires than great ones
Key Exam Takeaways
Small teams = better agility & communication
Cohesion & communication are key to success.
Leadership doesn’t = management - both are necessary.
Hiring the right fit is more important than hiring the most skilled.
Bad management = #1 reason for project failure.