Being a software development student, I've recently studied some concepts and tools like GitHub and Docker. And I'm interested in the industry or community “Good Practice” for using GitHub in software collaboration. As I understand, these practices are rules followed by experts in general to enhance the development process.
So far, my coursework has introduced me to several practices, such as creating branches for changes instead of directly altering the main branch; submitting changes via pull requests for peer approval, forcing reviews by one or more team members; clearly labeled and titled issues for easy identification; committing small changes (but not making large change in one commit); writing meaningful commit messages; using Docker for managing dependencies; specifying exact versions of dependencies; implementing GitHub Actions for CI/CD; maintaining a detailed README.
[Question] Considering these rules might be fit or not based on project scale and nature, so let say now you are in a team with small to medium-sized projects, specifically a web application with data analysis features, in a team of 4-10, what practice other than above would you appreciate if your teammate do it? (I am not sure the practice I listed above is suitable for real world, but I guess in certain degree it is good for software development)
Additionally, I'm open to exploring alternative methods and tools beyond GitHub for software development collaboration.
Firstly You should ask this kind of questions on Discussions section of StackOverflow.
You pretty much outline and know the basic good practices.
As for general workflow there is no one fits all golden rule. You should research it yourself and try out different tools in your team. Often times it is just matter of preference. For example I hate MS Projects but there are plenty of people who like it.
Some Suggestions:
For small team project management you can use GitHub Projects, or Trello.
For communication: slack
GitHub Discussions is also a good tool to be used during development.
Alternative to GitHub is Gitlab and many people praise Gitlab for its CI/CD implementation.
Using Docker alone is good enough for smaller or simpler projects but once your project gets more complicated, you may inevitably need to start using Kubernetes.
Git
In the case of using git, it is called
workflowThere are many workflow
Check them out yourself and choose the one you seem the most appropriate for your use case.
Links:
Centralized Workflow
Trunk Based Flow
Feature branching/GitHub Flow
Git Flow
Enhanced Git Flow
Git Feature Flow
GitLab Flow
One Flow
Forking Workflow
General