proj01_mentors : Mentor Duties for proj01
num | ready? | description | assigned | due |
---|---|---|---|---|
proj01_mentors | true | Mentor Duties for proj01 | Thu 11/08 05:00PM | Thu 11/08 07:50PM |
Midterm Exam E02 |
This page describe what mentors need to do to support their teams to work on proj01.
The step numbers below correspond to the steps in the student facing lab instuctions.
Their Step 0, like yours, consists of items they are (ideally) supposed to do before coming to lab on Thu, Nov 08. (Sorry for short notice.)
Step 0a: Make sure you have the access you need
You will need:
- To have edit access in the following Google Drive folder
- Once you have access to that folder, you should be able to edit this spreadsheet as/when needed:
- CS56 F18 Lab Seating Chart
- By convention, certain pages of that spreadsheet are published as the seating charts on the .github.io website.
- To be an owner in the following github organizations:
- ucsb-cs56-webapps
- This gives you the ability to create the official repos for the webapp projects. Students will have read only access to these.
- ucsb-cs56-f18
- This gives you the ability to work with the students in the repo they fork to do their work, and to work with their Kanban boards, issues, etc.
- ucsb-cs56-webapps
- To have TA like access on Gauchospace
- This is so that you can create a group and a discussion board at Step 3, if necessary.
- If you don’t have this access, ask the instructor to add you.
Step 0b: Choose which team you will mentor
Consult the lab seating chart pages for your lab section:
- https://ucsb-cs56-f18.github.io/info/lab_seating_chart_5pm/
- https://ucsb-cs56-f18.github.io/info/lab_seating_chart_6pm/
- https://ucsb-cs56-f18.github.io/info/lab_seating_chart_7pm/
Let one of the TAs or instructors know which team you want to mentor, and have them add your name to the chart.
Or better yet, access the editable version in the Google Drive folder [(), and add your name directly to the team of your choice.
Step 1: Locate the corner of the room where that team is meeting
There should be a flip chart there for them to work from, along with flip chart markers.
If it is available, we might also use Phelps 3526 for one or more of the teams.
Find your team. Help guide them through introducing themselves to one another. Try to make sure that everyone is supported and is participating.
In this step, and every step that follows: You should use a light touch
- Let them guide the process as much as possible, and let them lead the way.
- Be a facilitator and “guide on the side” more than a group leader.
- If they seem lost, do tep in and take charge just long enough to try to help them get back on track, but
- Always use the smallest possible intervention.
- As in software: do the simplest, smallest thing that could possibly work.
Step 2: Documenting work on flip chart
Check to see that they are following the instructions at proj01 for this step.
As long as they are, stay out of their way, but keep an eye on the process.
You should take pictures of their flip charts (or see that someone else does), and then upload those to the github repo they create later (under a directory called ./cs56/f18/images/proj01
) at the top level of the repo. The image names are unimportant at this stage; we can always rename them later. Right now, we just want to capture what they put on the charts.)
Step 3: Communications Channel
As at every step, check to see that they are following the instructions at proj01 for this step.
The biggest one is: no more than 5 minutes on this discussion.
After 4 minutes, give them a deadline, and start creating the discussion board on Gauchospace.
The convention will be to create it at the top of the page, with the name 5pm_team_name
. We’ll also need to create groups. If this happens a lot, we’ll create documentation for how to do it (we’ll probably do that on the fly, since we might not need it if everyone chooses Slack, or WeChat.)
Step 4: Discuss User Journey / Create repo under ucsb-cs56-webapps for your team
Make sure they get started with discussing the User Journey, as documented here proj01 for this step.
But quickly, try to pull yourself OUT of the discussion, and while they talk, go do this administrative step:
Under the ucsb-cs56-webapps organization, create a repo called ucsb-cs56-project-name
where project-name
is the name your team chooses for its project.
If you are unable to do so because you are not an owner, consult someone that is already an owner (e.g. a TA, instructor, or even a fellow mentor).
Steps 5, 6
As with the other “discussion” type steps, your role here is to mostly stay out of the way, but observe, listen, and keep the group on track. Try to get one of the students to be the discussion leader. If you end up in that role, try repeatedly to work yourself out of that job.
Step 7a, 7b, 7c
Just supervise and watch. They should be able to do this on their own, but do keep an eye out to make sure they are doing it properly. Advise as needed.
Step 7d: “Have your mentor review your Kanban board and approve issues”
THIS is the most important step of the day, because the students literally cannot proceed without it, and it takes time; unlike creating the repos, where its so fast, that the TA or instructor could do it at the scale of the entire class in about 10 minutes, this is where we really need individual attention from each team mentor.
When giving feedback on issues, do it in writing using comments. Consider asking them questions such as these:
- I wonder whether this is specific enough. Can you clarify x, y and z?
- Tell me more about a and b. Why does the user need this? Is it really part of MVP?
That can sometimes be more effective them telling them exactly what to do; but in whatever way you wish to communicate, as long as it is kind and respectful, let the students know (via comments on the issues) what they need to do before feel comfortable approving.
If you have experience with estimating points
If you have estimated points for CS56 issues before (100 pts, 200 pts, 400 pts), etc:
- Then, go ahead and put point estimates on the issues If you have not done this before
- Find one of the mentors or TAs that has (we can use Slack for this)
- Sit with them and do the initial estimates hand-in-hand with them
- This does NOT have to happen during your 50 minute lab section tonight, but it should happen as soon as possible so that the students can get started on planning their work for the rest of the quarter.
A note on estimation
Estimating points (100, 200, 400) for issues is very similar to “story points” as in the Agile practice of “planning poker”:
- https://www.mountaingoatsoftware.com/agile/planning-poker
- https://en.wikipedia.org/wiki/Planning_poker
But with a conversion factor of:
Agile Story Points | CS56 Project Points |
---|---|
1 | 100 |
2 | 200 |
4 | 400 |
8 | Way too big; decompose issue |
And the major difference that you are doing it all by yourself. (It occurs to me: maybe we should consider incorporating this as an exercise for the mentors to do this as a group. Maybe next time.)
The thing about Agile Planning Poker is that it’s almost always a wild guess. We do our best to try to estimate, but we are frequently wrong. More frequently than we’d like, things we think are going to be easy turn out to be hard. Things we think are going to be hard turn out to be easy.
Step 7e: “Assignment of Issues”
Try to help guide the student through the assignment of issues. Let them know that they need to decide how whether to divide up the work into pairs, groups, trios, etc.
Sometimes issues have dependencies on one another, so you can’t work on issue A until issue B is finished.
This is where they may also need some guidance in coming up with some Skunkworks issues (the folks who were in Summer 2018 will know what that means) that will help them do more “in parallel”. If you aren’t familiar with the Skunkworks idea, ask Sasha, Rachel, Wilson, Zihao, Santha or Prof. Conrad for more info on that. (If there is time, I’ll write something up on the course website about it.)
What comes next?
I’ll have some tasks over the next week for each of the mentors to provide the students with feedback on how they did with their work on proj01.
This will help get us set up for the way in which we evaluate work for the webapp projects.
This will include:
- Setting up one private FEEDBACK_team_name repos under the ucsb-cs56-f18; these are private repos where we give each of the team members read only access.
- Mentors put “feedback” (not grades) into these repos.
- TAs/Instructors add grades
- Setting up four to six individual private FEEDBACK_githubid repos under the ucsb-cs56-f18 for your individual team members. This is where we will record whether or not the individual team members met each of the criteria for earning points for
proj01
- Note: it would be super nice to have a webapp that would set those
FEEDBACK_*
repos automatically, eh? - It is totally possible. It’s a simple matter of programming. I’m happy to walk someone through it.
- Note: it would be super nice to have a webapp that would set those
- After the due date for proj01, checking those criteria for each of your six team members and recording the information.