10. Guidelines for New Developers - WebJamApps/JaMmusic GitHub Wiki

This chapter is provided for the development team in the onboarding of new members. It provides a standard set of guidelines for working collaboratively as a team, on an open source project, using Agile methodologies, scrum, GitHub, and the ZenHub task board.

10.1 GitHub and Code Review (Pull Request)

The developer is required to use the team’s GitHub repositories. There is one for the front end, and a separate one for the backend. There's also one for a Socket Cluster client required for the front end.

JaMMusic
web-jam-back
WebJamSocketCluster

The developer shall push all changes to his own branch that has been created from the master branch (from each repo).

Any time their branch falls behind the Master branch, it is important that the developer perform the command:

Git pull origin dev

Then, they should either merge from Master to their branch, or delete their branch and create a new one from Master (in GitHub).

This shall be done prior to pushing their code up to their GitHub branch.

The developer shall never push code to the Master branch.

After pushing to their branch, the developer will click to initiate a Pull Request and then click code review with the team leader.

Unit tests are expected to have also been developed prior to the code review.

10.1.1 Linked Issues to Pull Requests

Github and Gitlab allow you to use this in the pull request (merge request):

fixes #112

where the # provides a selector for the issue number

10.2 Pair Programming

Pair programming is the recommended method for new feature code development.

10.3 Unit Testing

All new features shall include proper unit tests to cover the code. It is not okay to modify existing code to make unit tests pass unless first communicating with the team, and getting a team agreement.

10.4 Scrum and ZenHub Task Board

The developer is strongly encouraged to participate in scrum meetings. During this time, new tasks are decided by the team to be worked on by the developer. A definition of done and acceptance criteria are also decided, as well as an estimate for effort (which is also agreed upon by the team). When the task has been completed and passes the code review, then the developer receives the compensation that was agreed upon (if applicable).

The team shall use the ZenHub task board to track their assigned Issues (tasks). This can be accessed after installing the ZenHub extension to Chrome, and is located here.

https://github.com/WebJamApps/web-jam-back#workspaces/web-jam-apps-board-580fcf0685c9ab2869d3ac8b/board?notFullScreen=false&repos=85571809,87949305,175982354,223178758,241621415,246638542

Work that involves both the front-end and back-end (full stack) is still being tracked in the back-end repo only.

10.5 Tech Stack

The developer shall use the technology stack as defined in the System Requirements document for continuous development and shall not incorporate other web technologies into the app unless the team has agreed to these additional packages.

10.6 Communication

Remote meetings shall be held on Google Hangouts. It is required that the developer be able to share screens during the meeting using Hangouts and speak at the same time. In between meetings, the developer can contact any team member on Hangouts chat or send email if they need assistance with their task.

Anytime the developer would like to have discussions about the app or a learning/sharing session about issues they are facing, it is okay to schedule a meeting with the team leader (but this is not considered a pair programming session).