To orb, or not to orb?

How do you decide when you should and shouldn’t write an orb vs. using parameterized elements directly in your config.yml?

  1. How many repos does your team need to think about? If you work on one git repo exclusively or nearly exclusively you probably don’t need an orb. If you have similar configurations across multiple repos, chances are you’d benefit from using orbs.

  2. Do you want to share your configuration approaches with people outside your company? If so, you almost definitely want to build what you want to share into an orb.

  3. Are you OK having the shared configuration be world-readable outside your own code? If not, orbs are not (yet) for you.

I work on a team that provides workflow tooling to application, service, and library developers. Therefore, our team thinks about streamlining the process for on-boarding with organizational best practices. Orbs may be key to achieving our goals.

In our case, not all projects are 100% similar. When is it good to ship a single, parameterized Orb, versus, say, multiple, fully opinionated, Orbs, versus leaving it to projects to only use Orbs when those Orbs can be used by 100% of our community.