Being a Part of the Hack For LA Dev Team - hackforla/website GitHub Wiki

Introduction

The goal of this article is to introduce new developers of our team to the process of becoming a) a member of our team and b) a leader of the team. We, the leadership team of the website project, encourage you to take what is written here to heart. Successfully adhering to the outline below, and becoming a leader of our team, will prepare you to become a competent web developer in the working world. This includes the ability to examine massive codebases, decide the future of key projects, act as a mentor to others, and deliver a product with a team of like-minded individuals.

This article is separated into Phase 1 and Phase 2.

Just as with learning to code, learning to be part of a team is a self-learning process. You can take as long as you need based on your capabilities. The only wrong way to do it is to not try at all. Jump in!

Prerequisite:

  1. Complete on-boarding (contributing.md)
  2. Understand the Website project’s whole code base (Hack for LA’s Site Architecture)
  3. Familiarize yourself with the project board
  4. Complete 2 Good First issues (How to read and interpret issue labels)*
  5. And finally...have an iron grit, the drive to succeed, and the courage to learn from your mistakes.

Phase 1: How To Be A Good Team Member

  1. Review pull requests

  2. Adequately complete challenging issues

    • Self-assign and complete medium and large issues (try your best!)
    • Document changes to the codebase in your assigned issue and related pull request
    • Leave appropriate comments to improve the readability of your code
    • Helpful documents: Commenting
  3. Communicate effectively with the team

  4. Perform administrative duties

    • Create issues as they come up - How to create Github issues
    • Walk new members through our on-boarding process
    • Direct meetings as both driver and navigator/observer
  5. Mentor others

    • Ask current leads for mentorship opportunities
    • Reach out to others who need guidance but might be too shy to speak up
    • Work together with your mentee to create solutions
    • Take a part in reviewing your mentee's issues

Phase 2: How to train yourself to become a leader

The first step to becoming a leader is to: share your intention of becoming a lead with the team! Although the leads are very perceptive individuals, declaring your intent allows us to note your progress and assign you ever more difficult tasks—tasks that will build your character as a leader. There are many qualities to a team lead, but outlined below are what we see as the essential skills. You might find some of these easy and some difficult, but we are all here to help and guide you! Please, never hesitate to reach out to the team when you need help!

  1. Produce flawless code reviews

    • Seniors must consistently agree with your assessments of other's code
    • Reviews must be for highly difficult issues
  2. Complete large issues from scratch

    • Create the issue, self-assign, then complete it on your own
    • Require no supervision from other members of the team
    • Complete the issue without a need for additional changes
  3. Manage the team

    • Follow-up on the In Progress issues of others (even the current leadership needs a nudge sometimes! 😄)
    • Lead team meetings with a prepared agenda
    • Effectively communicate with members of the website team not involved with development
  4. Become a leader in the eyes of others

    • Know where major projects stand, who is working on them, and how to help move them forward
    • Become a resource for people who are stuck, either to help them, or direct them to help
    • Share your knowledge with others and start their path to becoming a competent member of the team and a leader

*additions after the wiki was moved.