Sometimes when we think of advance concepts like CI/CD, we  generally look at it from the perspective of work. It is easy to think  of applying such principles at work maybe because you are being paid  more or it is part of your professional experience. We, however, fail to  apply such processes on our personal projects.

I  recently did a switch on my website by intentionally trying to apply  continuous integration and deployment (CI/CD) when making changes to my  site. I wanted to stop using FTP to upload my site. My blog doesn’t  attract a thousand people per day but I do hope to keep it running and  write for years to come. One voice will say, what is the point? It isn’t  big enough to warrant such sophistication. I still went ahead and did  it and here are the reasons to apply CI/CD to your hobby project no  matter how small and unsophisticated it may be.

Acquiring new skills

If  you are someone who is interesting in growing in the field of IT, you  probably know the field is always changing. Every week there is a new  framework, a change in processes, a change in the toolchain and there is  always a new best practice introduced in the industry. To stay relevant  and still get that good pay package, it is imperative to continue  learning. CI/CD is the new norm and apart from being trendy, it does  bring benefits. Unfortunately, not every company is able to adopt it  from quickly enough, and it does take time to adopt for a company that  has been in existence for years.

Consider a  future were you need to change jobs and you are asked by a potential  employer if you do CI/CD? You now consider picking a quick course to  fill up that gap and you know you still need hands-on experience or  practical projects to demonstrate this newly acquired skill.

My  website does adopt some aspect of CI/CD and as I roll out more  features, I get to gain experiences that I can also contribute back to  my place of work. So guess who has CI/CD on their CV now?

Streamlining your workflow

As  developers, you want to focus on doing what you love best, writing code  that offers solutions to opportunities you are interested in. Pushing  out code that displays that amazing interface you want to impress your  clients or visitors to your site. With CI/CD, you can take away the  repetition in your workflow - no more FTP to a remote server,  automatically rolling back changes to code.

I  currently use the Bitbucket pipeline to deploy my website and it has  been freeing. Once I am done testing a feature locally on my machine and  I push it, I just wait to be notified of failures to running tests or  the deployment process. It is rewarding when you finally get that email  saying - “branch deployed successfully”. It has also helped me split the  task of managing my site into a few categories - Admin Task, Frontend  and Writing. Streamlining your workflow helps you document your  project.

Having a structured workflow and  automated workflow helps you to think through what you are doing. How  things should fit and work together. Using a tool like a pipeline means  anyone joining you can learn about the system by reading up the  documentation from your CI/CD providers site or tool documentation.   Even when you go mad and decide to write your own custom CI/CD system,  you are still creating a structure and as long as you aren’t inventing a  new programming language for that, people can look at your  implementation and figure how things work.

Bridge the divide between Operations and Developer teams

In  most organisations, the Operations and Developer teams are separate and  each isn’t really aware of the nature of the other’s job. Developers  may see the Operations team as the people who manage the servers and add  more memory and storage when ordered to. The Operations team, on the  other hand, may see the developers as the code junkies who write buggy  code that crashes or puts the server under load. While the code may work  on the developer's machine, there may be differences in the server that  the development team isn’t aware of.

The  operations team may not also be aware of needed resources that may be  required by a new feature deployed by the team. This means after a  release when the code is all in production, the fire alarm goes off and  we discover the need for more resources, closing out possible security  vulnerabilities.

Acquiring a CI/CD skill from  your personal project means you get to understand the kinds of tasks  undertaken by the operations team. This means you can be sympathetic to  their plight and can easily way in to help solve certain operations  task. I think full-stack development should include CI/CD and not just  stop at knowing HTML, CSS, JavaScript and SQL Queries.

In  summary, all I am saying is that applying CI/CD to your personal  project is awesome and in the process, you acquire a reasonable skill to  agument your current one.