lab01 : First Project Increment: Hello World, and launch

num ready? description assigned due
lab01 true First Project Increment: Hello World, and launch Fri 04/09 01:00PM Fri 04/16 02:00PM
https://ucsb-cs148.github.io/s21/lab/lab01/
Points

Step 1: Checking over your deliverables for lab01

Deliverables are due today for lab00 . Check over them and make sure these are complete by the end of Section today. The mentors/TAs will start the official grading after this lab (lab01) is complete this evening. So this is your last opportunity for those points.

Step 2: Document your meetings

During lec03, you have first practiced logging meetings in GitHub. Make sure to log today’s meeting as well, and capture it as lab01.md in the sprint01 folder you created in lecture. Reminder: In your github repository, you structure the documentation of your meetings into ‘sprints’ (which are week-long unless you as a team decide on a different interval).

Graded: (20 pts) You earn these points if/only if:

  • your group logged lec03.md and lab01.md meetings in the sprint01 subfolder.
  • you took accurate attendance, accounting for all members of your group (See the teams page for a list of group members)
  • the meeting notes the scribe took are added to the above files. For future meetings, you will replace lab01 with the respective meeting time denominator (e.g. lec05 or 01-17-2pm)

From now on, please document all your meetings in the github repository in this way.

Step 3: Discuss the User Journey

As a team, discuss the “user journey” for your proposed application.

That is, try to describe all of the events that lead someone to seek out your product and have an interaction with it, or perhaps a series of interactions.

There should be a beginning, a middle and an end, where value is exchanged:

Identify:

Discuss this with your group, and capture (perhaps in a Google Doc?) whatever comes to mind.

The beginning of your user journey is a Problem Scenario as discussed in class, which is basically a short story, involving a subset of the concrete Personas you came up with in assignment h02 and expressing what the people eventually will want to achieve with your product and what the problem is with current solutions.

Beyond the problem scenario, you can document the design of your user journey in free form.

At this stage, it is important to get the ideas flowing. There is no specific “right or wrong” way to get your ideas down on paper (or, rather, eventually, a GitHub markdown file). Just write something that captures the group consensus, or the candidate proposals, for the “user journey”.

It can take any form: a list, or pictures, a collection of As a __ I can __ so that __ type stories, or any combination of those. Don’t get bogged down on what form it takes. Just get something down.

NOTE: Try to keep your description VERY HIGH LEVEL, avoiding specific implementation details.

You don’t have to do this “perfectly” the first time. You may need to first get it all out as “brain dump” that contains too much detail, and then move to a higher level. But get to the higher level as soon as you can.

Don’t move on to the next step until you have the “spine” of your customer journey captured in some fashion.

You’ll know you have it, and you are ready for this step when:

Graded: (20 pts) You earn these points if/only if:

  • your group produced a problem scenario in the form of a github file ‘./team/problem_scenario.md’, and
  • a user journey documentation in the format of your choice. Summarize what you came up with in a file ‘./team/user_journey.md’

Step 4: Move towards minimum viable product (MVP)

(This step is not graded, per se, but you can’t meaningfully accomplish later stages if you try to skip it.)

At the moment, you have an idea and scenarios for your application.

At this stage, the story you have might have gone in one of two directions:

It’s likely that each of our teams will be somewhere on the spectrum between these two extremes. Discuss where you think your team is on that spectrum.

Assuming that your team is somewhere closer to GV than to MVP, you’ll now want to set aside the description of your GV for the moment. Use it as a reference to inform your efforts to redo the exercise, but focusing on an MVP.

Maybe you can draw on top of your GV description, and highlight the parts that you think might be part of your MVP.

The big question to keep in mind is:

How can we make “this” possible for the user with less complexity, less code, less time

Here, “this” is the goal/need/desire.

Development deliverables for lab01

As the Agile Methodology strives to get to a working live software as quickly as possible (to be improved constantly thereupon), it is now also time to experiemtn with potential technology stacks, so that your team has a good basis for choosing a particular implementation platform and framework in an informed fashion!

By the due date of this assignment (i.e. Fri, Apr 16 at 2:00PM), every team member (either individually or as part of a group of team members all following the same steps on their own host computers) should have created a simple running Hello World app on a platform and with a technology stack of each person’s choice. Variety among your team members w.r.t. the tried technologies will help you gather valuable information about the pros and cons of different choices, but it is not required that you all do something different. It is also ok to do this as a group experience or in breakout groups of 2 or 3 people.

A Hello World app demonstration 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 lab01

Graded (lab01-I): (30 pts) towards (lab01-I) is your individual grade for lab01. Your mentor will check with each of the team members to see if they got a Hello World app running. These reviews can be as simple as pointing the mentor to a deployed heroku web app, or it could involve the team member demoing an app to the mentor via Zoom. Your TA or instructor will then do an independent assessment, informed by the mentors review, and assign a grade. If you are unsure about your code/project following good practice, you are encouraged to complete it early and meet with your mentor, your TA, or another mentor/TA during arranged meeting time or office 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 app review. The remaining points cover mechanics of the release process (issues, version control, deployment/demos).

Graded (lab01-T): (30 pts) (lab01-T) is your Team grade for lab01. As part of this grade, each team member should have contributed to a hello world assignment as an individual or as part of a group by the due date/time of this lab, i.e. (Fri, Apr 16 at 2:00PM)

For teams of 5, this part of your grade is 6 points per team member. For teams of 4, it is 7.5 points. Those points are all or nothing; if you’ve made a reasonable attempt, even if you didn’t earn 100% on lab01, your team will earn 6 or 7.5 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.

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 easiest platform on which to do this for Java Spring Boot, and Python Flask is Heroku. If you don’t know how to go about it, 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. Mobile apps should be demoed deployed on a physical device through Zoom. You need to do the demonstration BEFORE the lab next Thursday/Friday. The TAs hold office hours and you can arrange meeting times with your mentors during which you can schedule this demo. The last opportunity to do this demo is right after or just before lab on the due date for this assignment, if you can grab your mentor or TA, 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/sub-group, 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.

Some starting points for selected platforms:

Vincent Tieu has put together a Github repository with starter code for React and Google Authentication The README.md and an accompanying YouTube video also cover how to use the Google Develop Console and how to host the application on Heroku.

If you are using Heroku for hosting a web app, you may also find these instructions from CS48 a year ago helpful.

Starting Sprint02

Some time during or after this Lab Section, you will enter Sprint02. This may be different for each of the teams - it depends on when you do your sprint review and sprint planning meetings. In any case, when you switch over to Sprint02, please create a new team/sprint02 directory in your GitHub and document all your sprint02 meetings in that directory from there on.