🧑🏿🤝🧑🏾 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
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
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
- Backup alternative online game: https://www.crazygames.com/game/rush-hour-online
- Physical version of this game: https://www.thinkfun.com/products/rush-hour/
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)
- Swap your Jamboard with another group.
- Now go back into breakout rooms, with another group’s Jamboard of user stories
- Set a timer for 10 minutes
- Choose the stories that make up the MVP for that app
- 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
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
Click! (25m)
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
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
Step by step
Step One : Codepen
Find your landing page on Codepen and click Export > Export as zip
Step Two : GitHub
- Create a new repo by going to repo.new or by clicking the + icon in the top navigation
- Leave the Repository Template as “No template”
- Type in a name for your project. It can be anything, but ‘personal-home-page’ is probably a good choice
- Leave the rest of the options as the defaults
- Click “Create repository”. Once it’s created it will take you to your new repo
- Now click the link to upload an existing file, which takes you to https://github.com/YOUR_GITHUB_NAME/YOUR_PROJECT_NAME/upload
- Find your downloaded zip file on your computer, unzip it and drag the folder on to your GitHub web interface.
Step Three: Netlify
-
Log in to Netlify and follow this workshop to deploy your site.
-
🎉 Congratulations! You shipped it!
Tip
Follow the instructions in the workshop to change the site name to YOUR_GITHUB_NAME-home-page
Retro: Start / Stop / Continue
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.
Retro (20 minutes)