Insights for Software Development Workflows from the Pacific Islands

Talofa! I came across an interesting video on how enterprise software development workflows might work. I found that I was using a hybrid of techniques mentioned which aligned well given that it was showing how BIG companies with teams of developers would develop software. We have a few software developers at SPREP but mostly work on our own projects. I thought I would reflect on my workflow as it is something that I've built up over time from research and collaboration with other developers.

Tests, Continuous Integration/ Continuous Deployment (CI/CD)

My workflow involves setting up tests from the get go and putting them into Gitlab CI pipelines. This gives me confidence that the system builds and I'm not breaking stuff I already fixed. Here is an example of how I would set up a Drupal project with style tests and a Github Action for running them.

Feature building with Git branches

I build features using git branches. If I have an urgent requirement or fix, I can switch to another branch and work on them without worrying my incomplete work will break the system. I use branch prefixes to differentiate between features, fixes and enhancements.

Multiple deployment environments

Once CI passes I deploy them to a staging environment with a recent copy of the production server for some more tests and maybe feedback from users

Git tags for tracking production code

Lastly I merge accepted features into the main branch. The main branch is used as the starting point for any new features, fixes or enhancements. Once I'm ready to release a new version to production I will tag the latest commit using semantic versioning and deploy to production. Tags allow me to easily track what is in production and under development/ review.

Hot fixes, bugs and more testing

I create hot fix branches on prod if an urgent fix is needed or cant reproduce a bug in my local development environment. Recently Ive started writing tests that reproduce the bug before trying to fix it to save me from manual testing after I fix something

 

Here's the video:


Comments

Popular posts from this blog

Tips for improving Drupal security

Cloud Development environments for LEMP stack using Android in Samoa