July 06, 2021
With 63% of organizations seeing an improvement in the quality of their software deployment through utilizing DevOps, it’s no surprise that DevOps continues to grow as a method for developing software. There are a wide range of tools to learn and adopt that assist in executing various software development practices such as, Continuous Integration, Collaboration, etc. But where should you start with so many options to choose from?
We collected our best practices for choosing DevOps tools and broke them down into several steps:
- Understanding the collaboration and shared tools strategy and value stream for your teams and their processes (Dev, QA, infrastructure automation teams): Teams should come up with a common tools strategy that lets them collaborate across development, testing, and deployment, in other words, you work on a common strategy that includes DevOps.
- Use tools to capture every customer request. Internally AND externally. No changes should happen outside of your process, and the tools should include any request for new or changed software.
- Use agile Kanban project management: Kanban is a crucial framework used to implement agile development matching the amount of work in progress to the team's capacity. It gives teams more flexible planning options, faster output, clear focus, and transparency throughout the development cycle.
- Use tools to log metrics on both manual and automated processes: Select tools that can help you understand the productivity of your processes, both automated and manual, and to determine if they are working in your favor. Define all the metrics that are relevant to your DevOps processes. Metrics are an inevitable part of the improvement process, and while DevOps can work greatly for your business, it can be difficult to use in practice.
- Implement test automation and test data provisioning tooling: With DevOps, testing must be continuous. The ability to put code and data into the process means you need to place the code into a sandbox, assign test data to the application, and run hundreds — or thousands — of tests that, when completed, will automatically promote the code down the DevOps process, or return it back to the developers for rework.
- Ensure continuous feedback between the teams to spot gaps, issues, and inefficiencies: You''ll need feedback loops to automate communication between tests that spot issues, and tests that process needs to be supported by your chosen tool.
An important point to consider is that tooling is not sufficient on its own. It must be aligned with your team's workflow and company culture in order to be helpful. Without this, the tool could hinder work more than it helps so it is critical to ensure that it fits in well with how the team works.
So, in the next several articles we’ll go over tools that are helpful for us in our daily business and that relate to best practices in the categories: Collaboration, Build, Test, Deploy, and Run.