🧑🏿🤝🧑🏾 day-plan
What are requirements, and how do we use the idea of requirements to help us develop complex systems in small, approachable steps? We’ll find out today.
Energiser
Every CYF session begins with an energiser. Usually there’s a rota showing who will lead the energiser. We have some CYF favourite games you can play if you are stuck.
- Traffic Jam: re-order the cars to unblock yourself
- Telephone: draw the words and write the pictures
- Popcorn show and tell: popcorn around the room and show one nearby object or something in your pocket or bag and explain what it means to you.
Importance of Professional Development 🔗
Learning Objectives
Preparation
In-person:
- 2 big sheets of paper and Post-it notes
- A few markers
- Slide deck
Online:
- Interactive whiteboard
Introduction
Worst Boss vs Best Boss
🎯 Goal: Evaluate the difference of technical and professional skills (25 minutes)
Part 1
Draw a circle and write WORST BOSS. Think about the characteristics of the “Worst Boss”, write your ideas on post-its and share them on the collaborative sheet.
Think about a boss you worked with in the past or a boss you would not want to work for.
Part 2
Draw another circle and write BEST BOSS. Now think about the characteristics of the “Best Boss” you have or would want to have. Write your ideas on Post-it (one per Post-it!) and share them on the collaborative sheet.
Part 3
Work with your cohort to group the ‘hard skills’ (technical skills) and the ‘soft skills’ (professional skills) shared for the “Best Boss”. You can move the post-its under these two headings on a separate sheet.
Part 4
- Discuss what you have learned with this exercise.
- Define hard (technical) and soft (professional) skills.
- Are the soft skills really soft?
Part 5
If there is time, go through these slides together. If not, take time to review them in your own time.
CYF Code of Conduct 🔗
Learning Objectives
Preparation
Introduction
Let's talk Code of Conduct
🎯 Goal: Understand the importance of knowing and acting accordingly to the Code of Conduct of any enterprise (25 minutes)
Open this presentation and follow the exercises. The presenter’s notes should help anyone to do this interactive work.Morning Break
A quick break of fifteen minutes so we can all concentrate on the next piece of work.
🗺️ Using the curriculum
Learning Objectives
At Code Your Future, the curriculum maps out what you will learn together over the course. It defines your weekly work, the preparation you must do before class and what you will do together on Saturdays. Use this time to go through the activities and learn how to navigate the curriculum interface.
Resources
The facilitator will make a copy of this template presentation 👉
Preparation
- Facilitator: Review the How to use the curriculum presentation before class.
- Facilitator: Ensure everyone can access the Miro board presentation.
- Facilitator: Split the class into groups of no more than 4.
- Facilitator: Make sure every group has access to a laptop.
- Facilitator: Make sure every group has access to a piece of paper and pen
Introduction
The facilitator will use the Miro board presentation to guide trainees and volunteers through a discussion about how we use the curriculum.
Community Lunch
Every Saturday at CYF we cook and eat together. We share our food and our stories. We learn about each other and the world. We build community.
This is everyone’s responsibility, so help with what is needed to make this happen, for example, organising the food, setting up the table, washing up, tidying up, etc. You can do something different every week. You don’t need to be constantly responsible for the same task.
Telephone
Ring Ring Bananaphone
In groups of no more than 5, we’re going to play a game of telephone.
Ring Ring Bananaphone
To play Telephone without the internet, you will need: pens, paper, a stopwatch or timer
- In groups of no more than 6, give each person a pen and a sheet of paper. You might want to pre-fold the paper into thirds or sixths so people know how big to draw
- Alternating around the group, choose Red/Yellow/Red/Yellow/Red/Yellow
- Faciliator: Shout telephone! and set a timer for 30 seconds (a tomato timer is good for this)
- All the Reds: draw a picture
- All the Yellows: write a sentence
- When the timer rings, fold the paper over and pass it left
- Faciliator: Shout telephone! and set a timer for 30 seconds: it’s 30 seconds a round.
- Players: Look at your new picture or sentence. Do your best to draw the sentence or write the picture.
- When the timer rings, fold the paper over and pass it left
- Continue until your starting paper returns to you
Understanding Requirements
Learning Objectives
Communication is hard. Today, let’s explore some ways we communicate with each other in software development. It’s not enough to draw a picture of a website and assume the other person will build what you imagine. It’s never a good idea to assume shared context or shared interpretations.
So how do we understand what to do? By understanding requirements.
Formalising Requirements
Today we’re going to think about requirements. We’re going to ask these questions:
- why we’re working on a project
- who we’re making it for
- what they’re going to use it for.
Before starting to solve a problem (how), step back and ask yourself those why, who, and what questions.
We’re going to think about a few projects and discover some requirements. This is really important in order to do technical work, but you don’t need to have any coding experience, or be thinking about coding, when doing this.
Remember
User Stories
We can discover requirements with something called ‘User Stories’. The simplest user story looks like this:
As a [type of user], I can [achieve some goal].
Imagine a coursework tracker
As trainees, you have coursework to do. Imagine a website which tracks how coursework is going for you all. Thinking about that website, some user stories could be:
- As a trainee, I can ask for help with a topic or task.
- As a mentor, I can see who needs extra support.
- As a trainee, I can see what coursework I need to complete and when.
- As a mentor, I can see what coursework has not been completed.
These each take the form “As [who], I can [what]”. They don’t say why yet.
Exercise 10 Minutes
In groups of about 5.
Talk about why the “who” is useful. What would we be missing if we didn’t think about the “Who”?
Now think about the “why” for each of the listed user stories. Why are they important?
As a [who], I can [what] so that [why]
Exercise 10 Minutes
Write some user stories for our coursework tracker on a Jamboard.
Think about the “who”, “what”, and “why” for each.
You can think of new “who"s (e.g. the people who write the coursework questions), and as many “what"s as you want - but make sure you remember the “why”.
Reflecting
Key Term
10 Minutes
Why is thinking about user stories useful?
What’s useful about thinking about the “who” and the “why”? What could go wrong if you don’t think about them?
Understanding Requirements
Learning Objectives
Communication is hard. Today, let’s explore some ways we communicate with each other in software development. It’s not enough to draw a picture of a website and assume the other person will build what you imagine. It’s never a good idea to assume shared context or shared interpretations.
So how do we understand what to do? By understanding requirements.
Formalising Requirements
Today we’re going to think about requirements. We’re going to ask these questions:
- why we’re working on a project
- who we’re making it for
- what they’re going to use it for.
Before starting to solve a problem (how), step back and ask yourself those why, who, and what questions.
We’re going to think about a few projects and discover some requirements. This is really important in order to do technical work, but you don’t need to have any coding experience, or be thinking about coding, when doing this.
Remember
User Stories
We can discover requirements with something called ‘User Stories’. The simplest user story looks like this:
As a [type of user], I can [achieve some goal].
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.
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 if you have not done so already
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 (20 minutes)
A 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.
- Set a timer for 5 minutes.
- Write down as many things as you can think of that you’d like to start, stop, and continue doing next sprint.
- Write one point per note and keep it short.
- When the timer goes off, one person should set a timer for 1 minute and group the notes into themes.
- 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.
- Finally, set a timer for 8 minutes and all discuss the top three themes.