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 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
- Implementation and Delivery
- Scrum
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 app is functioning well overall, and the features you implemented meet our expectations for this milestone. However, during testing, we noticed a few additional issues that should be addressed to improve the user experience and overall polish of the app:
- All user inputs should be sanitized to prevent long strings from breaking the UI. Currently, someone can input a very long name while signing up.
- Buttons on the map are not adapted to smaller screens.
- The map takes too long to load when clicking on a hike from the main screen.
- The entire app feels laggy, possibly due to the API used or the way navigation is implemented.
- Clicking twice on the back button causes the app to crash.
- Elevation graphs don’t seem to work; their status changes from ‘loading graph’ to ‘no data.’
- The altitude difference feature doesn’t work either and always shows ‘no data.’
- A hike that’s saved and then planned remains saved but does not appear in the ‘saved’ tab.
- The sign up option is too far down on smaller phones and is not clickable because of that.
Please keep in mind that some of these remarks may already be on your radar and planned for future improvements, so feel free to disregard them if they are already being addressed.
For this part, you received 6.3 points out of a maximum of 8.0.
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.
Your Figma is up to date with the app and looks good overall. However, it doesn't have UI parts that will be implemented soon which is a good practice when planning ahead. The architecture diagram is also aligned with your app, but it doesn’t fully follow conventional guidelines. The domain layer should not simply mirror the methods used in the view models. Instead, it should describe the interaction between the UI layer and the Data layer. Make sure to address this for M3.
For this part, you received 3.6 points out of a maximum of 6.0.
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.
Your code looks good overall and follows many good practices. However, some recurring comments from your individual grading feedback apply to the entire project. Firstly, make sure to move all UI strings to a strings.xml file in your resources, rather than using hardcoded strings. This will help create more modular code, especially for screens using the same text, and will also support accessibility features like adapting the text to the user’s preferred language. Additionally, consider adding more documentation for your functions to enhance code readability and make it easier for reviewers, even those outside the project. When tested, the APK did not run smoothly, so this should be a key area of focus moving forward. There are also a few nitpicks that we’ll need to discuss.
For this part, you received 13.4 points out of a maximum of 16.0.
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 and product backlogs are well organized and up to date with the project. To make them even better, consider adding more detailed descriptions for assigned tasks, linking tasks to relevant issues, and integrating user feedback into your product backlog to better prioritize future features and improvements.
For this part, you received 3.6 points out of a maximum of 4.0.
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 team has shown a strong overall performance. The documentation is consistently thorough, meetings are well-structured, and your planning is effective. There’s a clear sense of independence and strong teamwork, with minimal need for external guidance. Keep building on this strong foundation for the next milestone!
For this part, you received 3.8 points out of a maximum of 4.0.
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.
Your team consistently delivered value throughout the sprints, showing clear improvements in features, UI/UX, and app robustness. The steady progress reflects strong organization and focus, resulting in noticeable enhancements to the product. Great job—keep it up!
For this part, you received 2 points out of a maximum of 2.0.
Based on the above points, your intermediate grade for this milestone M2 is 5.09. If you are interested in how this fits into the bigger grading scheme, please see the project README and the course README.
Your coaches will be happy to discuss the above feedback in more detail.
Good luck for the next Sprints!