lab02 : First Project Increment: Hello World, and launch

num ready? description assigned due
lab02 true First Project Increment: Hello World, and launch Thu 01/24 04:00PM Thu 01/31 07:00PM
https://ucsb-cs48.github.io/w19/lab/lab02/
Points

Checking over your deliverables for lab01

The following deliverables are due for lab01 . Check over them and make sure these are complete. Even if, technically, the deadline for those has passed, the mentors/TAs will not start the official grading of those until after this lab (lab02) is complete this evening. So this is your last opportunity.

Also look at the green “Graded” boxes in the instructions for lab01

The following list is offered as additional clarificaiton of the graded items for lab01

Conduct a standup meeting (5-10 minutes)

You are encouraged to conduct a standup meeting as a team.

Find a space in which to gather, standing in a circle, and answer three questions:

Direct your comments to the entire team (not to your mentor/TA/instructor, or a perceived peer team leader)

Suggestion: Set a timer for six minutes.

Deliverables for lab02

By the due date of this assignment (i.e. Thu, Jan 31 at 7:00PM), you should have completed your first project increment.

That increment includes all of the following:

More on this below, and on how we’ll be assessing this for both a team and an individual grade.

Grading for lab02

Graded (lab02-I): (40 pts) towards (lab02-I) is your individual grade for lab02. Your mentor will do a code review against a rubric of items including all of the instructions in this lab, as well as conventional notions of good coding practice that you should have learned in CS16/24/32. Your TA or instructor will then do an independent assessment, informed by the mentors code review, and assign a grade. If you are unsure about your code follows good practice, you are encouraged to complete it early and meet with your mentor, your TA, or another mentor/TA during open lab hours to go over it in advance. The components of this grade are listed below. These points cover the basic functionality and code of your Hello World app on the basis of the code review. The remaining points cover mechanics of the release process (issues, version control, deployment/demos).

Graded (lab02-T): (30 pts) (lab02-T) is your Team grade for lab02. As part of this grade, each team member should have contributed to a hello world assignment as an individual or as part of a pair by the due date/time of this lab, i.e. (Thu, Jan 31 at 7:00PM)

For teams of 6, this part of your grade is 5 points per team member. For teams of 5, it is 6 points per team member. Those 5/6 points are all or nothing; if you’ve made a reasonable attempt, even if you didn’t earn 100% on lab02, your team will earn 5 or 6 points for your contribution towards the whole.

This component of your team grade is designed to encourage each team member to reach out to all the other members of the team, and be aware of the progress they are making towards the goal of having every team member complete a hello world assignment as an individual or as part of a pair. The most important learning goal of the course is to learn to work as a team, supporting one another.

What each “Hello World” branch/pull-request must contain for full credit.

Hello World app in a branch, and a pull request is performed

Graded: (lab02-I) (20 pts) You earn these points if/when you:

  • Have a branch and a pull request for your hello world app (the one that you did as an individual or as part of a pair) by the due date of this assignment (i.e. Thu, Jan 31 at 7:00PM)

Hello World app in a branch, and a pull request is performed

Graded: (lab02-I) (20 pts) You earn these points if/when you, by the due date of this assignment (i.e. Thu, Jan 31 at 7:00PM):

  • are assigned to an issue that has been moved from To-Do to In-Progress to Done on the Kanban board, tracking the progress of your issue from start to finish.

Note that each time an issue is moved or assigned, the date/time is tracked; so for full credit, this should be done “in real time” as you work on the issue, not “after the fact”. We’ll assess this to encourage you to get in the habit of doing it in real time as you work; doing it that way has benefit to the team. When you do it in real time, the Kanban board reflects the state of the project, and gives the team a way to visualize the status of what’s going on.

But doing it “after the fact” is better than not doing it at all; if nothing else, it helps you learn the mechanics to that you can know better how to do it next time. So if you forget to do it as you work, go back and do it, going through the motions. This will earn you partial credit, which is better than getting a zero for this part.

Hello World app Deployed or Demoed

As explained below, each

Graded: (lab02-I) (20 pts) You earn these points if/when by the due date for this lab, (i.e. Thu, Jan 31 at 7:00PM) you have, as explained below, either:

  • deployed your app live on the public web (if it is a webapp) through Heroku, or another provider, or
  • demoed your app to your mentor during open lab hours, or another mentor if that doesn’t work for your schedule.

Each webapp “Hello, World” branch/pull-request should be deployed

If your app is being deployed as a webapp: you should have have DEPLOYED it so that it runs on a service such as Heroku, Google App Engine, Amazon Web Services, etc. at a stable URL. The easist platform on which to do this for Java Spring Boot, and Python Flask is Heroku. If you don’t know how, ask on the slack channel (well in advance, not at the last minute), and mentors and other students can point you to the resources to get started with this.

Put the URL of your running app in the README in your branch.

Each non-webapp “Hello, World” branch/pull-request should be demoed

If you are NOT doing a webapp, you must set up a time with your mentor, or your TA, to demo your app to them. You are strongly encouraged to do this BEFORE the lab next Thursday. The mentors and TAs hold open lab hours during which you can schedule this demo. The last opportunity to do this demo is during lab on the due date for this assignment, but it may not be possible to fit all of those in, and in that case, regrettably, you may lose the opportunity to do so (and earn the points.) Please coordinate with your team to get as many of these demos done before lab on the due date of this assignment.

If working in a pair, each member of the pair should demo the app, to show that they understand how to run it.

NOTE: If you cannot schedule with your own mentor, you may coordinate on slack between your mentor and another mentor/TA holding open lab hours that better fit your schedule. Please use the slack to coordinate this.

Launching the project

As a team, in addition to completing your Hello World apps (as described in more detail below), you should also

Graded (lab02-T): (lab02-T) is your Team grade for lab02. As part of this grade:

  • (20 pts) There should be at least one user story in the In-Progress column for your team. If there is more than one, it is because the user stories for the first one are insufficient to keep the team making progress, and it was necessary to bring over a second one to have enough issues to work on.
  • (20 pts) There should be at least one issue under each user story that supports implementing that user story.
  • (30 pts) Each user on the team should be assigned to at least one issue in the in-progress column.
    For teams of 6, this part of your grade is 5 points per team member. For teams of 5, it is 6 points per team member.

This component of your team grade is designed to encourage each team member to reach out to all the other members of the team, and be aware of the progress they are making towards the goal of having every team member be making a contribution to the project. The most important learning goal of the course is to learn to work as a team, supporting one another.

About assigning issue to team members

It is possible to assign multiple users to an issue.

You may work on issues either:

However, if you are working as a pair or a mob, you should really be working as a pair or a mob. That is, you should plan times to get together, ideally in person, but at least via screen sharing, and work together on the code.

What we don’t encourage is for Alice and Bob to be assigned to the issue, and then Alice and Bob take turns “solo programming” on the issue. That’s a way of working but not the one we are encouraging you to try.

About limiting work in progress

Throughout the rest of the course, up until we wrap things up with the final project delivery, you are encouraged to:

Being assigned to more than one in-progress issue is occasionally unavoidable, but typically not ideal. An example of a case where you may be tempted to do it is when you are blocked on an issue (e.g. waiting for someone else to finish something you need). In that case, you might decide to start another issue so that you are assigned to two in-progress issues at a tine.

But the experience of most teams is that it’s best to try not to do this too often.

Context switching among issues has a cost, and having lots of work in progress can slow a team down further and complicate the delivery of working software that adds value for the user.