From a7e8d541e2ac5927feebec881130c8ebb3e4fe3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Chaverot?= Date: Sat, 21 Dec 2024 19:32:06 +0100 Subject: [PATCH] [M3 Grading] Add staff feedback for Milestone 3 --- staff-feedback/M3.md | 142 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 staff-feedback/M3.md diff --git a/staff-feedback/M3.md b/staff-feedback/M3.md new file mode 100644 index 00000000..052d58df --- /dev/null +++ b/staff-feedback/M3.md @@ -0,0 +1,142 @@ +# 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. + + +- Your application presents multiple epics that are all fully implemented. Their implentation exceed expectations with innovation and advanced features. All the features add exceptional value to the application, you can be proud of yourselves ! + +- The four requirements (offline mode, multiple users and authentication, cloud service, and phone sensors) are well-implemented, reliable, and all enhance the app’s functionality significantly. Removing any of these requirement would significantly reduce the value of the app, good work ! + +- All the features added are polished, secure, and ready for public release. They demonstrate exceptional quality and innovation, well done ! + + +For this part, you received 8 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 fixed the problem with the bottom navigation bar we observed during the M2 grading. +- When submitting a recording to the API with the APK, we had the following error the first time: _There was an error when issuing the HTTP request_. But then it worked flawlessly. + +- Your application is resilient, with comprehensive error handling for edge cases and unexpected inputs. + +- The APK is fully stable and performs well. The UI is really responsive and the app reacts really fast, offering a smooth user experience. + +- Account management is seamless. Users can create and manage accounts. The app supports, multi-user interactions, session persistence and a switch of device, well done ! + + + +For this part, you received 7.2 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. + + +- The UI in the offline mode could be fixed a little. But overall the application is intuitive and proved a smooth and enjoyable user experience. New users should be able to use the application effectively really quickly, well done ! + + +For this part, you received 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. + + +- We still find some composables or functions where the docstring is not complete or with the parameters not described. But overall the codebase is well documented, polished and follows conventions. It is modular and allows easy modifications. Well done ! + +- The architecture is robust, scalable, and adheres to best practices. It demonstrates thoughful consideration for performance, maintainability, and future growth. Good work ! + + +For this part, you received 7.2 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. + + +- The project contains four end-to-end tests which are all robust and validate complex workflows, well done ! The global line coverage is of 86%, good work ! + +- The repository is highly professional, with a logical structure, consistent naming, and extensive CI features. The CI pipeline includes additional features like code quality checks (e.g., linting, formatting). + + + +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. + + +- The project ReadMe and wiki are polished, professional and thorough. They include detailed descriptions of the application architecture, feature implementation and development setup, well done ! + +- The Architecture diagram has been improved a lot, well done it is now really clear and completely reflect the application ! The Figma also is up to date with the application (we spot the sentiment analysis score still showing that has been removed in Sprint 10, but no big deal) and we can see all the screens available in your project. + + +For this part, you received 3.6 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. + + +- We rarely need to intervene anymore, your team is self-sufficient, effectively managing the Scrum process independently, well done ! + + +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.65. + +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. \ No newline at end of file