Form Teams¶
Due Date¶
Due Date: September 8
Grading: Team
Lectures¶
You must watch:
- the Welcome to 490 lecture,
- the Teamwork lecture, and
- the GitHub Issues lecture
before doing this milestone.
Description¶
For this milestone you will
- Have your first group meeting.
- Figure out how you will get organized, what your team name will be.
- Reach out to your client, if you have one.
- Agree on a general description of what your app will do.
At your first team meeting you should:
-
Exchange contact information with everyone on your team: for both standard messaging (email) and emergency situations (phone #).
-
Determine a time for team meetings that is agreeable to everyone on the team.
-
Choose your chat service: slack, teams, google chat, discord, etc. Important discussions should be recorded in your GitHub Issues, for example: which backend should we use? The online chat is for more informal or organizational discussions: should we meet next Thursday?
-
Establish a minimum frequency for message checking. Namely, everyone should check their messages at least once a day. This means that if you ask someone else a question they will reply within 24 hours.
-
Discuss options, approaches, etc. What will be your project? How will you built it? You will also have to soon choose, but not required for this Milestone (it might be too early to make some of these decisions):
- Platform: Android, django, iOS, react native, etc.
- IDE: Xcode, WebStorm, VSCode, etc. Note that modern IDEs now have built-in methods for sharing your editor view with teammates: code together, code with me, etc.
- Backend: firebase, postgresql, not needed, etc.
- Libraries
- APIs you will access
- Package manager: npm, yarn, gradle, etc.
-
Discuss what each one of you wants from this project. Do you want to learn a particular technology (Android, django, etc.)? Do you want to Design an app? Do you want to focus on a particular part of the technology stack (fronted, backend, Design, database, IT, git, testing, etc.)?
-
Select roles and designate responsibilities for all team members. Everyone on the team is expected to contribute to each part of the project. The assigned roles simply indicate how the work involved in various tasks might be distributed. Possible roles are:
- Manager: direct meetings
- Editor: collect, assemble, edit, and format data and wiki pages
- Client Representative: takes on the user's perspective
- Tester
- Researcher: research possible libraries;
- Repo master: helps everyone setup their git.
- Master of a specific technology: Android Studio, django, firebase, etc.
- Pull Request reviewer: decides when changes can be merged into
main
- Optimist, Pessimist, Analyst: advocate, challenge, analyze ideas.
Deliverables¶
- Set you real name in your GitHub profile, or at least your first name, if possible.
- On your github repo, add all of this semester's milestones as Milestones in your github Issues. Set the correct due date on them. Make them look similar to these.
- Add a wiki page (or more) to your repo titled "Team Organization" and list there the decisions you made on the questions 2,3, and 4 above, along with any pother pertinent information for the team. Note that you will be turning in many of the early Milestones as wiki pages, so think about how you will organize your wiki.
- Add a page to your wiki titled "Project Description" which should
be kept updated as you make decisions about your project. It should
contain these sections:
- Description: a short description of your project,
- Technologies: a list of the technologies you plan to use: frameworks, libraries, hosting services, etc.
- Client: your client's name and contact info, if you have one, otherwise just say "Startup."
Grading Rubric¶
Please to do not make changes to the wiki pages after the due date, but before you get your grade. Grades are emailed to your USC address.
-
Are the four deliverables done?
-
Does the "Team Organization" page contain the information we requested (above)?
-
Does the "Project Description" page contain the information we requested (above)?