Practical Software Engineering
Advice about the projects from a previous year's group
- 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.
- 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.
- Define agendas for meetings to ensure participants come prepared.
Time can be wasted in meetings informing members of the topic under discussion.
- 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.
- Define standards more clearly.
Time was wasted rewriting and reformatting documents and code because of unclear standards.
- 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.
Practical Software Engineering, Department of Computer Science