Grade sheet (pdf)
This week we begin with one week of Inception on a class project. It's a dummy or throw-away project that we can all go through together to make sure we're doing things right. After that your team will do a second run-through on your 3 project ideas. Finally you'll do some practice with Git on the workflow you'll use this term. I say finally, but you should do this first and use this workflow for all documents you produce this week (and here on out).
As a type of user, I want some goal so that some reason.
Here's what you should start with: Class_Project_Definition_201819.md Pretend that this document was the output of the initial meeting between your team and the stakeholders/customers. Your job is to take it to the next step and start working on it. You'll have questions for the stakeholders so just ask yourselves (better yet, interview each other or choose 2 members as stakeholders and the other 1 or 2 as the dev team. Role play and act it out). You can personalize this class project and move it to wherever you'd like. Please go ahead and use this document/format for your team, just personalize, refine, add to it and include it in your Milestone 2 docs.
Team Project Ideas
Develop each of your ideas a little more. Do some background research and look for existing solutions. Evaluate your topics thoroughly and then choose TWO to continue with (or your advisor will have discarded one or more already). Write up a short explanation of each topic, that describes it more than you did for Milestone 1. Additionally, answer these questions for each topic:
Practice the class Git workflow with all the material from this milestone (feel free to practice with (small) files in a temp folder first).
We will go over this at length in class, so here is just the barest of reminders. The Team lead created the official repo under their account. There are two branches: master
and develop
. Everyone will start with a fork of the “official” repository (the one that is continuously published). All team members (including the owner of the official repo -- just for practice) fork this repository. They now have a remote repository that is identical, and has built-in connections, to the official repo. Team members create a feature branch off of develop
for each feature or user story they are working on, work locally and push to their own remote. When a feature is finished they first make sure it will merge into develop
without conflicts so they first update their version of develop
in their remote and local, then (and this is key) merge develop
into their feature branch. Then fix any merge conflicts and commit. Finally once they know their feature can be merged easily into the main repo, push their feature branch to their remote, then issue a Pull Request to the owner of the official repo, who reviews it, and if OK approves it and merges it into the offical repo in the develop
branch. This merge should now be easy and probably a fast forward. When the Sprint is over, they merge develop
into master
for the official release.
See these pages for additional information. We're using the GitFlow Workflow with the Forking Workflow. Here's some info on Pull Requests, and here's a general one for forking and pull requests How to Github: Fork, Branch, Track, Squash and Pull Request.
For this task, print out evidence that shows every member of your group is following this workflow. Every member needs at least one accepted (and therefore merged) pull request, and it must be accepted/merged before the meeting each week with your advisor.