tP (team project): OverviewtP: Timeline


tP :Expectations

project expectations

Functionality Expectations

The expected level of functionality from a team is roughly what you can achieve if each member contributes about the same amount of functional code as required by a .

There are no extra marks for exceeding implementation effort bar stated above. Hence, effort is graded on mostly an S/U basis) -- it is the quality of the code that really determines the marks for implementation component (more info here). So, you are better off spending more effort in improving other aspects of the project. Try to avoid adding more features than necessary, unless you are doing it out of interest. As mentioned elsewhere, a functionality just the right size and of high quality will earn more marks than a functionality that is bigger (or more difficult, or more interesting/novel) but of lower quality.

In the most recent semester, more than 80% of the students did significantly more work than what was needed to earn full marks for effort. Many of them were likely under the wrong impression that doing more features will earn them more marks. Try to avoid doing the same mistake yourself.

In fact, here is the grading criterion for the individual project effort:

Team Expectations

  • Expectation Produce a cohesive product: i.e. ensure,
    1. features fit together to form a cohesive product,
    2. documentation follows a consistent style and presents a cohesive picture to the reader, and
    3. final project demo presents a cohesive picture to the audience.
  • Expectation Maintain product integrity/quality: i.e. prevent breaking other parts of the product as it evolves.
  • Expectation Manage the project: i.e. ensure workflow, code maintenance, integration, releases, etc. are done properly.

Individual Expectations

Individual Expectations on Implementation

  • Expectation Contribute to the functional code of the product.
    • User-visible features are preferred, but it is not a strict requirement.:
    • The enhancement(s) should fit with the rest of the software (and the target user profile) and should have the consent of the team members. You will lose marks if you go 'rogue' and add things that don't fit with the product.
  • Tip: Contribute to all aspects of the project e.g. write backend code, frontend code, test code, user documentation, and developer documentation. Reason: If you limit yourself to certain aspects only, you could lose marks allocated for the aspects you did not do. In addition, the final exam assumes that you are familiar with all aspects of the project.

  • Tip: Do all the work related to your enhancement yourself. Reason: If there is no clear division of who did which enhancement, it will be difficult to divide project credit (or assign responsibility for bugs detected by testers) later.
    In other words, we recommend that the work to be divided primarily based on features/enhancements rather than components. The latter has the risk of a team member becoming a single point of failure and you becoming too reliant on other team members e.g., what if the person assigned to an important component doesn't deliver on time?.

Individual Expectations on Documentation

  • Objective: showcase your ability to write both user-facing documentation and developer-facing documentation.
  • Expectation Update the User Guide (UG) and the Developer Guide (DG) parts that are related to the enhancements you added.
  • Tip: If the UG/DG updates for your enhancements are not enough to reach the above requirements, you can make up the shortfall by documenting 'proposed' features and alternative designs/implementations.
  • Expectation Use at least 2 types of UML diagrams in your DG updates i.e., diagrams you added yourself or those you modified significantly.

Individual Expectations on Testing

  • Expectation Write some automated tests so that there is evidence that you can write automated tests.

🤔 How much testing is enough? We expect you to decide. As you learn different types of testing and what they try to achieve, you should decide how much of each type is worth having. Similarly, you can decide to what extent you want to automate tests, depending on the benefits and the effort required.
There is no requirement for a minimum test coverage level. Note that in a high-end production environment you might be required to have high levels of test coverage (e.g., 90%). In this project, it can be less. Caveat: The weaker your tests are, the higher the risk of undetected bugs/regressions, which will cost you marks if not detected/fixed before the final submission.

Individual Expectations on Teamwork

  • Expectation Do an equal share of the team-tasks.

Team-tasks are the tasks that someone in the team has to do.

Examples of team-tasks


  • Expectation Carry an equal share of project roles and responsibilities.

Roles indicate aspects you are in charge of and responsible for. E.g., if you are in charge of documentation, you are the person who should allocate which parts of the documentation is to be done by who, ensure the document is in right format, ensure consistency etc.

Example roles and responsibilities


Ensure each of the important roles are assigned to one person in the team. It is OK to have a 'backup' for each role, but for each aspect there should be one person who is unequivocally the person responsible for it. Reason: when everyone is responsible for everything, no one is.

  • Expectation Review each others work. Reason: reviewing skills is a learning outcome, and it is mutually beneficial.

tP (team project): OverviewtP: Timeline