---
title: "Guidelines for selecting tools for continuous delivery toolchains"
url: "https://pipelinedriven.org/article/the-rules-of-selecting-tools-for-continuous-delivery-toolchains.md"
canonical: "https://pipelinedriven.org/article/the-rules-of-selecting-tools-for-continuous-delivery-toolchains"
published: "2017-03-10T17:19:48.617000+00:00"
updated: "2017-03-21T20:37:30.878000+00:00"
tags: []
author: "Roy Osherove"
description: "If the tool you use does not support continuous delivery values , you're going to have a bad time implementing CI/CD with fully automated pipelines. Here…"
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# Guidelines for selecting tools for continuous delivery toolchains

10 March 2017 · 1 min read · Roy Osherove

If the tool you use does not support [continuous delivery values](https://pipelinedriven.org/article/continuous-delivery-values), you're going to have a bad time implementing CI/CD with fully automated pipelines.

Here are some rules for the road:

1. [The first rule is: Don't select your toolchain until you have designed the pipeline you want to have](https://pipelinedriven.org/article/the-first-rule-of-continuous-delivery-toochains)
2. Every action or configuration can become **code in source control** so you can version things and get an audit trail on changes
3. Everything that can be invoked or configured has an **automation end point** through _command line_ or _APIs_
4. Every command line can return **zero for success or non zero for failures**
5. If you have to **log in to a UI** to be able to configure or execute something, you're going down the wrong path -  Your CI/CD tools (like Jenkins) is your user, not humans.
6. **Queues should be avoidable**: if you can only do one task at a time, but you have multiple builds that need to use the tool, you'll have a queue. The tool should be able to support parallel work by multiple pipelines or any other support for avoiding such queuing - as long as it enables pipelines to run faster, not slower, but still give all the feedback you need into the pipeline.
7. **Results should be easily visible in the pipeline, or importable** **via API or command line:** You need to be able to see the results easily in the pipeline log so that you can easily understand pipeline issues without going through different teams and tools.


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
