I’d like to spend a little time talking about teamwork and effective work flows. I was fortunate to intern last summer at a major company, so I learned a lot about how “real-world” production environments work. This has been invaluable for our Capstone project. My other teammates have also interned, which provides a great benefit.
Our team is using GitHub to manage our project and Google Cloud to deploy it. Here are a few tips for teams to manage their workflow and be productive!
Commit, commit, commit, squash
Most developers at this stage of their schooling are familiar with Git version control. However, not everyone ‘squashes’ their commits. Commit squashing is a form of rebasing where you consolidate the last n commits into one commit. Many developers often commit every little thing. But what happens when the code is ready to push to GitHub for review? There are a million commits! This is where squashing comes in. A simple command ‘git rebase -i HEAD~3’ will allow the user to rebase the last three commits – viola! Now three commits are one and the code is ready to push.
To learn more, check out this post: Git Squash
Another important concept for smooth development is continuous deployment. This is a way to constantly deploy from your version control system (GitHub) to your production environment. A team can set this up in any way they want. For example, you could have all commits to main deploy. Or you could have a “production” and “development” branch in your version control.
Either way, GitHub has GitHub Actions to help teams manage continuous deployment. Many platforms, like Google Cloud, Render, or Heroku allow easy set-up for continuous deployment by becoming authorized with your GitHub account to manage the action. It is also possible to set up custom actions on your own.
Continuous deployment has many benefits including automated testing, enforcing code reviews, and streamlining deployment. It’s simple in GitHub to set up code tests or code review rules before any code can be merged and auto-deployed.
There are many other possible things to discuss for teamwork and work flow. It’s important for teams to research all of their options before starting a project so everyone is on the same page. I hope these two features help new developers in the future.