Skip to content

Yana's OnboardingΒ #501

@ivilarop

Description

@ivilarop

Welcome to the team!

To start onboarding, I have prepared important information and some tasks so you can start getting familiar with the project.

πŸ“Œ General Description

The Project Phase is designed to be the ideal complement to enhance the skills you have acquired in both the Fundamentals of Programming and Specialization phases.

This phase will fully prepare you for job searching, as you will work in a team, simulating the daily tasks of a programming company.

The team will be multidisciplinary, with members specialized in frontend and backend development.

To ensure the successful development of the project, you will have the Project Mentor, who will accompany you throughout the process and act as a Senior-level professional, offering support when facing difficulties. Additionally, the team will have a Scrum Master, responsible for facilitating the Agile work methodology and ensuring efficient and productive teamwork.

Benefits of Participating in the Project Phase:

  • Deepen your experience with GitHub as a collaborative tool within a development team.
  • Learn and apply the SCRUM methodology for agile project management, improving teamwork and organization.
  • Combine and apply technical skills acquired in previous phases in a real-world-like practical environment.
  • Transition from individual work to teamwork, adopting methodologies and dynamics used in professional settings.
  • Develop personal and interpersonal skills to manage different project tasks within a team.
  • Learn to make short presentations, justify technical decisions, and defend your code.

πŸ“Œ Methodology

The Project Phase follows a hybrid learning model, combining one in-person session per week with the rest of the days in an online format. It includes synchronous activities (Monday-Thursday, morning sessions) and a majority of work in asynchronous mode.

Weekly Commitment

The minimum weekly dedication required is 20 hours.

Synchronous Planned Activities:

  • Presentation of results and weekly challenge launch (45 min).
  • Daily stand-ups (15 min).
  • Sprint retrospectives (60 min, every two weeks).

Project Duration

The project lasts 5 weeks, structured into:

  • Week 1: Project introduction and setup.
  • Sprint 1: 15 days.
  • Sprint 2: 15 days.

πŸ“Œ Evaluation Criteria

During this phase, the following attitudes, skills, and knowledge will be assessed:

  • Understanding of SCRUM roles
  • Participation in SCRUM events
  • Product Backlog management
  • Definition of Sprint goals
  • Self-organization and teamwork
  • Adaptability to changes
  • Transparency and communication
  • Continuous reflection and improvement
  • Delivery of quality increments
  • Commitment to the team and project
  • Presentation of results
  • Time management and estimation
  • Stress management
  • Best programming practices
  • Learning new tools or technologies

Passing Requirements

  • After Sprint 1, the mentor will conduct a mid-term evaluation.
  • To continue, you must achieve a grade higher than 5.
  • After Sprint 2, a final evaluation will determine your final grade and completion of the program.

πŸ“ŒWeekly Commitment and Attendance Schedule

Schedule

Tuesdays

  • Attendance is mandatory in person from 10am to 2pm
  • Sessions will take place in sala XR.
  • This day requires your physical presence and cannot be replaced with online attendance. See the section # Attendance and Expulsion Policy for more details.

Monday, Wednesday, and Thursday

  • Online Hours: sessions from 10:15am to 2:00pm.
  • 10:30am to 10:45am: We will hold daily meetings to align on progress and plans.
  • The remaining time will be dedicated to collaborative work, guidance, and resolving questions.

Virtual Classroom Access

  • The URL for the virtual classroom is located in the header of the #angular-java channel on Discord. Please check it there and ensure you join on time.

πŸ“ŒAttendance and Expulsion Policy

Read and confirm that you have understood the following policy:

Attendance

Attendance is mandatory for both in-person days and all synchronous activities, including presentations of results, daily meetings, and retrospectives.

  • You are allowed to miss a maximum of 2 daily meetings during the 5 week period.
  • Attendance at all other synchronous activities (presentation of results, dailies, sprint Plannings and retrospectives) is strictly required.

Absence Guidelines

  • All absences must be communicated in advance to your assigned mentor.
  • Medical appointments are the only exceptions that will not count as absences.
  • Absences due to work commitments or family obligations will be deducted from the two allowed daily absences and will count as missed sessions.

⚠️ Failure to adhere to these attendance rules will result in removal from the course, which means you will not receive the final program certificate.

Expulsion

You may be expelled from the course, thereby forfeiting the final program certificate, for the following reasons:

  • Missing key sessions during the Project Phase:

    • Failing to attend any of the 5 in-person days or any synchronous activities, except for the allowance of 2 daily meetings.
  • Failing the evaluation rubric:

    • Achieving less than a grade of 5 in the evaluation rubric for the Project Phase after the second sprint.

πŸ“Œ Work Methodology and Organization

We follow an agile methodology based on Scrum, meaning we work iteratively and collaboratively. To ensure effective communication and organization, it is essential to follow these rules:

1️⃣ Keep Your Tasks Updated on the Kanban Board

The Kanban board is the main tool for managing the workflow. Keeping it updated at all times is crucial so that the mentor and the team can see what you are working on.

