🧑🏿‍🤝‍🧑🏾 day-plan

Iteration means to repeat. Developers do many small iterations to build software, each time adding or changing some small thing.

Blockers!

Learning Objectives

Online Version of this game

Activity 25 minutes

In groups or breakout rooms of 4 trainees maximum.

One person will share their screen and be the driver. The driver can only move the pieces where you are told by the navigators. The driver cannot make any decisions!

The others will be the navigators. Together, the navigators must figure out a strategy to unblock the car, and tell the driver how to do it!

Each person must drive, so set a timer for 5 minutes per round and then swap.

Reflection

Back in the main room.

Discussion 20 minutes

What did people think about this game? Let’s go around and each group share one thing you noticed about it.

You can do this workshop in person, online, or a mix of both. You can run this workshop completely offline using this kit: Rush Hour.

Start on Level 6 or above and get everyone to load the page before you go into breakout rooms/groups.

Facilitator Check in questions

Model ways of thinking about the game strategically instead of just trying stuff randomly
  • Which car is the blocker? Everyone guess!
  • What shall we do first?
  • What do you notice about the cars? Are they different sizes?
  • What do you notice about the board? What does this mean for our choices?
  • Is it frustrating being the driver?
  • Are we there yet? Shall we play another round?
  • What one thing shall we say we noticed about this game, back in the main room?

Evolve the game

Evolve the game each time you play to guide the players to insights
  • Round 2: You must discuss for 1 minute before you make any moves
  • Round 3: A single navigator can make no more than three moves in one go
  • Round 4: Try to solve the puzzle in as few moves as you can

Example reflection

This game interests me because to be successful you have to identify the blockers, which is something we all need to get better at. In this game, the blocker is often not the immediately obvious car ‘in the way’. To find it you might have to trace backwards around the board, thinking: to move this one I need to move that one, to move that one, I need to move this next one… And then you need to explain that to your team!

It’s a good reflection on blockers and planning.

More resources

Sharing Our Blockers

Learning Objectives

We call problems that stop our progress “blockers”. We talk through our blockers regularly and help each other get “unblocked” or “unstuck”.

Sharing Our Blockers

Join the Jam board or grab some sticky notes. Add your blockers.

Make sure to add only one blocker per note.

Morning Break

A quick break of fifteen minutes so we can all concentrate on the next piece of work.

MVP

Learning Objectives

Recap - user stories

Can you remember the structure of a typical user story?

As a [who], I can [what] so that [why]

Favourite App (10 minutes)

Split into groups and think about one of your favourite phone apps. Agree on one you all know. Come up with as many user stories as you can for it.

You must come up with at least 10, but try for more. Set a timer for 10 minutes and write them on a new Jamboard or post-it notes.

Defining the Minimum Viable Product

Come back into the main room, now we have a long list of user stories, how do we decide what to do first? Where do we start? As always with software development, we start with the simplest thing possible. Let’s define the MVP.

What’s the minimum set of user stories we could implement for this product to be useful? Another way to say this is: “What is the minimum viable product?

Prioritise! (10m)

  1. Swap your Jamboard with another group.
  2. Now go back into breakout rooms, with another group’s Jamboard of user stories
  3. Set a timer for 10 minutes
  4. Choose the stories that make up the MVP for that app
  5. Are there any missing? Note them down

Now come back into one group.

Community Lunch

Every Saturday at CYF we cook and eat together. We share our food and our stories. We learn about each other and about the world. We build community.

Using the Slack app 🔗

Learning Objectives

Preparation

Everyone must have their laptops up and running and connected to the internet.

Introduction

Slack is a collaboration platform that enables efficient team communication, file sharing, and integration with various tools.

It’s important because it enhances productivity, fosters collaboration, and centralises communication for remote and distributed teams.

Exercises

Let's share our knowledge about Slack

Goal: Share your knowledge about Slack (15 minutes)

Trainees should discuss the below questions about Slack and how to use it to share their knowledge with others.

  • What is a thread? 
  • How do we find a particular channel? 
  • Where do we look for notifications?
  • How can I turn off notifications so I am not overwhelmed?
  • Why is it important to react to a channel/message/thread?
  • Why do we need to check Slack daily?
  • Why should I avoid long texts and use short titles/paragraph with details in a thread? 
  • Why should we avoid using private messaging?

Let's practice using a thread

Goal: For everyone to actively use Slack and reply in a thread (10 minutes)

  • One trainee posts something on the cohort Slack (for example, do you like Slack? or What is your favourite colour?)
  • Every trainee must reply to it - this exercise only finishes if we have the same number of replies as the number of trainees in the class!

Emojis express a lot

Goal: Understand the meaning of emojis (10 minutes)

In pairs, play the Emoji communication game. 

  • One person writes a message only using emojis on the cohort channel and tags their pair.
  • The other person tries to understand it and writes the answer in the thread.
  • Continue the conversation in the thread until it makes sense.
  • Then they switch roles - the person answering the message writes a new message on that thread and tags their pair.
  • And repeat

Let's practice reacting to a message with an emoji

