Researching Unknown Technology

"What is Redis?" Do not read everything. What problem does it solve, what does it guarantee, what is the simplest example, how does it fail, what are the alternatives.

Researching an Unknown Technology
▶ lab

"What is Redis?" Do not read everything. Ask why you might need it, what problem it solves, what it guarantees, what the simplest example is and how it fails. Five answers on one page beat a weekend of reading, and they tell you what to learn next — or that you do not need to.

Q · A technology you have never used keeps coming up — in a code review, a job posting, a colleague's suggestion. How do you research it in an afternoon and come out with a decision rather than a vocabulary?
What Problem Does It Solve?

Every technology exists for one problem, and the question that cuts through its feature list is which. Ask it of the tool, then ask whether your system has that problem — and if the two do not match, no amount of the tool's other virtues makes it the right choice.

Q · Someone proposes a technology and lists its advantages. What single question tells you whether any of those advantages apply to your system?
Evaluating a Technology
▶ lab

A technology evaluation has six parts: the problem it solves, its mental model, its guarantees, its costs, its failure modes and its alternatives. Filled in honestly for two or three options — including the one you already have — it decides; filled in for one option, it advocates.

Q · You have narrowed a need to a few candidate technologies. What does an evaluation have to contain to actually decide between them, rather than confirm the one you already liked?
Guarantees and Failure Modes

Read a technology for what it promises and what happens when the promise cannot be kept. "Fast" and "reliable" are not guarantees; "a write acknowledged is durable across restart" is, and "the most recent writes may be lost on crash" is the failure mode that goes with it. Your design depends on which one you assumed.

Q · A technology says it is fast, reliable and scalable. What are the actual guarantees hiding behind those words, and what does your system do when each one fails?
Evaluating What the Search Returned

A search returns claims, not answers. Four checks turn a claim into something you can build on: is the source authoritative for this tool, is it current, does it match your version, and does it explain why. A result that fails the fourth is a patch, and the first three decide whether it is even a correct one.

Q · Your search returned a confident answer with a code block. Before you use it, what do you need to know about where it came from, and how do you find out in a minute?
The Smallest Experiment With a New Technology

Told to add video calls, the reflex is to learn WebRTC's API. The move is to ask what problem it solves, which of its concepts your problem touches, and what the smallest experiment is that proves the pieces connect for you — and to build that, not the feature, first.

Q · You have been asked to add a capability that needs a technology you have never touched. What is the smallest experiment that tells you whether it will work for your problem, and how do you find it without first learning the whole thing?