Brief
As a team, contribute directly to a real-world open source project by collaborating with the repository owner. The specific project selected will vary, and be assigned by your coach. The main focus will be on problem-based learning and adapting to new technologies with a real production deadline. The project will follow the Agile Scrum methodology and will be managed using GitHub Projects.
Timeline
The project will span seven weeks in total:
- Week 1 (Discovery Phase): This is a preparatory phase where students will familiarise themselves with the project’s scope, objectives, and potential technologies. They will also set up their development environment, research, and plan the initial work.
- Weeks 2-3 (Sprint 1), Weeks 4-5 (Sprint 2), and Weeks 6-7 (Sprint 3): Each sprint will last for two weeks. In each sprint, students will plan, design, develop, test, and review their work. Regular stand-up meetings will be held to track progress and address any blockers. Each sprint will end with a sprint review and retrospective to reflect on what went well and what could be improved.
Roles
- Developers: Students work as developers, actively identifying and addressing issues, learning new technologies, collaborating, and contributing to the project’s development. They are also responsible for documenting their work and reflecting on their learning experience.
- Scrum Master: Teacher/Coach will act as a Scrum Master, facilitating the process, assisting students in resolving blockers, and providing general guidance. They will also provide a statement for each student at the end of the project as part of the marking process.
Assessment
Students will be assessed based on a 10-point self-assessment guideline, emphasising issue handling, problem-solving, learning new technologies, collaboration, documentation, contribution to the project, professionalism, and reflection.
The Scrum Master will provide a written statement for each student confirming the accuracy of the student’s own submission and some notes on performance throughout the process. Grading will be done by another teacher who was not directly involved in the process.
Delivery
- A link to your github profile
- A list of all issues you were assigned
- A list of all issues you raised
- A written or recorded reflection
- GitHub Projects: This will be used for project management, including issue tracking, task assignment, and progress tracking. It will also be used for code hosting, version control, code reviews, and documentation.
- Communication tools: Regular communication will be facilitated through tools like Discord or Microsoft Teams for discussion, collaboration, and stand-up meetings.
This project aims to provide students with an immersive learning experience that closely simulates real-world workplace environments. By the end of this project, students should have gained valuable skills and experiences that can be carried into their future professional roles.
I have effectively identified valid issues and ideas for the project, demonstrating my understanding of the project, its requirements, future, and its potential problems.
I have clearly and comprehensively articulated the issues in the issue creation documentation, including a clear description of the issue, steps to reproduce it (if applicable), and potential impact on the project.
I have demonstrated good problem-solving skills in my approach to fixing issues, showcasing my creative thinking, logical reasoning, and appropriate application of technologies.
My code is well-written, maintainable, and effective in resolving the issues, following good coding practices and standards.
I have effectively learned and applied new technologies in the project, as evidenced by the complexity of the tasks I’ve handled and the effectiveness of the solutions I’ve provided.
I have collaborated effectively with others, as evident from my interactions on the issue tracking system and the teacher’s statement. I have demonstrated good communication skills, teamwork, and respect for others’ ideas
My work is well-documented, with clear comments in code, well-written commit messages, and comprehensive documentation of the issues I’ve handled.
I have reflected on my learning experience and demonstrated growth over the course of the project, as assessed from my self-evaluation and the teacher’s statement.