1. (a) If you did accomplish as much (or more!) as you thought you would this semester, explain why you did. Be specific about your approach or methodology that permitted your success. (b) If you did not accomplish as much as you thought you would this semester, explain why not. Be specific.
I didn't accomplish as much as I thought I would because the 6-person group's coordination costs were higher than we expected. It looked to me like everyone else was handling everything just fine without me, so I didn't pitch in. When I did ask what parts I should do, I was given the least bit we could spare to meet my requirements.
2. If you were to start this same project over again, at the start of a new semester, what would you change or do differently? Explain, giving specific examples and suggestions.
I hoped to apply some technologies such as bug trackers, CVS, and applicable Extreme Programming practices. Dr Nemecek said in 450 he wanted to do CVS if possible, but we didn't--it would be nice to have some kind of Tools for Software Engineering course where we did. I realize these aren't panaceas, but I'm told using them makes the difference between hacking from the hip and being a modern software engineering team.
I would suggest we set up SC-Track Roundup (a bug tracker) and CVS somewhere, ideally provided by the department. I believe so strongly in the benefits that I might be project leader so I could coerce the group into using them. I would also hope the group had more technical background in common: VB reduced my productivity, but it was still the best choice because it was mutually objectionable to everyone.
Part of using CVS would be to clearly delineate who had final say over the different parts of the project. We didn't, and it was a problem for me, because I didn't feel it was my place to touch anything.
3. Prepare a list of suggestions for enhancements or corrections to your project as it currently exists. These are to be carried out by another group of students, similar to your team, in a semester project.
Analyze and improve usability. I don't recall any other problems.
4. Usually groups for this course have 3 or 4 students in each group. Your group had 6 members. Do you feel that the group size was an advantage or disadvantage? Why or why not? Explain your answer.
An advantage as far as completing the project was concerned, but a disadvantage personally. We had an excess of coordinatable work available. I was reluctant to make my voice heard in the group beyond the design stage. I held back, not really helping as much as I could have if I had felt like it were OK to stick my hands in and change things. One part of this was the lack of coherent versioning; one particular person had "the current copy," and I didn't want to change something so the current owner had to merge it in.
Comments
comment
“Part of using CVS would be to clearly delineate who had final say over the different parts of the project.”
Did you mean the issue tracker, not CVS above? Or are you assuming temporary ownership based on checkouts?
This is key, and it’s something I still have trouble getting even professional project managers to understand. It’s important for people to have ownership/control of sections of a project. It’s fine if everyone can have their hands in the code… I’m the last guy to endorse a one-man-only approach to any but the most performance- or security-critical sections of code. But without someone with a directed vision and more detailed goal of each piece, parts will be left incomplete, and a whole motivational system is thrown away — perceptually, it’s much easier to work an all-nighter on your section of code, which is begging for attention, than it is for some contribution to the codebase seen as a monolithic whole.
comment
I was thinking CVS at the time, but it’s more a combination of CVS and the issue tracker. I’m not sure how you’d mark in a tracker that x owns y, but assuming each ownable is in its own file, you could mark it in the file.
So really that’s neither CVS nor issue tracker. How do you keep track of such things?