Rob Kremer


Practical Software Engineering

Advice about the projects from a previous year's group

  1. Define the group structure and member roles at an early meeting.
    Ambiguity resulted in wasted time. If members did not know their roles and responsibilities nothing could be accomplished at meetings.
  2. Split the larger group into smaller groups for decision making.
    Group meetings in which decisions needed to be made were unnecessarily long because of the large number of people involved.
  3. Define agendas for meetings to ensure participants come prepared.
    Time can be wasted in meetings informing members of the topic under discussion.
  4. Use a language other than 'C' to implement the code.
    Problems of modularity were encountered. As the system we designed was very modular, the coding was broken up and written as three separate programs. The problems arose when each separate program interacted with the others. Although there was a good deal of communication between the coding teams to make sure the right variables were being called and sent, there were a lot of Problems getting the programs to work properly together. Also, many group members felt the code was not as easy to read as in other languages. This made the debugging difficult when trying to get the programs to work together. In addition to the modularity and readability concerns, some felt the language was too low level for the type of system we designed.
  5. Define standards more clearly.
    Time was wasted rewriting and reformatting documents and code because of unclear standards.
  6. Have greater quality controls.
    A review process involving members checking and commenting on the work of others in the group would have improved the quality of written documents.

UofC Practical Software Engineering, Department of Computer Science

Rob Kremer