Tools & Pipelines
Let’s talk about developer tools, ranging from IDE’s through to code analysis tools including technologies such as SonarQube & SonarLint. Considering the time, I’ll keep this post rather brief, so let’s kick this off by starting with the basics.
The reason as to why CI/CD pipelines are so important is simply down to the fact that it allows a team of developers to contribute to some form of repository whether it’s to some SVN repository or an Azure Repository, etc. Having a CI/CD pipeline allows developers to be able to contribute without worrying about manually deploying anything, a mature CI/CD pipeline will allow developers to receive information regarding testing, code analysis, test coverage, etc. A clean & mature CI/CD pipeline includes automating the whole process of ensuring that the code meets your standards & that the code is then deployed either to some QA/UAT environment or to the live environment.
The beauty of CI/CD pipelines is that it’s not specific to one language or even a specific spectrum of technologies, such as back end languages only. It’s never a bad thing to include some form of CI/CD pipeline in your project & by today’s standards, there’s no excuse as to why you shouldn’t have some form of CI/CD pipeline. Take Travis CI as an example & a number of free tools that can be found on GitHub Marketplace, considering you can easily implement some form of CI/CD pipeline with no/little cost, there really is no excuse as to why you shouldn’t be using one. It ensures that the code will work/compile to some extent or another, take my current role as an example, currently I’m heavily involved with Microsoft Azure & Microsoft Azure DevOps. Considering that I’m working in a Java ecosystem, this means that my team & staff at Microsoft were faced with a couple of challenges, as C# is preferred to work with Azure over Java, for many obvious reasons.
Now, with regards to tools, personally I always like to use the default tool, i.e. when using Java, use Eclipse, when using C# use VS Studi, etc. But in my personal opinion & judging by its popularity, VS Code is very quickly becoming the go-to tool for an IDE/editor. There’s a vast number of plugins for VSCode, some developed by Microsoft directly others developed by reputable entities such as RedHat. Although, it’s worth stating that the tools that are developed by GitHub, Atlassian & JetBrains are without a doubt worth considering, although some of these technologies may include some form of cost. However, there are alternative tools which may have less features/functionality that are free to use, an example being how you & your team could make use of Trello instead of Jira.
So, to conclude this short & brief post, it’s fair to conclude that by today’s standards there’s no excuse as to why any team shouldn’t be taking advantage of CI/CD pipelines and/or TDD/BDD. The beauty of TDD/BDD is that due to having predefined requirements in a great amount of detail, you know how the application should react to ‘x‘ input before you’ve even started writing any code. Even if cost is an issue, there are technologies out there that are free to use for small teams, including Azure DevOps, which in my personal opinion is an immensely powerful tool. I honestly believe that Microsoft has done an amazing job with regards to the Azure platform & all associated platforms/entities.