forked from MIT-Emerging-Talent/ET6-practice-code-review
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c62518f
commit d97c198
Showing
29 changed files
with
1,154 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,156 @@ | ||
<!-- this template is for inspiration, feel free to change it however you like! --> | ||
|
||
# Retrospective | ||
# Project Retrospective: The Matrix 🕶️ | ||
|
||
## Stop Doing | ||
## Project Highlights 🌟 | ||
|
||
## Continue Doing | ||
### 1. What Went Well during the project? ✅ | ||
|
||
## Start Doing | ||
- **Collaboration Successes** 🤝 | ||
|
||
## Lessons Learned | ||
The team worked cohesively, leveraging each other’s strengths to accomplish | ||
project goals.Effective communication and collaboration ensured | ||
tasks were completed efficiently. | ||
|
||
______________________________________________________________________ | ||
- **Supportive Environment** 💪 | ||
A strong sense of mutual support within the team helped overcome | ||
challenges and maintain momentum throughout the project. | ||
|
||
## Strategy vs. Board | ||
- **Tools and Workflows** 🛠️ | ||
|
||
### What parts of your plan went as expected? | ||
- Despite initial learning curves, the team successfully mastered the use of | ||
the project board to organize and manage tasks efficiently by the end of the | ||
project. | ||
- The team collaborated effectively on GitHub, utilizing pull requests (PRs) | ||
for thorough code reviews and ensuring high code quality. | ||
|
||
### What parts of your plan did not work out? | ||
- **Regular Updates** 🔄 | ||
|
||
### Did you need to add things that weren't in your strategy? | ||
Regular stand-ups and progress updates kept everyone aligned, | ||
ensuring clarity on priorities and reducing misunderstandings. | ||
|
||
### Or remove extra steps? | ||
### 2. Achievements 🏆 | ||
|
||
**Over 300 commits were achieved in under two weeks**, showcasing the team’s | ||
efficiency and dedication. Furthermore, **the team mastered GitHub workflows**, | ||
such as pull requests and code reviews, while **enhancing collaboration and** | ||
**teamwork skills** through the effective use of communication and task management | ||
tools. | ||
|
||
--- | ||
|
||
## Stop Doing 🚫 | ||
|
||
- Resolving merge conflicts independently without collaborating to | ||
ensure all changes are integrated smoothly. | ||
- Submitting code without thorough testing, which led to integration issues. | ||
- Writing overly technical descriptions in issue tickets, making it difficult | ||
for non-programmers to understand. | ||
- Spending too much time solving problems independently | ||
instead of seeking help when needed. | ||
|
||
--- | ||
|
||
## Continue Doing ✅ | ||
|
||
- Maintaining mutual support and collaboration. | ||
- Documenting progress to ensure transparency and alignment within the team. | ||
- Regularly using GitHub to track progress and organize tasks, | ||
leveraging branches and pull requests for better organization. | ||
- Using majority rule through polls to resolve differences of opinion. | ||
|
||
--- | ||
|
||
## Start Doing 🚀 | ||
|
||
- Utilize GitHub’s discussion feature more effectively in future projects. | ||
- Systematically record key learnings in the notes document. | ||
- Keep track of changes that impact the entire group. | ||
- Delete obsolete branches promptly after pull request reviews. | ||
- Establish higher standards for pull requests, testing, and communication. | ||
|
||
--- | ||
|
||
## Challenges Encountered ⚠️ | ||
|
||
### Key Pain Points 🔑 | ||
|
||
- Communication and coordination difficulties. | ||
- Technical issues, such as pull request problems and CI check failures. | ||
- Challenges in maintaining consistency across the codebase. | ||
|
||
### Specific Examples 📌 | ||
|
||
- Availability challenges: Team members were not always | ||
available simultaneously, causing occasional delays. | ||
- Misalignment in task requirements and expectations, leading to inefficiencies. | ||
- Early misuse of the project board hindered task organization. | ||
- Frustrations with resolving merge conflicts and CI failures. | ||
- Instances of working on the wrong project or branch, resulting in delays and corrections. | ||
- Some team members encountered communication barriers, including challenges in | ||
conveying desired code changes effectively due to language differences. | ||
- Connectivity issues limited access to essential online resources. | ||
|
||
--- | ||
|
||
## Lessons Learned 🎓💡 | ||
|
||
### Insights Gained 🔍 | ||
|
||
- Developed a deeper understanding of effective code review practices. | ||
- Enhanced proficiency in GitHub workflows and tools. | ||
- Recognized the importance of constructive feedback and clear communication | ||
for collaboration success. | ||
|
||
### Specific Learnings 📚 | ||
|
||
- Improved communication skills, enabling clearer expression of ideas and insights. | ||
- Learned to request code changes effectively and provide precise, | ||
constructive feedback during reviews. | ||
- Gained expertise in managing merge conflicts proactively with proper workflows. | ||
- Emphasized the importance of regular check-ins to keep the team aligned. | ||
- Discovered the value of teamwork, flexibility, and adaptability in overcoming challenges. | ||
|
||
--- | ||
|
||
## Strategy and Board 📋 | ||
|
||
### What parts of your plan went as expected? ✔️ | ||
|
||
- Successfully completed the expected number of challenges. | ||
- Effectively utilized collaboration and communication tools to share resources | ||
and coordinate tasks efficiently. | ||
- Used GitHub and VS Code as expected, leveraging their features like cloning | ||
repositories, creating pull requests, labeling issues, and tracking tasks. | ||
- Fostered a supportive team environment where members were willing to assist | ||
and support one another. | ||
|
||
### What parts of your plan did not work out? ❌ | ||
|
||
- Merge conflicts were not managed effectively, resulting in delays. | ||
- Communication gaps and language barriers led to duplicated efforts and | ||
inconsistencies during code integration. | ||
- Inefficient use of the project board workflow during early stages hindered organization. | ||
- Time management expectations were not fully met, with the initial voluntary | ||
deadline being missed. | ||
- Resolving errors and CI check failures took more time than anticipated. | ||
|
||
--- | ||
|
||
## Actionable Items for Future Projects 📈🎯 | ||
|
||
- Develop a standardized process for pull requests and code reviews. | ||
- Implement regular check-ins or progress-tracking meetings, ensuring | ||
unresolved challenges are documented for follow-up. | ||
- Foster proactive communication and hold more frequent meetings to ensure | ||
alignment and address challenges. | ||
- Establish detailed plans with clearly defined milestones, schedules, and | ||
deadlines for each project phase. | ||
|
||
--- | ||
|
||
## Collective Reflection 🤝✨ | ||
|
||
The team collaborated effectively despite facing challenges, achieving | ||
significant progress. Moving forward, improved planning, enhanced communication | ||
and efficient task management will ensure smoother execution and even greater success. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
""" | ||
Group: ET6-foundations-group-16 | ||
Author:Majd Abualsoud | ||
Date: January 11, 2025 | ||
This module provides a function to calculate the area of a circle given its radius. | ||
""" | ||
|
||
import math | ||
|
||
|
||
def area_of_circle(radius: float) -> float: | ||
""" | ||
Calculate the area of a circle given its radius. | ||
Args: | ||
radius (float): The radius of the circle. Must be a non-negative number. | ||
Returns: | ||
float: The area of the circle. | ||
Raises: | ||
ValueError: If the radius is negative. | ||
Examples: | ||
>>> area_of_circle(1) | ||
3.141592653589793 | ||
>>> area_of_circle(0) | ||
0.0 | ||
>>> area_of_circle(2.5) | ||
19.634954084936208 | ||
""" | ||
if radius < 0: | ||
raise ValueError("The radius must be a non-negative number.") | ||
|
||
return math.pi * radius * radius |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
#!/usr/bin/env python3 | ||
# -*- coding: utf-8 -*- | ||
""" | ||
A module for finding the common elements between two input lists. | ||
Created on 11/1/2025 | ||
@author: Mohamed Altayeb | ||
Group: ET foundations group 16 (Matrix) | ||
Module functions: | ||
- common_elements: finds the common elements between two lists. | ||
""" | ||
|
||
|
||
def common_elements(list1: list, list2: list) -> list: | ||
""" | ||
Compares two input lists and returns a list that contains | ||
all the common elements between the two input lists without repeating | ||
the common elements if they are duplicated in the input lists: | ||
Arguments: | ||
list1 (list): the first list we want to compare. | ||
list2 (list): the second list we want to compare. | ||
Returns-> list: A list containing all common elements between two input lists, | ||
the returned list will have the common elements of the first input list | ||
followed by the common elements of the second input list. | ||
Raises: | ||
AssertionError: if inputs are not lists. | ||
>>> common_elements([1,2,3,4,5,6] , [4,5,6,7]) | ||
[4, 5, 6] | ||
>>> common_elements(["c", "a", "r"] , ["c", "a", "t"]) | ||
['c', 'a'] | ||
>>> common_elements([[1,2] , [2,3,4], ["mohamed"]] , [["mohamed"], [1,2,3], [2,3,4], [4,5,6]]) | ||
[[2, 3, 4], ['mohamed']] | ||
""" | ||
# Ensure both inputs are lists | ||
if not isinstance(list1, list) or not isinstance(list2, list): | ||
raise AssertionError("Both inputs must be lists") | ||
|
||
common_list_no_duplicates = [] | ||
|
||
# Iterate through elements of the first list | ||
for element1 in list1: | ||
# Iterate through elements of second list comparing | ||
# each element in the second list to the element in the first list | ||
for element2 in list2: | ||
if element1 == element2 and element1 not in common_list_no_duplicates: | ||
# Add the element to the resultant list | ||
common_list_no_duplicates.append(element1) | ||
|
||
# Return the resultant list with common elements with no duplicated elements | ||
return common_list_no_duplicates |
Oops, something went wrong.