πŸ“Œ Kanban Task Management Rules:

  • Move the task to "Doing" when you start working on it.
  • Move the task to "Testing" if it requires review or feedback.
  • Move the task to "Done" once it is completed.

πŸ“Œ An updated board facilitates organization, progress tracking, and improves team collaboration.

2️⃣ Daily Meetings: Team Synchronization

Every day, we hold short (daily stand-up meetings) to share progress and address blockers. Attendance and active participation are mandatory.

πŸ“Œ During the daily, answer these three questions:

  • What did you do yesterday?
  • What are you working on today?
  • Do you have any blockers or need help?

πŸ“Œ Maintaining fluent communication allows the team to progress efficiently.

3️⃣ Review and Feedback: Continuous Improvement

The mentor and the team will periodically review your work. Make sure to:

  • Request feedback early in the Discord channel or on the Kanban board.
  • Do not wait until the last moment to correct errors or improve your code.
  • Provide constructive feedback to teammates in code reviews and discussions.

πŸ“Œ Continuous improvement is key in an agile work environment.

4️⃣ Pull Requests (PRs): Encouraging Collaboration

Any code you develop must be reviewed before being merged into the main branch. To foster collaboration and ensure quality:

πŸ“Œ PR Review Process Rules:

  • Assign at least one teammate and the mentor to review the PR.
  • The teammate must review and approve the PR before the mentor.
  • Only the mentor is responsible for merging the PR after both the teammate and mentor have approved it.
  • Provide constructive comments and suggestions on teammates' PRs.
  • A PR cannot be merged until it has received approvals from both a teammate and the mentor.

πŸ“Œ How to Notify Your PR in Discord:

  • Once your PR is created, go to the #angular-java channel on Discord.
  • In this channel, you will find a specific thread called "Pull Request Notifications".
  • Post a message with the link to your PR and tag your teammates and Ivan Mentor so they know it is ready for review.

πŸ“Œ This step ensures that others can quickly access your PR and provide feedback.

Final Thoughts

With these updates, it is now clear that PRs require a teammate’s approval before the mentor's, and only the mentor can merge them once all approvals are received. πŸš€

πŸ“ŒOnboarding Steps

  • Join #angular-java on Discord and introduce yourself:
    Go to our Discord server and locate the #angular-java channel. Type a short introduction about yourself, such as your name, background, and role on the team. This helps everyone know who you are and feel comfortable communicating with you.

  • Review the project resources linked below:
    Scroll down to the "Project Resources" section at the end of this issue. Open each link in a new browser tab. These resources (tutorials, boards, layouts, and repository) are essential to understanding the project.

  • If you are Java Backend. clone the repository "ita-challenges-backend":
    Go to the ITA Challenge Backend GitHub repository (link below).If you do not have access permissions to the repo, notify the mentor.
    Look for the "Code" button and click it to see the link for cloning. Open your terminal (command line) and type git clone to download a local copy of the code. Cloning allows you to work on the code directly from your computer.

  • Read the Readme and Guidelines in the ITA Challenge Backend Github project root

  • If you are Angular FrontEnd clone the repository "ita-challenges-frontEnd":
    Go to the ITA Challenge frontEnd GitHub repository (link below). If you do not have access permissions to the repo, notify the mentor.
    Look for the "Code" button and click it to see the link for cloning. Open your terminal (command line) and type git clone to download a local copy of the code. Cloning allows you to work on the code directly from your computer.

  • Read the Readme and Guidelines in the ITA Challenge FrontEnd Github project root

  • Check current designs on Figma and match with sprint board:
    Open the Figma link provided. Figma is where we store all the project’s visual designs. Look through the current designs to understand how the frontend should look. Compare what you see with the sprint board (our project tracking tool) to learn what each team member is working on.

  • Create a feature branch for onboarding tasks:
    In your terminal, navigate to the cloned repository and type git checkout main to make sure you’re on the main branch. Then, create a new branch for your onboarding tasks by typing git checkout -b feature/-onboarding, replacing with your actual name. This new branch allows you to make changes without affecting the main branch.

  • Add Your Name to the contributors.yml File and create a Pull Request (PR):
    Review the project repository on GitHub and locate the contributors.yml file in the root directory of either the backend or frontend project. Add your name to this file. Once done, commit your change with git commit -m "Onboarding update" and push it to GitHub with git push origin feature/-onboarding. Then, go to GitHub and create a Pull Request. Move this issue to "In Review" to let others know it’s ready to check.

  • Notify teammates and mentor of your PR:
    Once you've created your PR, go to the #angular-java channel on Discord and you'll see a specific thread called "Pull Request Notifications". Post a message with the link to your PR and tag your teammates and Ivan Mentor so they know it's ready for review. This step helps others quickly access your PR for feedback.

  • Address feedback, finalize, and merge PR:
    If your teammates or mentor suggest improvements, make those changes in your code. Once they’re satisfied, merge the PR to complete your task.

  • Mark task as complete:
    Finally, move this issue to "Done" in the project board. This shows the team that you have completed your onboarding.

πŸ“Œ Project Resources

πŸš€ Enjoy the project phase and good luck!

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions