Week 1 - Setting up the team

Session: Setting up the team

During the JS2 module, you will prepare a Teamwork Project for your PD coursework. You will set up a team and work on a fictional product for a fictional client. You are not going to do any coding. This project aims to improve your teamwork skills. You will learn how to prepare for a project before the web development phase.

You will:

  • Set up your team

  • Agree on the fictional product you will prepare for

  • Define the minimum viable product for your project

  • Prepare a brief for your project

Session objective: In this session, we will talk about tech teams and different tech roles. We will briefly discuss different aspects of teamwork; such as setting up goals, software development processes, time management, communication, and conflict management.

Exercise (10 minutes)

Exercise objective: To brainstorm about teamwork at tech industry

Think about the teams you will work with in future when you move in tech. Discuss in groups:

  • What is your dream future job?

  • What job roles will be in your team?

  • What other people/teams will you interact with?

  • What non-technical skills do you bring?

  • What non-technical skills should you develop while at CYF?

Work in groups for about 5 minutes, then discuss as a class for 5 minutes.

Exercise (5 minutes)

Exercise objective: To talk about different roles in tech teams

The following are the roles typically found within a development team. There are plenty of roles other than ‘Full-Stack Developer’.

Discuss as a class the responsibilities of the following tech roles:

  • A front end web developer

  • A back end web developer

  • A UX/UI designer or UX researcher

  • A Product manager

  • A QA tester

  • Tech lead

  • Team lead / Manager

*Answer key*

Brief descriptions of the roles:

  • A front end web developer: developer that mainly works on the look and feel of the website

  • A back end web developer: developer that mainly works on the server-side code (database, API, etc)

  • A UX/UI designer or UX researcher: Provides the design of the website

  • A Product manager: Sets work priorities, and product direction

  • A QA tester: quality assurance team member. Their responsibility is to test the work that developers produce, making sure it works well, with no defects or missing functionality.

  • Tech lead: Hands-on developer responsible for tech excellence, code best practices (no people management responsibilities)

  • Team lead / Manager: Hands-on developer responsible for the wellbeing of the team, and team morale (sometimes has people management responsibilities)

Exercise (10 minutes)

Exercise objective: To discuss the importance of setting clear goals and responsibilities within a team

You might come across the following questions in your future work as part of a ceremony called “team charter”. Team charters define roles, responsibilities and ways of working. If these are not clear for you when you join a new company, you should ask and seek clarification urgently.

Discuss as a class:

  • Why is it important for your team to understand their main goal?

  • Why is it important for everybody on your team to understand the role each other play?

  • What happens when you are not clear about these two points?

Exercise (5 minutes)

Exercise objective: To get familiar with different processes in the software development cycle

Match the process to the stage in the software development cycle (SDC) as a class. Don’t go too much into detail, you can do some research later if you would like to learn more. These processes vary from company to company, and determine what steps need to happen before code is shipped to production. They aim to reduce the risk of mistakes going to production. For example during the deployment process, code is reviewed by at least one person, deployed to a testing environment (server), successfully tested by a QA, and the release is scheduled to a time approved by the end customer.

Process:

a. Gathering Requirements

b. Code Review

c. Bug Fixes

d. Deployment Processes

Software Development Cycle:

  1. Planning

  2. Analysis

  3. Design

  4. Implementation

  5. Testing&Integration

  6. Maintenance

What other processes can you think of?

*Answer Key*

Gathering Requirements - Analysis and planning

Code Review - Implementation

Bug Fixes - Testing and maintenance

Deployment Processes - Integration

Exercise (10 minutes)

Exercise objective: To identify the most common time management challenges when working as a team

Work in groups for about 5 minutes, then discuss as a class for 5 minutes:

  • How will you ensure that your group will remain on schedule?

  • What is your strategy if the project falls behind schedule?

Exercise (10 minutes)

Exercise objective: To recognise the value of co-working tools

Work in groups for about 5 minutes, then discuss as a class for 5 minutes:

  • What is your strategy for communication within your team?

  • How would you work with your team to agree on task/workload allocation? What tools will you use?

*Answer Key*

For the second question the correct answer at CYF is “GitHub Projects”.

Some examples for tools: Jira, GitHub (repo and project boards), IDE (integrated development environment), Slack, Teams, Google calendar, Calendly, Microsoft Office, Outlook, shared documents, Miro, Figma, Jamboard

Exercise (10 minutes)

Exercise objective: To brainstorm about the causes of conflicts and methods to manage them

Remember, there will be a more detailed PD session on conflict resolution in the upcoming weeks. Work in groups for about 5 minutes, then discuss as a class for 5 minutes:

  • How would you communicate key challenges in your team?

  • How would you minimise conflicts in your team?

  • How would you resolve conflicts in your team?

  • How would you hold each other accountable?

  • How would you hold yourself accountable?

Last updated