Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
137 changes: 137 additions & 0 deletions staff-feedback/M1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@

# 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.

Gret Job, all layers are present and well completed.
Diagram is very qualitative and reflects well the architecture of your app, great work.

For this part, you received 5 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.

Safe authentication, good job.
All the API keys are protected and not publicely available.
Request permissions to use camera are needed and present, good job on that.

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

## 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.

Wireframe & Mockup are both present.
The mockup is clean and contains the main screens and features implemented. However the wireframe is incomplete.. It only contains one user story (the authentication user story).
Apart from the fact that there is only one user story in the wireframe, the screens are linked together and you can clearly see how you go from one screen to another.

For this part, you received 12 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).

UI colors and fonts are consistent.
Layout is responsive.

For this part, you received 5 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.

It seems like you tried to configure CI to run Sonar in the test.yml (CI - Test Runner) but not configured properly. Why are there 2 yml files in the workflow? Why is the Quality gate passing on your CI's when there is no code coverage generated?
In the last merge the CI (pull request) was cancelled but in previous merges the CI passes.
Tests are correctly run by the CI.
The coverage is of 75%.
Good job on including multiple meaningul UI tests per screen.
Really good unit tests per repo (many tests) but what is the difference between the 2 files: "FoodItemRepositoryFirestoreTest" and "FoodItemRepositoryFirestormTest".
No tests for BarcodeScannerViewModel or HouseholdViewModel or ListRecipesViewModel.
No end-to-end test...

For this part, you received 21 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.

We have found your app-debug.apk in the releases folder but your CI should automatically build the apk. The artifact is not correctly uploaded.
The APK run well on the device.

For this part, you received 6 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.

It's possible to name multiple households the same (this should not be the case unless correctly justified), UI is a little strange on the overview screen (food items should be cards or something but right now it's not very nice). We have not removed points for these 2 minor bugs
When searching for a recipe, the query is not visible.
Application crashes when opening profile screen. Moreover, when scanning a barcode and submitting it the app crashes.

For this part, you have been penalized -4 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.

Good Team Retro.
Good standup sheet.

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.

You still have not given the elements priorities or sorted them by priority. Moreover, terminated tasks should not be in the product backlog anymore.
Task #48 has not been assigned to anyone and is marked as completed?
Some tasks in your sprint 3 backlog are missing an estimate.
Some tasks in your sprint 3 backlog are missing priority estimates.

For this part, you received 15 points out of a maximum of 20.

Based on the above points, your intermediate grade for this milestone M1 is 4.75. 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!
112 changes: 112 additions & 0 deletions staff-feedback/M2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# 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.


Feature Complexity and Impact: you have some meaningful features that you implemented during this milestone, the recipe screen, sharing households etc.. These features all have good value. Allthough we were not able to test them we saw them work during your demos. For next milestone we believe that you could definitely develop even more new features, we feel like there was alot during M1 and then much less during M2 (we are aware that you spent alot of time on testing and achieving such high line coverage).

Feature Completeness: We were not able to see whether your new features are bug free or not but from what we saw during your demo the new features developed during this milestone are functional and allow good user experience

Feature value: you select the features you wish to implement well and they are usually well aligned with your app and its goals, well done


For this part, you received 5.7 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.


Good Figma. As we were not able to test your app we were not able to compare if your Figma was up to date with your real app so we relied on our memories that we had from the last demo that you showed us.

Great app architecture! Well done


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 your code quality is good and the codebase is well documented. Be careful sometimes we spoted some hardcoded strings/TODO's or other inconsistency callbacks/coroutines (this was specified in your individual feedbacks). Well done on achieveing such high coverage on your code, keep it up! Your end to end tests need to start the app from MainActivity. You should not be setting any views. Please update this for next milestone because your current end to end tests are not maintainable.

Your APK was not stable enough for us to test your app; we were not able to login with google on the phone with the APK. It's really important to test that you have a working APK generated by the CI because you know that we will use it to test your app


For this part, you received 12.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.


Your sprint backlog is good but minimal. Your tasks don't all have descriptions and many of them necessitate a description because neither of us coaches were able to understand specifically what the task consisted in (ex: #176). Good workload balance and nice job on assigning people to all tasks.

Your product backlog is a little messy. You have put some tasks in the product backlog (tasks don't belong in the product backlog, only epics and user stories). Moreover your epics and user stories in the product backlog don't have any order (priority), you should have priorities for your epics and user stories that go with them. You had the exact same feedback for M1 and it seems like you did not take it into account


For this part, you received 2.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.


Your scrum documents (team retro's and Stand up's) seem to all have been created and modified during the last 2 days before the deadline. Remember that you should be writing these documents once per week. More specifically, the stand up meetings should be filled in duriing one of your personal weekly meetings while the sprint retro should be completed by someone, maybe the product owner of the week, during the sprint retro that we do with you during our friday meetings.

Concerning our scrum meetings, we feel like we can advance well with you, well done! For the next meetings (until the end of the course) we expect more autonomy during meetings from you. This means that we coaches should not have to intervene much anymore. You start with the demo, then you move onto the sprint review, then the sprint retro and finally the sprint planning (as discussed, you can do the planning before the meeting and just do a final check up during the meeting so we can also see that everyone knows what they will be working on). The scrum master should mediate the meeting (as David and I were doing). Don't hesitate to ask us if you don't understand what we mean.


For this part, you received 3.4 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.


You have delivered great value towards the app during this milestone M2 and M1, well done! Keep up the great work and now that midterms are behind you we expect to keep seeing continuous work from you towards your app


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 4.84. 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!
Loading
Loading