Goal: Ensure we have clearly understood how to use emojis (10 minutes)

A trainee posts something on the channel

Every trainee reacts to it with what they think is the appropriate emoji.

Discuss if anyone doesn’t understand or wants to know more about a specific emoji used.

Google sheet for Slack rota 🔗

Learning Objectives

Preparation

One trainee must volunteer to create the Google Sheet.

Introduction

Knowing how Google Sheets work is important as it enables efficient data organisation, analysis, and collaboration, enhancing productivity and enabling effective decision-making.

Exercises

This is our Slack Rota spreadsheet

Goal: Have 1 shared file in which trainees can organise the Slack rota (10 minutes)

One trainee to set up a Google sheet on the cohort drive

  • The spreadsheet must have at least the columns Date and Name
  • The title of the spreadsheet should be XXX X Rota (substitute XXXX for the region initials and cohort number, for example, GLA 6)
  • The title of the tab should be Slack Rota
  • Save the file on the cohort drive
  • Post a message on the cohort Slack with the shared spreadsheet and the instructions on what to do (see below)

Every trainee must enter that spreadsheet and add their name against a date.

This file will be the rota of that person’s daily messages posted on Slack. You have more information about it in your Coursework.

Pairing

Learning Objectives

It’s good to code with a friend. You learn SO much. Programmers call this pair programming and many professional teams program in pairs for a part of each day. Mentors will demonstrate pairing now.

Pairing (20 minutes)

In pairs, iteratively develop a solution to the CYF Blocks problem you are given.

  • Switch between driver and navigator roles after 10 minutes
  • The “driver” is the person typing on the keyboard, just thinking about what needs to be written
  • The “navigator” reviews what the driver is doing and is thinking about to write next
  • Don’t dominate - this is teamwork

Afternoon Break

Please feel comfortable and welcome to pray at this time if this is part of your religion.

If you are breastfeeding and would like a private space, please let us know.

CYF Blocks

Learning Objectives

Now we have started to think about the idea of MVP, how can we use this to help us build working software?

Tip

It’s important that software works and that we and other people can use it!

In software development, we start with the smallest, simplest thing we can build that works. Then we incrementally improve it. This is iteration.

You all built a personal home page in Intro to Digital, and last week you shipped it. Now let’s iterate on your websites.

Point (10m)

In pairs, define some user stories for your own websites, to improve it. These should be:

  • a small change
  • that is achievable with the CYF Blocks seen in the course so far
  • but a complete feature
  • try for at least one feature that updates or changes the page when an action is taken

Tip: Read ahead

Read ahead to Ship It to see where to paste your code.

Click! (25m)

In the same pairs, try to implement one user story. While implementing, try to break down into steps where you can visually check that your code runs as expected.

Ship It

Learning Objectives

Now we will ship some code, because we expect you to ship very often at CYF.

You’re going to be working on and developing your own projects over the Fundamentals course, so let’s begin with your personal home page. In Intro to Digital (ITD) you built a Personal Home Page to complete the course. Now we’ll ship it to become a “real” website. When developers talk about shipping or deployment they mean turning the version that they’re developing into something that users can access.

Tip

It’s important that software works and that we and other people can use it!

You will need:

  • Your personal home page on Codepen
  • An account with GitHub and to be logged in
  • An account with Netlify, so sign up now using the “Sign up with GitHub” option

Exercise

You’ll export your page to a folder on your computer, upload it to GitHub, and deploy it to Netlify.

Step by step

Step One : Codepen

Find your landing page on Codepen and click Export > Export as zip

Step Two : GitHub

  1. Create a new repo by going to repo.new or by clicking the + icon in the top navigation
  2. Leave the Repository Template as “No template”
  3. Type in a name for your project. It can be anything, but ‘personal-home-page’ is probably a good choice
  4. Leave the rest of the options as the defaults
  5. Click “Create repository”. Once it’s created it will take you to your new repo
  6. Now click the link to upload an existing file, which takes you to https://github.com/YOUR_GITHUB_NAME/YOUR_PROJECT_NAME/upload
  7. Find your downloaded zip file on your computer, unzip it and drag the folder on to your GitHub web interface.

Step Three: Netlify

  1. Log in to Netlify and follow this workshop to deploy your site.

  2. 🎉 Congratulations! You shipped it!

Tip

Stretch goal?
Follow the instructions in the workshop to change the site name to YOUR_GITHUB_NAME-home-page

Retro: Start / Stop / Continue

Retro (20 minutes)

Retro is a chance to reflect on this past sprint. You can do this on a Jamboard (make sure someone clicks “Make a copy” before you start, and you work on that together) or on sticky notes on a wall.

  1. Set a timer for 5 minutes.
  2. Write down as many things as you can think of that you’d like to start, stop, and continue doing next sprint.
  3. Write one point per note and keep it short.
  4. When the timer goes off, one person should set a timer for 1 minute and group the notes into themes.
  5. Next, set a timer for 2 minutes and all vote on the most important themes by adding a dot or a +1 to the note.
  6. Finally, set a timer for 8 minutes and all discuss the top three themes.