For M2 we had to add a few things to the functionality of M1. These included:
We choose one of the team member's code from M1 and essentially moved a few things around. We then added classes for family relationships and added the functionality for this milestone. Overall the functionality that was added in this milestone was not that hard to implement. The biggest part of this milestone was the realization that it was only the foundation for what we would be building for the rest of the semester.
This assignment was the first team milestone we had. We spent a lot of time on design. By the time we got to the coding we knew what the each module should do and how each would communicate with the others. This was probably the key to our success on this milestone. We had really worked out most of the design errors before the first line of code was written.
What Went Right
The nfo file had a hint about using a family structure and not just putting all relationships together. We went back and forth about whether to try to do this or not. In the end we did come up with a way to divide different relationshipsup. This ended up being very helpful in later milestones. Basically if there is a hint you should take it as more than just a suggestion.
It is also very important to look at all of the milestones before just jumping in head first. If you take the approach certain students tend to take and just turn in what is being required for this turn in you may be in a lot of trouble later in the semester. Our advice is, if you are going to spend some extra time on a milestone this one and the design the whole thing are really the two to do it on. If these two are done thoroughly enough you should be able to cruise through the rest of the semester.
The other thing that made this milestone stress free was having the test code written before we finished the coding.This was basically a script that test the requirements for this project. When all the integration was done we simply ran the test and fixed the errors we had. This seems small but it does take time to write out the tests and this is not something you want to spend time doing the night before the project is due.It is also nice to have because it is a guide that a team can say “When this passes we are done.”
In the end the real test for this milestone was how well the design held up for the rest of the semester. Very little changed from the design we had at the end of this milestone and the end of the semester.