Assignment 2
GIT, Scrum, GUI, Design Patterns

Due:
Oct 23 by 11:59 pm: Sprint 1
Oct 30 by 11:59 pm: Sprint 2
Nov 6 by 11:59 pm: Sprint 3
Nov 14 by 11:59 pm: Sprint 4 (including updated architecture discussion)
Late penalty (applies to sprint4 only):20% if handed in up to 48 hours late. Not accepted after that. Please indicate the commit ID you want us to mark in this page. Otherwise we will not check your code out of the repository for marking.
Hand in: Electronic submit via git, that is, you should have your code checked into your repository by the due date. We will check it out from there.
Marking: A detailed marking scheme will follow. For now...marks will be given for
  • Code quality: Individual classes marked according to 5 mark grading scheme, code marking scheme.
  • Architecture: The extent to which you use Design Patterns to create simple, extendable, clear, concise code.
  • Documentation: In addition to normal JavaDoc, please make sure that you describe how classes are used in any Design Patterns. Please make your code so simple, with names so well chosen, that minimal documentation is needed. Additionally, you will be marked on your architecture documents as submitted in Sprint1 and Sprint4.
  • JUnit Testing (not expected for this, so no marks here)
  • Scrum: The extent to which you follow the process. Adding documents to the scrum last minute counts for 0.
  • Git: We expect to see simultaneous working branches merging into master, moving the project forward.
  • Amount of work you did on the sprint.
  • 15% of the mark will be competitive, for the collection of interesting features your group comes up with. This will appear in sprints 2,3,4.
  • 5% of the mark will be from a writing assignment done in November 5,6 labs with your team. See writing component below.
Groups: Groups of size 4. Please visit the group signup application to see which group we have placed you in. You can switch to another group of your choice, but there must be 3 or 4 members, and all members must be in the same tutorial section. All groups will be marked the same. You can clone your repo at https://UTORID@mcsscm.utm.utoronto.ca:9999/git/207/25f/repo_a2_NNN.git Normally, all group members receive the same mark. If a group member is really not pulling their weight a redistribution of marks will happen. Pulling your weight roughly means number of user stories completed in each sprint.

Your repos have been created, you will add members.txt as well as the Assignment2 starter code. then add your contact information to the members.txt, then add, commit and push. Make sure very little time has passed between the clone, change to members.txt, add, commit and push.

At some point later, you can git pull to see the other members in your team. Remember, this is not the same as the labs which were inside your personal repo.

Paint Background

Meet the team and the code

The first meeting with your team should have everyone
  1. Exchange contact information
  2. Review the tool chain, and make sure everyone understands and can effectively use their tools.
  3. Initially claim at least one user story.
  4. Clone the group repo.
  5. Make sure members.txt is in the repo and everyone has their information in it.
  6. Unzip the starter code at the root of your repo. So we should see repo_a2_NNN/Assignment2/...
  7. Add, commit and push
  8. Pull the latest version of the repo. See that all of the contact information is in members.txt.
  9. Make sure that you can get the starter code running on your system.

Learning about the code

In this part of the assignment, your goal is to review the system, and understand how features can be added to the system. You should get together with your team and

Sprint 1: Planning Meeting

For this sprint, no major architecture changes or application of design patterns is allowed. Architecture and design pattern changes will happen in Sprints 2,3,4. Sprint1 is about familiarizing yourself with the code, with git, with the documents etc.
I have imagined that we What you need to do next:

Notes for Sprint 1

Sprints 2, 3 and 4

Sprint 2

From Sprint1: You understand the existing code base, and some of the JavaFX api. You now know how to add to productBacklog.txt, manage sprintBacklog1.txt, clone your repo, run the project, branch to work on a US/BUG, work on it, pushing to remote, merge back to master. You have some feeling about your team members (some teams have fired some of their team members, please let me know ASAP if you want to fire yours because they are not responsive or contributing). If they just don't understand, then be a good team member and go out of your way to teach them.

For Sprint2, Due Oct 30 at 11:59 PM, you should

Sprint 3

From Sprint 2: You understand how to modify the architecture to create a framework and make use of your framework to add features. For Sprint 3, you will complete BUG3.004 and start adding in and completing BUG and US of your own.

For Sprint3, Due Oct Nov 6 at 11:59 PM, you should

Sprint 4

For Sprint4, Due Nov 14 at 11:59 PM, you should ...

Writing Component

During practicals/tutorials on November 5th or November 6th, you will be working with your group on the writing component related to accessibility. The writing component will complement what we discussed during ethics lecture on accessibility during week 8 (October 20th to October 24th). The groups are created based on the tutorial you are enrolled in officially on Acorn and will remain as your group for the full duration of assignment 2. The writing component instructions and rubric will be provided when you attend the tutorial that week. You will be expected to work on and submit the writing component (as a group) at the end of your tutorial. To prepare for the writing component and the w08 lecture, please review Ability Based Design and Principles of Universal Design.

Questions and Answers

Question:
Any comments about the first sprint?
Answer:
Sprint 1 was about... 1) Setting up your environment. 2) Figuring out if team members are reliable. 3) Understanding MVC, and the challenges you face in starting to think about solutions using OO and design patterns. 4) Using git It was important to experience this early. Imagine if left to the last week before the assignment was due. Also, that is not how scrum works. So... If you are still having issues with project setup, please let me know and we will fix it, of course, you can work in the lab, and this is the target platform anyway so you should probably work there or on the VM anyway. As far as unresponsive team members are concerned, I will pull the repos so see if a team member has not registered in members.txt. Those not already not in members.txt may find themselves moved out of the current groups. A few issues I have seen with the repos: 0) Some students put student numbers in members.txt, nope, we want your utorid. 1) Some have placed all kinds of interesting files in the project. They should not be there. For example, I have seen a complete JDK in the project. I also have seen a collection of dll in others. 2) Some people leave merge conflicts that unresolved. If you see >>>>>>>>>> in your files, you have not correctly resolved a merge conflict. See for example: https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/resolving-a-merge-conflict-using-the-command-line Arnolds Famous Saying: Pay now or pay later, sooner or later you will pay. Paying the price to get the environment setup correctly now will save you more effort later.
Question:
When do I branch?
Answer:
Yes, you should be branching now. Create a branch for each user story/bug you take, then develop your user story/bug, adding and committing on the branch then merge back to master when complete. Master should only have working, complete code on it.