Learning

Architecture and Reasoning

Choose a Tool for the Question

Select a thinking tool for a concrete uncertainty.

Downloads

A thinking tool helps you ask a better question. It does not decide the owner's policy or make an assumption true. Use one when the current problem needs it.

When You Are Stuck Try A Concrete Question
The request already assumes a solution. Abstraction laddering Why do we need an “approved” flag? What promise must it preserve?
People confuse story, request and result. Concept map Which thing constrains, binds or observes which other thing?
A reported failure has several possible causes. Issue tree Is there a decision record matching the published version, or not?
An observation is turning into a confident claim. Ladder of inference Does a timeout mean “not applied,” or only “no reply”?
A local change affects other work. Second-order thinking What happens to old operations when new ones move to another provider?
A proposed guarantee sounds too easy. Inversion How could a caller substitute work or forge a prerequisite?

For a lost response, write the observation first: no acknowledgement arrived by the deadline. “The send failed” adds an assumption. “Retry immediately” adds an action based on that assumption.

Compare an evidence-led conclusion: keep the original operation ID, inspect the source, then choose the permitted continuation. The lost-response exercise works through this decision.

Engineering Depth

Inversion can challenge this contract sketch:

trait Publish {
    fn publish(self, approved: bool, version: u64);
}

Ask who can supply true, which reviewed content the Boolean identifies, and whether a later version can be substituted. Those questions expose missing relationships; they do not dictate one universal Approved type.

A better story would establish and retain the required decision/version binding, then recheck mutable facts where needed. In the workshop, the analogous binding is visible here:

pub struct Verified<'a, P, E> {
    workshop: &'a mut Workshop<Google<P>, WithoutPassword, E>,
    subject: String,
}

The particular subject and workshop travel together. The comparison explains why a data-bearing state is useful; “always use a ZST” would discard the reason.

Your Reflection

A teammate proposes one shared helper because two functions currently match. Which question would you investigate first, and with which tool?

Worked Discussion

Ask whether the consumers are intended to change together and who owns that decision. A concept map can expose the ownership relationships; second-order thinking can follow the effect of a later change. Counting identical lines cannot answer those questions.

Navigation