From e062e5644e3473f193c8684a40908cc6593bc3ce Mon Sep 17 00:00:00 2001 From: Alexandre Goumaz Date: Sun, 24 Nov 2024 18:32:41 +0100 Subject: [PATCH 1/2] Release M2 team report --- staff-feedback/M2.md | 114 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 staff-feedback/M2.md diff --git a/staff-feedback/M2.md b/staff-feedback/M2.md new file mode 100644 index 00000000..c5fdceef --- /dev/null +++ b/staff-feedback/M2.md @@ -0,0 +1,114 @@ +# Milestone M2: Team Feedback + +This milestone M2 provides an opportunity to give you, as a team, formal feedback on how you are performing in the project. By now, you should be building upon the foundations set in M1, achieving greater autonomy and collaboration within the team. This is meant to complement the informal, ungraded feedback from your coaches given during the weekly meetings or asynchronously on Discord, email, etc. + +The feedback focuses on two major themes: +First, whether you have adopted good software engineering practices and are making progress toward delivering value to your users. +Is your design and implementation of high quality, easy to maintain, and well tested? +Second, we look at how well you are functioning as a team, how you organize yourselves, and how well you have refined your collaborative development. +An important component is also how much you have progressed, as a team, since the previous milestone. +You can find the evaluation criteria in the [M2 Deliverables](https://github.com/swent-epfl/public/blob/main/project/M2.md) document. +As mentioned in the past, the standards for M2 are elevated relative to M1, and this progression will continue into M3. + +We looked at several aspects, grouped as follows: + + - Design + - [Features](#design-features) + - [Design Documentation](#design-documentation) + - [Implementation and Delivery](#implementation-and-delivery) + - Scrum + - [Backlogs Maintenance](#scrum-backlogs-maintenance) + - [Documentation and Ceremonies](#scrum-documentation-and-ceremonies) + - [Continuous Delivery of Value](#scrum-continuous-delivery-of-value) + +## Design: Features + +We interacted with your app from a user perspective, assessing each implemented feature and flagging any issues encountered. Our evaluation focused mainly on essential features implemented during Sprints 3, 4, and 5; any additional features planned for future Sprints were not considered in this assessment unless they induced buggy behavior in the current APK. +We examined the completeness of each feature in the current version of the app, and how well it aligns with user needs and the overall project goals. + + +You have implemented some complex features, namely the map and Spotify integration. These are your core features which shows that your are focus on your core features, however please do not spend too much effort on the styling of your app until your core features are mature. +Your app contains a lot of hard-coded values, which is fine for a demo, but you should quickly replace them. +Note that when connecting to the app with the Spotify account linked and the Spotify application opened and playing on another device, the output device on which the music is played changes. + + +For this part, you received 6.3 points out of a maximum of 8.0. + +## Design: Documentation + +We reviewed your Figma (including wireframes and mockups) and the evolution of your overall design architecture in the three Sprints. +We assessed how you leveraged Figma to reason about the UX, ensure a good UX, and facilitate fast UI development. +We evaluated whether your Figma and architecture diagram accurately reflect the current implementation of the app and how well they align with the app's functionality and structure. + + +The Figma is very complete and very detailed, well done. +The architecture diagram provide a clear overview of the app structure. + + +For this part, you received 5.4 points out of a maximum of 6.0. + +## Implementation and Delivery + +We evaluated several aspects of your app's implementation, including code quality, testing, CI practices, and the functionality and quality of the APK. +We assessed whether your code is well modularized, readable, and maintainable. +We looked at the efficiency and effectiveness of your unit and end-to-end tests, and at the line coverage they achieve. + + +The quality of the code is overall good, with a good use of the MVVM pattern and code injection. +You are lacking documentation on interfaces and models (data classes), documentation is especially important for these components as there is no code accompanying them that you could look at. +The model/spotify/objects folder name is too generic, you should avoid such "fourre-tout" names. +You have some icons defined in code (in ui/navigation/Icons.kt), these should be in the res folder (in .xml files for example). + +Your code coverage is very high (94.7% bravo !). However it seems that you don't have any end-to-end tests, even worse, that you had one and removed it. Please rectify this immediately. + +Your app works smoothly, we didn't find any usability issue, the UI is consistent and match the Figma. However, given that you did not build the APK in time, we applied a penality of 5% to the overall grade. + + +For this part, you received 11 points out of a maximum of 16.0. + +## Scrum: Backlogs Maintenance + +We looked at whether your Scrum board is up-to-date and well organized. +We evaluated your capability to organize Sprint 6 and whether you provided a clear overview of this planning on the Scrum board. +We assessed the quality of your user stories and epics: are they clearly defined, are they aligned with a user-centric view of the app, and do they suitably guide you in delivering the highest value possible. + + +Your sprint backlog was well prepared for Sprint 6, with time estimates and epic, however you should make sure that all issues are assigned to someone. +Your product backlog has been refined since M1 and is up to date. + + +For this part, you received 3.6 points out of a maximum of 4.0. + +## Scrum: Documentation and Ceremonies + +We assessed how you used the Scrum process to organize yourselves efficiently. +We looked at how well you documented your team Retrospective and Stand-Up during each Sprint. +We also evaluated your autonomy in using Scrum. + + +Your SCRUM documents are always produced on time and used pretty effectively, although the stand up mintues tends to be minimalist. +The meetings are globally well structured, but some of you should try to stay more focused, also you should prepare more your demo. +You showed autonomy in your decisions regarding the evolution of the app and how you work on it. + + +For this part, you received 3.6 points out of a maximum of 4.0. + +## Scrum: Continuous Delivery of Value + +We evaluated the Increment you delivered at the end of each Sprint, assessing your team’s ability to continuously add value to the app. +This included an assessment of whether the way you organized the Sprints was conducive to an optimal balance between effort invested and delivery of value. + + +Whlie you were able to deliver value over the duration of the milestone, you tend to have all the team stuck when facing issues (for example with Spotify). +You should be more flexible in your planning to make sure to make progress even when facing issues. + + +For this part, you received 1.2 points out of a maximum of 2.0. + +## Summary + +Based on the above points, your intermediate grade for this milestone M2 is 4.89. If you are interested in how this fits into the bigger grading scheme, please see the [project README](https://github.com/swent-epfl/public/blob/main/project/README.md) and the [course README](https://github.com/swent-epfl/public/blob/main/README.md). + +Your coaches will be happy to discuss the above feedback in more detail. + +Good luck for the next Sprints! From 4b9579664de5498858db5d00f620ca555f45360b Mon Sep 17 00:00:00 2001 From: Alexandre Goumaz Date: Sat, 21 Dec 2024 19:58:24 +0100 Subject: [PATCH 2/2] Release M3 team report --- staff-feedback/M3.md | 137 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 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..6bfd822e --- /dev/null +++ b/staff-feedback/M3.md @@ -0,0 +1,137 @@ +# 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 app fully implements multiple epics, their implementation aligns well with the app's goal and include some complex features. + +The app meets all the course requirements, are well integrated and show advance usage, especially the integration of the Spotify API. + +All the features you developped are complete and polished, great job ! + + +For this part, you received 7.4 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. + + +The app is robust, note that you can have an empty display name, but not an empty username, which is unintuitive. + +The APK is stable and performant, the UI is smooth and responsive. + +The user can create multiple accounts, from multiple authentication providers, It supports multi user interactions. + + +For this part, you received 7.4 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 application is intuitive to use, the UI is very clean and consistent. The interaction flows are clear and simple. + + +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. + + +The codebase is overall clean, it lacks some documentation on some of the models and interfaces, some UI code is slightly messy. The codebase includes some advanced features, such as the Firestore transactions. + +The architecture is well thought, just a minor consideration: you are completely depended on the Spotify API and including another music provider might prove difficult. + + +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 4 end-to-end tests and achieves 93% line coverage over the whole codebase, well done! + +The repository is professional, the CI is setup to build the APK on trigger additionnaly to running tests. + + +For this part, you received 7.6 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. + + +Your README contains the most important informations and relevant links. + +The FIgma is extremely complete and detailed, very impressive. The architecture diagram is very complete, just node that the view models should be in the UI layer. + + +For this part, you received 3.5 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. + + +Your team is autonomous and we don't need to intervene anymore. + + +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.64. + +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