ICS 125: Practical Teamwork
 What is a good team?
 
 
  - A good team
   
    - Accomplishs stated goals (e.g., ships the product)
 
    - Builds/maintains valuable professional relationships in and out of the team
 
    - Enjoys working together, learns from each other, trusts each other
 
    - Has complementary strengths to cover all needed areas
 
   
   
  - A good team member
   
    - Knows his/herself: strengths, weaknesses, professional philosophy
 
    - Truely wants the team to succeed
 
    - Follow the golden rule to proactively shape your team experience
 
    - Is professionally courteous, respectful, and cooperative
 
    - Cooperative can include being available when needed, and being flexible
 
    - Understands how his/her goals fit the team goals
 
    - Understands his/her role: what he/she needs to do, and why
 
    - Knows what others are doing, and why
 
    - Is honest and forthcoming with teammates
 
   
   
 
  
 Common teamwork breakdowns to avoid
 
 
  - Someone flakes out and lets the team down
   
    - Be honest about your availability up front during planning
 
    - Make sure that you understand what you have to do, don't get overwhelmed
 
    - Make responsibilities and progress visible to everyone
 
   
   
  - One person does all the work
   
    - Make sure they realize that the project is too big for one person, others need to be kept in the loop so that they can do their parts
 
    - That person should not be "stealing" other people's tasks
 
   
   
  - The whole team is clueless about some aspect
   
    - Assign someone to master that aspect / mitigate that risk
 
    - Work together in a study group to all learn
 
   
   
  - Team procrastination, or unwanted job
   
    - Make a plan and stick to it, you have no choice
 
    - A little friendly competition for motivation
 
    - Every person does their share of chores, that's part of being professional
 
   
   
  - Hard to schedule team meetings 
   
    - Use more email and issue tracking
 
    - Meet during discussion section time slot
 
   
   
  - Big misunderstandings
   
    - Slow down and make sure everyone agrees on the basics
 
    - Listen and repeat
 
    - Write things down as tasks or documents
 
    - Don't just meet and then work separately, try some pair programming
 
    - Design and code review meetings
 
   
   
  - Long critical path
   
    - Consider parallel teamwork when you plan and design the system
 
    - Realize when others are waiting for you, don't block their work
 
    - Keep things simple so that other team members dont face a huge learning curve
 
   
   
 
  
 How to improve teamwork
 
 
  - Practice, experience, thoughfulness, personal reflection
 
  - Use tools that help keep others in the loop, track responsibiilties and progress
 
  - Capture team discussions in clear documents, or at least a message archive
 
  - Design and code review meetings
 
  - Consider parallelism in planning and design
 
  - Use coding standards to take certain stylistic issues off the table
 
  - Use external standards documents as part of requirements: precise, pre-agreed upon, unchanging
 
 
 
sample use cases templateexample software testing plan templateProject plan template