I am very curious to know what you were doing in the image and to know about the SCCM/CI/CD
Of course.
Let's start with SCCM (aka: scc, scm)
Source Code Control and Management is a way of tracking files over time. Basically every file in my code base is tracked to see what changed when, who changed it and why. The who is not always me. There is a way to pull code from other people. I use Git, which has basically taken over the software development world in the last 5 years.
So you can have a Git repository on your machine and manage everything through the command line. This is a little cumbersome so I setup a Gitea server where I could manage my repositories via a web browser.
A quick note: while most people think of an external machine on the internet, that is not a requirement of a server. You can run a server inside your home network, or even inside the same machine. My Gitea server is running on a Raspberry Pi on my network just so the data is kept on multiple machines, and writing 4MB of 0's to the head of my raid array won't destroy all my work. (At least not again.)
So I make a change commit it, and use a website to manage releases, issues, milestones and so on.
Here you might ask why, isn't every change making things better? While that's the goal, it turns out some changes can introduce unexpected behavior. Sometimes this is caught right away, but other times it is missed. I've had to go back through weeks of changes to find where a mistake was introduced, to figure out how to fix it.
So tl;dr: SCC is git, M is Gitea.
Next is CI/CD. Continuous integration / continuous delivery.
The idea behind continuous integration or regular integration has been around for decades. This is the idea that with scc you should regularly build your code and test it where possible. Now GUI applications are tough to test in an automated way, and since what I'm working on is 99.9% GUI I have to live with just some really basic sanity tests.
Continuous delivery is a relatively new term, and it is the idea you should take your builds and get them ready for delivery, so any of them can go immediately.
I'm using Jenkins for this, and a pipeline to organize the build.
Again tl;dr CI/CD is Jenkins
So I can make a change, hit a button and have a full release ready to push to the web. This process was taking several hours per release before, now it is all of 3 minutes.
And the scripts can be reused on multiple projects. This might be a little overkill for a single person, but on the other hand it makes things faster and easier for me.
Besides as Hannibal said, "Overkill is underrated."