For M3 we had to design the whole thing. The design had to include:
The first thing we did was to give every team member a couple of days to review all of the milestones in detail before we actually talked about anything. Since there were 4 more milestones and we had 4 group members, it was tempting to let each group member focus on one milestone apiece (while at least being familiar with the rest). After taking a closer look, we saw that milestones 4 and 7 both were GUI-intensive, while milestones 5 and 6 were more algorithmic in nature.
We decided it would be wiser to group 2 people on each type of milestone, so Matt and Derek analyzed 5 and 6 while Neeraj and John took on 4 and 7. Even with the 2 person teams, it still ended up where one person would focus more on one of the 2 milestones assigned to the pair.
The group members focusing on the different milestones were basically to come up with the scenarios, then the CRC cards, then the UML. Of course, the entire process isn't necessarily linear, so modifications were made to any of the design elements as necessary.
|CRCs and Scenarios (PDF file)|
|What Went Well|
It turned out to be a pretty good idea to let individual team members focus more on certain milestones (while still staying informed about the rest of the project). When we would get to the milestone that a particular person had focused on in the design, they were able to take the lead and work out what all the group had to do. This helped to evenly distribute the workload over the course of the semester.
It was generally a good idea to start with scenarios, because from there you could draw up the CRCs, then the UML. The CRCs were semi-helpful, mainly in deterimining what classes and which we could discard. Once we had the list of classes, we basically never looked at the CRCs again.
The UML was probably the most helpful of all the design elements we had to generate. We continually referred to (and heavily modified) the UML diagram as we reached each milestone.
|What Went Bad|
|For the most part developing the design was fairly painless. As we progressed through the semester to each design, it was sometimes regrettable that we didn't go into further detail on some of the design, the GUI in particular. But that is difficult to do when it is the beginning of the semester and you don't know a thing about Squeak GUIs (But a design should be language independent, right? Well, it doesn't always work out like that).|
What worked for us when designing our project: