Skip to content

Commit

Permalink
Upload M3 team grading feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
albertfares authored Dec 21, 2024
1 parent 4dd4e08 commit 55c9a42
Showing 1 changed file with 129 additions and 0 deletions.
129 changes: 129 additions & 0 deletions staff-feedback/M3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# Milestone M3: Team Feedback

This milestone M3 is the culmination of your SwEnt journey, and it gives us the final opportunity to give you, as a team, formal feedback on how you performed in the project. By now, you should be capable of demonstrating a solid command of the Scrum methodology and collaborative teamwork, and be able to deliver a high-quality, application that is ready for real users.
This feedback report is meant to complement the informal, ungraded feedback that you received from your coaches during the weekly meetings, over email, on Discord, etc.

You can find the evaluation criteria in the [M3 Deliverables](https://github.com/swent-epfl/public/blob/main/project/M3.md) document.
As mentioned before, the standards for M2 were elevated relative to M1, and this progression continued into M3: we now hold you to the highest professional standard in SwEnt.

For this milestone, we looked at several aspects, grouped as follows:

- Application
- [Completeness](#app-completeness)
- [Functionality](#app-functionality)
- [User Experience](#app-user-experience)
- [Design and Implementation](#design-and-implementation)
- [Testing and CI Pipeline](#testing-and-ci-pipeline)
- Process
- [Documentation](#process-documentation)
- [Autonomy](#process-autonomy)

## App: Completeness

We first evaluated the depth and complexity of the main __epics__ in your app, along with their contribution to the app, the tangible value they provide to the user, and their alignment with the app’s goals.
We evaluated the extent to which your app meets the __course requirements__ articulated at the start of the semester, and whether they are implemented effectively, they integrate seamlessly, and are indeed essential to the app.
We then looked at the __robustness and completeness__ of the different features you implemented: are all the features finished and polished, are they secure and bug-free, and are they thoughtfully designed.


You implemented some meaningful epics, from sending an alert to the profile and the timer.

You met all the requirements, meaningfully integrated the GPS sensor in your app and made your app resilient to offline mode. Good job!

All your features make your app useful for users and provide value, there might be some bugs but overall it is really good!


For this part, you received 6.3 points out of a maximum of 8.0.

## App: Functionality

In this context, we assessed your app's ability to __handle unexpected inputs__ provided by clueless or malicious users (including spamming buttons, entering wrong inputs, stopping a process mid-way, etc.); we wanted to see that your app handles all edge cases gracefully, has comprehensive error handling, and includes robust mechanisms for maintaining stability under stress.

We then evaluated the performance and reliability of the final product, i.e., __the APK__: we wanted to see that your APK is stable and delivers excellent performance, the UI responds quickly and has seamless navigation.

Next we looked into your implementation of __user authentication and multi-user support__: does the app correctly manage users, can users personalize their accounts, does the app support session persistence, are multi-user interactions well supported, can a user recover a lost password, can accounts be used on another device, and is account information preserved when switching devices.


You app is working quite well, but can sometime demonstrate unexpected behavior. We were for example able to accept alert requests in offline mode and add a new alert. And then when coming back online, all the alerts we accepted (even before having no connection), were not accepted anymore. Re-accepting an alert also made the app crash. But otherwise the APK works on our device and is currently used for the timer before the end of the grading session.

The account system is cool, you can modify your information and save your account details. It is however sad that we cannot see people's profile in the alert list to see their reviews and their description.


For this part, you received 5.7 points out of a maximum of 8.0.

## App: User Experience

For this part, we wanted to see how __intuitive and user-friendly__ the app is for real users. Beyond having good usability, did you pay attention to streamlining the interactions, is it easy to figure out, can new users start making good use of the app quickly, are the interaction flows well thought out and refined.


Some of the interactions in your app could be smoothened, for example by adding live input validation instead of waiting to submit the wong inputs, or also help in the input formatting. You could also improve the cues to let the user know when an element is interactable or not. Overall it is good.


For this part, you received 1.2 points out of a maximum of 2.0.

## Design and Implementation

We evaluated whether __your code is of high quality and employs best practices__, is it modular and robust, etc.
We expect the codebase to be polished, well documented, follow consistent conventions, be modular, and allow for easy modifications.
You should be able to employ advanced techniques by now, such as asynchronous functions (flows, coroutines), good resource management, and automated dependency injection (e.g., with Hilt).

We assessed your overall __app architecture and design__, looking in particular at aspects surrounding robustness and scalability.
We looked at both the codebase and the documentation of the app (Wiki and architecture diagram).
We expect your design to demonstrate thoughtful consideration for performance, maintainability, and future growth.


Your code is following good practices. There were still some points of improvements, but the overall architecture and design are good. You could still improve a bit the maintainability.


For this part, you received 6.6 points out of a maximum of 8.0.

## Testing and CI Pipeline

The first aspect we looked at here was your __test suite__, in terms of both quality and the final line coverage.
We expect testing the be rigorous and to cover all components and edge cases, and they should validate every significant user journey.
Line coverage should be getting close to 90%.
Your end-to-end tests should be detailed and include error-handling scenarios.
The tests should be well-documented and easy to maintain.
Finally, your test suite should demonstrate advanced techniques, mock data for performance testing, and automated regression tests.

We then considered the quality of your __repository setup and the CI pipeline__, and how professional it is and how easy it is for new developers to bring contributions to the project.
We expect your repository to have a logical structure, use consistent naming, and take full advantage of CI (code quality checks, linting, formatting, etc.)
Ideally, you should also have automated performance testing, deployment pipelines, and the CI should provide detailed feedback for developers.


You achieved a great coverage of 89%, with meaningful end to end tests. You also did a great setup of the CI with the build mechanism. Good job!!


For this part, you received 7.2 points out of a maximum of 8.0.

## Process: Documentation

We looked at your `README` and GitHub Wiki to evaluate the quality and completeness of __your app’s documentation__. We expect the README and Wiki to be thorough and achieve professional-level clarity and completeness.
They should provide detailed descriptions of the app's architecture, implementation of the features, and the development setup.
We also assessed __your use of Figma and the architecture diagram__ for effective UI design, organization, and app structure planning.
By this stage, we expect your Figma to be complete, up-to-date, and to include UI elements for future features, showing foresight and organization.
The architecture diagram should be comprehensive, providing a clear and detailed overview of the app structure and dependencies.
The architecture should be robust, scalable, and optimized for performance, security, and future development.


You have a great README, Wiki and architecture diagram, we can understand your project quite well, everything is well explained. The figma is also impressive. It demonstrate your commitment to plan all the variants and interactions in the app, following the best practice. Good job!


For this part, you received 3.8 points out of a maximum of 4.0.

## Process: Autonomy

A primary goal of SwEnt is to teach you how to __function autonomously as a team__.
For this part of the evaluation, we assessed you team’s independence, spanning Sprint 6 to Sprint 10, based on the meetings with coaches, Sprint planning, and how you managed risk.
By this stage, coaches should no longer be necessary for the team to operate, i.e., you can organize yourselves, you don't need to be reminded about tasks, and you can conduct the Scrum ceremonies on your own.


You autonomously managed the meeting and demonstrated your proficiency in leading the SCRUM process. You have made great progresses along the semester. Keep on going like that!


For this part, you received 2 points out of a maximum of 2.0.

## Summary

Based on the above points, your intermediate grade for this milestone M3 is 5.10.

The entire SwEnt staff wishes you the very best in your career, and we look forward to seeing you do great things with what you learned this semester.

0 comments on commit 55c9a42

Please sign in to comment.