Team Formation

In the OOSE course, students are expected to self-organize into small teams of 6 students. This requirement is strictly enforced, although exceptions may be made on a case-by-case basis under extenuating circumstances.

It is important to note that students themselves form teams. While the teaching staff will provide assistance in team formation, they do not assign students to teams. We understand that this may put some students at a disadvantage if they do not have a strong social network on campus. However, this challenge is an opportunity for growth. Rest assured that if you act early and actively participate in team formation discussions, you can find or form a team and not fall behind.

Call yourself a team: A group consists of people who coordinate their efforts. A team, however, has a common purpose and a shared responsibility for success.

The composition of your team can have an impact on project outcomes. A functional team can foster collaborative learning by facilitating knowledge exchange, sharing expertise, and increasing motivation. Conversely, a dysfunctional team may struggle to complete even the most basic tasks. Common student grievances regarding teamwork include unequal workloads caused by freeloaders or dominant individuals who take control, as well as members who work independently rather than collaboratively.

General advice for team formation:

  • Aim to create a cohesive team that shares common interests, ambitions, and availability.
  • Aim to create a diverse team with a variety of technical strengths and skills. (Diversity can also be considered in terms of study program, culture, race, and gender.)

As soon as you have six members to form a team, follow these steps:

  • Seek the instructor's approval to formalize your team.
  • Survey the availability of team members and document it, including anticipated milestones such as midterm exams and major due dates.
  • Familiarize yourselves with each other's technical skills and work habits. For example, some members may prefer to work a little bit every day, while others may schedule less frequent but longer sessions dedicated to each project.
  • Create a team agreement. This document outlines the expectations of team members when working together. A template is provided below.

Please avoid assigning specific team roles, including a "team leader."

We will provide more information about team roles in future lessons when we cover Agile software development practices!

Appendix: Team Information & Agreement Template

Members Information

At the top of the "Team Agreement" document, create a section for "Members Information". Organize the following information for each team member in a tabular format: Full name, Preferred name, JHU Email, Cell phone, GitHub Username.

Team Values

Following the "Members Information" section, add a section on "Team Values" and list principles that will guide the team. Effective teams require clear expectations and a shared understanding of how team members will collaborate.

Here are some examples to help you get started:

  • Each team member is responsible and accountable for upholding our collaboration values as we work together to improve teamwork and communication. We will hold each other accountable when someone does not act in accordance with this agreement.
  • All team members are expected to attend meetings and classes on time and come prepared as agreed upon. For the team to succeed, members must be responsible for their assigned tasks and complete the required work. Failure to do so could hinder team progress, especially if subsequent steps depend on the completed work. Everyone should be able to rely on their team members to fulfill their responsibilities so that the team can achieve its objectives.
  • Regardless of their role, everyone is expected to support one another and take responsibility for the overall quality of all project deliverables. There may be different opinions on how to achieve success within the team, so members should be open to compromise and understand that it is sometimes more important to find a solution than to be "right."
  • Each member should actively listen to others and provide effective, non-judgmental feedback. Members are responsible for expressing their ideas, thoughts, and concerns. Respecting cultural and personal differences and engaging in respectful communication, both verbal and non-verbal, contributes to team cohesion.
  • We are committed to addressing differences in a timely, open, and honest manner. It is important to address conflicts before they become destructive. When an issue arises, we aim to resolve it at the level where it occurred by speaking directly to the individuals involved in the conflict before involving a third-party mediator such as a manager (CA or instructor).

Team Communication

Finally, add a section on "Team Communication" and outline the tools that will be used for team communication, as well as the frequency of communication. Provide guidelines for successful communication.

Here are some examples to help you get started:

  • Developers will meet every other day to review their progress and plans. Additionally, they will have a weekly meeting with clients/managers (or advisor/instructor) to discuss the project status.
  • Everyone is expected to actively participate in team meetings. If unable to attend a meeting, advance notice should be given. If a team member misses a meeting, they should follow up within 12 hours to check if there are any pending tasks.
  • At the beginning of each iteration, an availability schedule will be provided. Team members will be available for deployment/delivery outside regular business hours or on weekends.
  • Slack will be the primary communication tool, while texting via cell phone will be used for urgent correspondence.
  • A response on Slack is expected within 12 hours. If a response is not received in time, the person responsible will buy coffee for everyone!
    • Use the 👍 emoji to indicate agreement or acknowledgment.
    • Engage in a conversation in a dedicated thread (click "Reply to thread") for questions, comments, objections, etc.
    • Use the ✅ emoji to show that action has been taken in response to a thread.
    • Use the 👀 emoji to indicate that you will look into the matter later.
  • Any issues that may prevent the completion of assigned tasks should be proactively communicated.