{"id":32,"date":"2023-02-08T16:09:39","date_gmt":"2023-02-08T16:09:39","guid":{"rendered":"https:\/\/blogs.oregonstate.edu\/carterja\/?p=32"},"modified":"2023-02-08T16:09:39","modified_gmt":"2023-02-08T16:09:39","slug":"teamwork-flow","status":"publish","type":"post","link":"https:\/\/blogs.oregonstate.edu\/carterja\/2023\/02\/08\/teamwork-flow\/","title":{"rendered":"Teamwork: Flow"},"content":{"rendered":"\n<p>I&#8217;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 &#8220;real-world&#8221; production environments work. This has been invaluable for our Capstone project. My other teammates have also interned, which provides a great benefit. <\/p>\n\n\n\n<p>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!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Commit, commit, commit, squash <\/h2>\n\n\n\n<p>Most developers at this stage of their schooling are familiar with Git version control. However, not everyone &#8216;squashes&#8217; 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 &#8216;git rebase -i HEAD~3&#8217; will allow the user to rebase the last three commits &#8211; viola! Now three commits are one and the code is ready to push. <\/p>\n\n\n\n<p>To learn more, check out this post: <a href=\"https:\/\/www.gitkraken.com\/learn\/git\/git-squash#:~:text=Squashing%20is%20a%20way%20to,them%20to%20the%20Parent%20Commit.\">Git Squash<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Continuous Deployment<\/h2>\n\n\n\n<p>Another important concept for smooth development is <em>continuous deployment<\/em>. 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 &#8220;production&#8221; and &#8220;development&#8221; branch in your version control. <\/p>\n\n\n\n<p>Either way, GitHub has <a href=\"https:\/\/github.com\/features\/actions\">GitHub Actions<\/a> 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. <\/p>\n\n\n\n<p>Continuous deployment has many benefits including automated testing, enforcing code reviews, and streamlining deployment. It&#8217;s simple in GitHub to set up code tests or code review rules before any code can be merged and auto-deployed. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>There are many other possible things to discuss for teamwork and work flow. It&#8217;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. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;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 &#8220;real-world&#8221; production environments work. This has been invaluable for our Capstone project. My other teammates have also interned, which provides a great benefit. [&hellip;]<\/p>\n","protected":false},"author":13145,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-32","post","type-post","status-publish","format-standard","hentry","category-cs467"],"_links":{"self":[{"href":"https:\/\/blogs.oregonstate.edu\/carterja\/wp-json\/wp\/v2\/posts\/32","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.oregonstate.edu\/carterja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.oregonstate.edu\/carterja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/carterja\/wp-json\/wp\/v2\/users\/13145"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/carterja\/wp-json\/wp\/v2\/comments?post=32"}],"version-history":[{"count":1,"href":"https:\/\/blogs.oregonstate.edu\/carterja\/wp-json\/wp\/v2\/posts\/32\/revisions"}],"predecessor-version":[{"id":33,"href":"https:\/\/blogs.oregonstate.edu\/carterja\/wp-json\/wp\/v2\/posts\/32\/revisions\/33"}],"wp:attachment":[{"href":"https:\/\/blogs.oregonstate.edu\/carterja\/wp-json\/wp\/v2\/media?parent=32"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/carterja\/wp-json\/wp\/v2\/categories?post=32"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/carterja\/wp-json\/wp\/v2\/tags?post=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}