- Ensure you know tP expectations
- Start proper milestone management
- Add the first functionality increment
As we start working towards v1.2, keep the following iteration goals in mind:
v1.2
- Product goal: Reach a minimum viable product (MVP).
- Process goal: Estimate the quality and quantity of manpower i.e., see how much the team can do within an iteration.
- Strategy: Define the smallest possible MVP. Reach it as soon as possible. Use the remaining time to see how much more work the team can do, while staying within own workload limitations.
Feel free to improve AB3 in any way you see fit. While not very 'buggy', AB3 is not 'perfect' either (it is not meant to be a 'model solution'). In particular, find and fix any bugs it has. If you are not sure if something is a bug or an intended behavior, you can post in the forum to check.
While we are on the topic, also note that the architecture of AB3 doesn't suit every kind of application either. As you gain more experience in other application domains, you will learn different types of architectures that you can add to the collection of different architectures that you can consider for future projects. The same goes for the tool chain and the tech stack of AB3. Therefore, do not try to apply AB3 as a template for every other project you encounter in the future.
PR review comments matter! Remember to do proper PR reviews throughout the tP, at least for non-trivial changes, as the quality and quantity of PR review comments you have given to peers affect your tP marks (under the project management aspect).
1 Ensure you know tP expectations
- If you haven't done so already, make sure you know individual and team expectations of the tP
2 Start proper milestone management
- Set up the issue tracker as described in the panel below, if you haven't done so already.
- Start proper schedule tracking and milestone management as explained in the panel below.
Try to achieve all milestone requirements, but do not fret if you miss a few. You will get full marks for this aspect as long as you achieve about 75% of the milestone requirements on average. Yes, that's a pretty low bar, but we have set it low in order to reduce workload and stress. Ideally, you should achieve 90-100%.
3 Add the first functionality increment
- Ensure you are aware of the instructions for planning this iteration, given as part of previous week's tP instructions, and also repeated in the panel below for your convenience:
Iteration deadline: week 9 Thu 23:59 (i.e., in about 2 weeks).
Push as hard as you can afford to in this iteration: While we have kept the expectations bar low for this iteration (so as not to overwhelm inexperienced programmers), you are encouraged to push as hard as you can in this iteration. Reason: past students have lamented not doing enough in
v1.2
that left 'too much' to do inv1.3
andv1.4
.
At the same time, we recommend you should also play it safe by aiming to reach a smallest possible version early and squeeze more in only if there is time left.From this point onwards each member is expected to contribute code to each , preferably each week; only merged code is considered as contributions .
- FAQ: Does that mean I have to merge at least one PR every week?
A: While that is ideal, it is not a requirement that you merge PRs every week. Consistency of contribution is detected based on commit timestamps, not based on when you merge the code. Don't worry if a certain week is shown in red because the commits in that week have not been merged yet; it will eventually turn green after you merge the code, and the temporary red will not affect the grade.
That said, aim for small PRs (and also, small focused commits). A PR that takes more than a week to merge is likely too large, or too-slow in moving forward.
- FAQ: Does that mean I have to merge at least one PR every week?
If you plan to rename the Java packages, you may want to do it around this time. Doing it later can be more difficult (e.g., it can cause more merge conflicts), and can cause problems in our code authorship tracking. Also note that renaming packages is optional.
Note: you are required to follow the forking workflow for at least for the first part of this iteration: