Rubber Duck Technique - SOLV-Code/Open-Source-Env-Cov-PacSalmon GitHub Wiki
Concept
The Rubber Duck Technique is a problem solving trick used in software development: Try to explain your code problem out loud to the rubber duck, and along the way you can catch flaws in your logic. The underlying idea is to use some device that forces you to convert technical details into simple, natural language, which changes how you think about the problem. For this technique to work, it doesn't matter whether you explain it to a rubber duck, or a cat, or just somebody who's not an expert in the same specialized field.
Why is this relevant to environmental covariates for salmon models?
The same technique can help us think through the thicket of potential covariates for salmon models. It is easy to get lost in the details of tracking down data, writing and debugging code, and producing polished summaries of the outputs. Along the way, it is important to periodically zoom out from these details and check the overall sequence of reasoning. An effective tool for forcing yourself to zoom out is to explain, out loud or in writing, the basic biological and statistical reasoning behind what you are trying to achieve by including the environmental covariates.
Try to use simple, natural language to answer questions like:
- Why did did this analysis include PDO as an ocean conditions covariate, rather than one of the other large-scale indices like ONI or NPGO?
- For the PDO covariate, why did this analysis focus on mean monthly anomalies over the winter before juveniles migrate into the ocean, rather than some other summary statistic?
How is PSEC encouraging this approach?
We are using the existing collaboration features of GitHub to encourage verbal thinking about environmental covariates in two ways:
- Discussion threads for specific questions or comments
- Short notes on broader topics that can be edited directly in your browser (Just click the pencil icon at the top of the note)
Both of these formats encourage contributors to state points succinctly, then revise and improve explanations collaboratively.
Links
- Wikipedia entry for the Rubber Duck Technique summarizing the approach and its history.
- Discussion thread with programmers sharing their thoughts and alternative approaches (cats, relatives).
- Rubber Duck App