diff --git a/staff-feedback/M1.md b/staff-feedback/M1.md new file mode 100644 index 00000000..be7288f7 --- /dev/null +++ b/staff-feedback/M1.md @@ -0,0 +1,121 @@ + +# SwEnt Milestone 1 Feedback + +This first milestone M1 serves as a checkpoint at which we provide you with formal feedback on how you are coming together as a team, organizing yourselves, adopting good software engineering practices, and making progress toward delivering incremental value to your users. This is meant to complement the informal, ungraded feedback from your coaches given during the weekly meetings or asynchronously on Discord, email, etc. + +The goal of our evaluation is not to assess whether you are top-tier Android developers or software testers, this will be assessed in earnest in subsequent milestones, once you've had the opportunity to gain experience and acquire the relevant skills. You can find the evaluation criteria in the [M1 Deliverables](https://github.com/swent-epfl/public/blob/main/project/M1.md) document. + +We looked at several aspects, grouped into three categories: app design, app quality & delivery, and Scrum. + +- [App Design](#app-design) + + - [Architecture](#architecture) + + - [Implementation](#implementation) + + - [Figma](#figma) + + - [UI](#ui) + +- [Quality & Delivery](#quality-&-delivery) + + - [Automated Testing](#automated-testing) + + - [Automated Delivery](#automated-delivery) + + - [End-to-End Application Behavior](#end-to-end-application-behavior) + +- [Scrum](#scrum) + + - [Documents](#documents) + + - [Backlogs & Planning](#backlogs-&-planning) + +# App Design + +## Architecture + +We looked at the high-level design of your app. We checked whether the UI, data layer, and corresponding dependencies are present. We evaluated whether your architecture diagram is of good quality and reflects the architecture of the app. + +The structure is clear but try to add a bit more detail about what the QuickFixes Data is. Also for next time try to improve on the look. For next time upload it directly in the wiki or README + +For this part, you received 4 points out of a maximum of 5. + +## Implementation + +We looked at several implementation aspects, such as whether authentication is done safely, whether all sensitive data is properly safeguarded using crypto and secure APIs, and whether the permissions requested by your app are truly needed. + +Privacy and security is handled well in the app + +For this part, you received 4 points out of a maximum of 4. + +## Figma + +We reviewed how you used Figma in these first Sprints of your project. We took into account whether you had done wireframes and mockups, whether these contained the main application flows and the core features, and whether the screens were linked. Overall, we wanted to see whether it's clear how the pieces work together. + +The mock up is outstanding! Probably one of the best in Swent, it's going to make the rest of your developpement so much easier. +You could improve your wireframe, it is not clear what screens are related to what compared to the mockup and it is also very minimalistic. + +For this part, you received 14 points out of a maximum of 15. + +## UI + +We checked whether the elements of your app's UI are consistent (fonts, colors, etc.) and whether the layout is responsive (i.e., adapts to different screen sizes and orientations). + +Sadly your UI is completely absolute, you should declare it with relative values in the future using modifier such as weight like we discussed in last meeting. This doesn't take away from the awesome look though! + +For this part, you received 3 points out of a maximum of 5. + +# Quality & Delivery + +## Automated Testing + +We looked at whether you configured your CI to integrate with Sonar, whether your CI passes, and of course whether your CI automatically runs the test suite. Then we checked the statement coverage achieved by your test suite. We also looked at whether you have at least one meaningful UI test per screen, one meaningful unit test per repository, one meaningful unit test per view-model, and one meaningful end-to-end test. + +You've managed to get 92.6% coverage, that's really impressive. Great job! +We saw one end2end test on Main Activity, but there isn't any navigation and it so it's more of a big UI test. + +For this part, you received 29 points out of a maximum of 33. + +## Automated Delivery + +We checked whether you have set up your CI to automatically build the APK, and it does so successfully. We also wanted to see if the APK could be installed and run on a real device. + +The workflow builds the APK successfully +The apk runs smoothly on coach's phone. + +For this part, you received 7 points out of a maximum of 7. + +## End-to-End Application Behavior + +We then interacted with your app manually, this was fun. We flagged any problems we encountered, such as crashes or bugs, and we classified the bugs into minor vs. major bugs. + +The rotation of the app makes the bottom bar disappear + +For this part, you have been penalized -1 points. + +# Scrum + +## Documents + +The main things we looked for was whether you documented your team Retrospective and Stand-Up in a timely and thorough manner. + +You always completed your SCRUM process documents thoroughly and honestly. +You did 2 standups for sprint 2 which is great, keep up with the good pace! + +For this part, you received 10 points out of a maximum of 10. + +## Backlogs & Planning + +We analyzed your product backlog, Sprint 3 backlog, and the Scrum board. For the PB, we checked whether it was up-to-date and whether you had populated it with user stories for the first epic and for a second epic. For the Sprint 3 backlog, we looked at whether it was up-to-date and whether the task descriptions were clear. We looked at whether tasks were assigned, whether they had a time estimate, and whether they had a priority. Finally, we evaluated whether your +Scrum board was up-to-date and ready for Sprint 3. + +Your product backlog is full of great ideas, epics are well defined and we can see a clear path for your app's development. One small nitpick however is that you should add clearer description of the your tasks + +For this part, you received 17 points out of a maximum of 20. + +Based on the above points, your intermediate grade for this milestone M1 is 5.39. If you are interested in how this fits into the bigger grading scheme, please see [project README](https://github.com/swent-epfl/private/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! diff --git a/staff-feedback/M2.md b/staff-feedback/M2.md new file mode 100644 index 00000000..1239e355 --- /dev/null +++ b/staff-feedback/M2.md @@ -0,0 +1,108 @@ +# 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. + + +The APK itself doesn't have many real backend features connected to it, most buttons don't do anything which is a pity considering all the UI work has been done. +Every feature you've done so far is close to complete but on its own! You only have to make your app work as a whole now. +For M2, some of your core features are missing, for example the algorithm linking a worker and user is lacking which should have been a high priority task from the start. + + +For this part, you received 5.4 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. + + +As always your figma is great! Make sure to check the layout on smaller screens as there are still small visual bugs. Also make sure to popBack the navigation stack after you successfully login. Also you could try to find a color scheme with a bit more constrast for the dark mode screen. +The architecture diagram is okay, it could be rendered with a bit more care to improve clarity. Also you forgot to add chats to your model data. + + +For this part, you received 4.8 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. + + +Overall the codebase is clean, you've really gotten the hand of jetpack compose and do a great job of extracting different composables to avoid duplication. Some areas of improvement would be to start cleaning out dangling strings with stringResources, stop commmenting out tests just to merge a PR, and start documenting your backend a bit more. + +Sadly we couldn't find any end-to-end tests, you still have your one main activity test from M1 that is more of a large UI test. An end to end test should go through a complete user flow (login -> go to search screen -> click on a subcategory). Also try to improve your test directory structure, we did not understand the difference betwen ui and kaspresso (a end-to-end folder would be nice). +For the testing part you did a great job, you make sure to test multiple use cases, you achieved a phenomal 93% coverage and you even setup the firebase emulator. + +The APK ran seamlessly, without any performance issues. Nice animations! + + +For this part, you received 14.8 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. + + +Overall you understand well how to use the Scrumboard as a helping productivity tool, but there is room for improvement on sprint tasks mainly, don't forget to add estimated time, and maybe plan a bit more tasks per sprint, for instance when doing figma, create a task for it seperate from the UI task. + + +For this part, you received 3.2 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. + + +Overall, your scrum process is good, you can put a bit more effort in the team retrospective, this will help find issues hindering the team's productivity and make future development more comfortable. Our Friday meetings are good, but you should try to be a bit more ponctual across all team members. Your team lacks a bit of management from week to week, try to see how the scrummaster finds each week ways to make the sprint make more sense, basically try to find a way of making your team work better as a whole, we are just proposing the concept of scrummaster since this is the purpose of this course. + + +For this part, you received 3 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. + + +Each sprint you've made pretty good progress on your app. You always arrive at the demo with new things to show. Good work! + + +For this part, you received 1.8 points out of a maximum of 2.0. + +## Summary + +Based on the above points, your intermediate grade for this milestone M2 is 5.12. 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! diff --git a/staff-feedback/M3.md b/staff-feedback/M3.md new file mode 100644 index 00000000..60dbb0d2 --- /dev/null +++ b/staff-feedback/M3.md @@ -0,0 +1,125 @@ +# 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 made a very good app in the end with a lot of unplanned features in sprint 10 :). All app requirements were met (offline mode, auth, cloud services and phone sensors). When testing your APK, we encountered some bugs all accross the app which sometimes hindered a bit the app's usability. For instance buttons hidden due to the app not being very responsive or the menu suddenly disappearing when navigating. UI-wise your app looks great and you really made a close to finished product on that side. + + +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. + + +The APK ran pretty smoothly overall, but a couple of small bugs got in the way of usability a bit. It’s probably because it wasn’t tested on an Android phone. Some UI elements were a bit off, like navigation shaking between screens or button hitboxes not lining up with the UI, etc,... +The account management system you built is solid, it’s easy to switch between accounts, though we couldn’t find a delete account feature. On the resilience side, user input handling is very good, and the text field error messages provide clear feedback. + + +For this part, you received 6.9 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 user experience is good, the menu with its transition is cool and works well with the different screens for the user to understand the goal of your app. However, there are some screens with a lot of info/buttons linked or not with a backend feature that make the app hard to understand at first glance. + + +For this part, you received 1.8 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 quality overall was a bit better during M2 than for M3, you were modularising some functions more often and spending more time making the code cleaner. The app's backend architecture is well thought which makes it scalable and easily maintanable. You have put thought in it to make it very good. + + +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. + + +Testing wise, you did an excellent job, achieving 89.9% coverage with many meaningful tests. The end-to-end tests are well-designed and cover a good portion of user flows. +The CI is well set up, you’re effectively using the Firebase emulator, and the repo is organized with a good structure. + + +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 wiki is very detailed and very good overall. Your README could have more info about you as a team and also could have images promoting the app. Your figma and architecture diagram are very good, nothing much to say about them, you put a lot of effort into the figma obviously and were using it through the semester very well as you main UI design tool. + + +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. + + +Your team was pretty autonomous, but there’s room to improve structure and consistency in your Scrum process. Some sprints felt a bit disorganized, with fluctuating workloads, some sprints have a massive output, while others are bit less productive. + + +For this part, you received 1.5 points out of a maximum of 2.0. + +## Summary + +Based on the above points, your intermediate grade for this milestone M3 is 5.31. + +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