-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Overview
Principle: "Tell, Don't Ask"
This principle highlights a vital behavioral pattern that is key to effectively designed systems and team structures. The core idea behind it is this: "Instead of many asking or seeking information from one (person, department, etc.), we tell or better yet, broadcast that data or information systematically and freely to a centralized access point for the many to reference and interface with that broadcast at their convenience, without having the one potentially becoming a bottle-neck."
Observe the following example:
Agizo is a GitHub repository that leverages this template repository.
Repo badges play a role within this principle of tell, don't ask. They essentially broadcast key information to interested parties.
In this case, we are telling, but the problem here is with the data we are broadcasting.
When going through the logs for the test workflow, I realized that the tests were fine. The issue was in the build step - a dependency resolution error that caused the entire workflow to fail. However, that's not what we are telling. We misleadingly communicate that tests are failing. Worse than not telling, is telling false or wrong information.
Outcome
- Decouple build and environment setups into separate workflows from core workflows (ie,
test,lint,coverage, etc).
In this context, this would lead to a build workflow that would fail independently of the test workflow: [build: failing] [test: passing]. This gives more granular insights into where problems actually occur and allows teams to triage issues more effectively.
This is a best practice concept better known as segregated workflows.
Metadata
Metadata
Assignees
Labels
Projects
Status