diff --git a/_posts/2021-09-27-continuous-integration-and-systems-engineering/continuous-integration-and-systems-engineering.Rmd b/_posts/2021-09-27-continuous-integration-and-systems-engineering/continuous-integration-and-systems-engineering.Rmd index 74d8aca..70c0948 100644 --- a/_posts/2021-09-27-continuous-integration-and-systems-engineering/continuous-integration-and-systems-engineering.Rmd +++ b/_posts/2021-09-27-continuous-integration-and-systems-engineering/continuous-integration-and-systems-engineering.Rmd @@ -1,11 +1,11 @@ --- title: "Continuous Integration and Systems Engineering" description: | - A short description of the post. + Continuous Integration is helpful for more than running tests and pushing code to production. For example, my team is currently using it to build regular progress reports of our code to keep everyone updated with its status. author: - name: Anson Biggs url: https://ansonbiggs.com -date: 09-27-2021 +date: 10-04-2021 output: distill::distill_article: self_contained: false @@ -15,6 +15,22 @@ categories: - Capstone --- -Working on a complex project that spans multiple domains can be really challenging for a small team. The small team size makes it hard not to keep every team member completely up to date on the inner workings of every system but that can add a ton of overhead and make progress slow to a halt. My [Capstone](https://projects.ansonbiggs.com/#category:Capstone) team makes this even harder since all but one of us are Astronautical Engineers. Astronautical is just a fancy way of saying "Systems, but every problem is a satellite" so a project like ours that has a massive Embedded software aspect can be really challenging since the most important part of the project is essentially a black box to a majority of the team. +## The Problem -To combat most of the team having zero knowledge of writing C++ for a microcontroller I opted to use Gitlab's CI to build and post results for every single commit that the repository sees. So far this has worked really well. The people in charge of other subsystems can look at the readme of the GitLab repo and see +Working on a complex project that spans multiple domains can be challenging for a small team. In addition, the small team size encourages every team member to keep entirely up to date on the inner workings of every system, but that can add a ton of overhead and make progress slow to a halt. + + + +My [Capstone](https://projects.ansonbiggs.com/#category:Capstone) team makes this even harder since all, but one of us are Astronautical Engineers. Astronautical is just a fancy way of saying, "Systems, but every problem is a satellite" so a project like ours with a massive Embedded software aspect can be challenging since the most crucial part of the project is essentially an enigma to a majority of the team. + +So what we needed was a way for me to write code and to keep the rest of the team up to date without ever having to touch the code and ideally without me having to generate any kind of report manually. + +## The Solution + +With Continuous Integration and a little Python, my GitLab repository automatically builds the latest code, runs the code, produces plots with the results, and makes an executable available if someone is inclined to run the code themselves. The automation means that the project readme is always up to date, and if anyone is wondering how progress is proceeding, they can check the readme and view the current performance in an accessible format. + +The data availability is also excellent for when my team has to produce a progress report because there is never waiting on the person who can run the code and then build some plots. Unfortunately, the same can't be said for the other teams who usually have difficulty compiling their progress into a pr + +## The Result + +All of the code being used for the Capstone is public, and the specific repository that I've been talking about can be accessed here: https://gitlab.com/lander-team/lander-cpp As you can see, the readme has charts that are always up to date. The `.gitlab-ci.yml` file contains all the build info, and you'll likely be surprised how simple of a setup it is. diff --git a/_posts/2021-09-27-continuous-integration-and-systems-engineering/continuous-integration-and-systems-engineering.html b/_posts/2021-09-27-continuous-integration-and-systems-engineering/continuous-integration-and-systems-engineering.html index aabd967..8ff5105 100644 --- a/_posts/2021-09-27-continuous-integration-and-systems-engineering/continuous-integration-and-systems-engineering.html +++ b/_posts/2021-09-27-continuous-integration-and-systems-engineering/continuous-integration-and-systems-engineering.html @@ -88,30 +88,30 @@ code span.wa { color: #5e5e5e; font-style: italic; } /* Warning */
A short description of the post.
+Continuous Integration is helpful for more than running tests and pushing code to production. For example, my team is currently using it to build regular progress reports of our code to keep everyone updated with its status.
Working on a complex project that spans multiple domains can be really challenging for a small team. The team size being small makes it hard not to keep every team member completely up to date on the inner workings of every system but that can add a ton of overhead and make progress slow to a halt. My Capstone team makes this even harder since all but one of us are Astronautical Engineers.
+Working on a complex project that spans multiple domains can be challenging for a small team. In addition, the small team size encourages every team member to keep entirely up to date on the inner workings of every system, but that can add a ton of overhead and make progress slow to a halt.
+ +My Capstone team makes this even harder since all, but one of us are Astronautical Engineers. Astronautical is just a fancy way of saying, “Systems, but every problem is a satellite” so a project like ours with a massive Embedded software aspect can be challenging since the most crucial part of the project is essentially an enigma to a majority of the team.
+So what we needed was a way for me to write code and to keep the rest of the team up to date without ever having to touch the code and ideally without me having to generate any kind of report manually.
+With Continuous Integration and a little Python, my GitLab repository automatically builds the latest code, runs the code, produces plots with the results, and makes an executable available if someone is inclined to run the code themselves. The automation means that the project readme is always up to date, and if anyone is wondering how progress is proceeding, they can check the readme and view the current performance in an accessible format.
+The data availability is also excellent for when my team has to produce a progress report because there is never waiting on the person who can run the code and then build some plots. Unfortunately, the same can’t be said for the other teams who usually have difficulty compiling their progress into a pr
+All of the code being used for the Capstone is public, and the specific repository that I’ve been talking about can be accessed here: https://gitlab.com/lander-team/lander-cpp As you can see, the readme has charts that are always up to date. The .gitlab-ci.yml
file contains all the build info, and you’ll likely be surprised how simple of a setup it is.