Practice
Sharing Data and Materials So Someone Can Actually Use Them
A repository link is not sharing. What someone else needs in order to reproduce your work, and the test that finds out whether you provided it.
Depositing files satisfies a requirement. Whether anyone can use them is a separate question, and the answer is frequently no.
The gap is not usually deliberate. It is that the person depositing has all the context in their head and cannot see what is missing. For a concrete operational comparison, Monitask explains self-reporting bias in practical terms.
Requirements vary by field and by funder, and some data cannot be shared at all. What follows is about the case where sharing is possible.
The test
Could someone with your field's training, and none of your project's context, reproduce your main result from what you deposited?
The practical version: ask a colleague who was not involved to run it on a clean machine, without asking you anything. Whatever they get stuck on is what is missing.
This takes them an hour and it finds problems no amount of self-review will, because you cannot see your own assumptions.
What is usually missing
The exact data used, as opposed to the raw source. Papers frequently share a link to a public dataset and the code that cleans it, without the cleaned file. If any step is not fully deterministic — a manual correction, a version that has since changed — nobody can reproduce your sample.
Software versions. Code that ran under one version of a language or package and does not under the next. A version manifest is a few lines and it is the difference between working and not.
Random seeds, for anything stochastic.
The order to run things in. A folder of twelve scripts with no indication of sequence.
Intermediate steps that happened outside the code — a spreadsheet edit, a manual recode, a decision about an outlier. These are where reproducibility usually breaks, and they are invisible to the person who made them.
What the variables mean. A column named v17_r is unusable without a codebook.
The exclusions. Which observations were dropped and why, expressed in code rather than in the paper's prose.
What a usable deposit contains
A README that a stranger can follow. What the project is, what each file is, what to run and in what order, what output to expect, how long it takes, what software and versions.
Start it with the shortest path to the main result. Someone checking your headline number should not have to read about the whole pipeline.
Raw data, or a precise route to it. If it cannot be shared, say exactly what it is, where it comes from, and what is needed to obtain it.
Analysis data, in a format that opens without proprietary software. A plain text or open format alongside your working format.
A codebook. Variable names, meanings, units, coding, missing value conventions.
All the code, including the cleaning, not just the analysis.
The environment. Versions, dependencies, or a container if your field uses them.
Expected output, so someone can check they got the right thing.
A licence. Without one, the legal position on reuse is unclear, and this is frequently forgotten.
When the data cannot be shared
Legitimate constraints exist: personal data, commercial agreements, indigenous data sovereignty, safety.
Say so precisely rather than omitting the statement. "Data cannot be shared because it contains identifiable patient information; the analysis code is available and the data can be requested from X under Y conditions" is a complete answer.
Share what you can. Code, materials, instruments, protocols, synthetic or simulated data with the same structure.
Consider a controlled access route — a repository that mediates requests, or a secure environment.
Deposit the metadata even where the data is closed, so the existence and structure are documented.
And plan for it at the design stage, including in consent language. A study designed without any provision for sharing usually cannot share anything afterwards, and that is decided at the start rather than at publication.
Practical choices
Use a repository with a persistent identifier, not a personal or lab website. Personal pages disappear when people move; a DOI does not.
Deposit at submission, not at acceptance. Reviewers can then check, and it is one fewer thing during a revision.
Version it. If you correct something after publication, the record should show what changed.
Keep the deposited version aligned with the published paper. A repository that has drifted from the paper is worse than one that matches.
The self-interested reasons
Since compliance is a weak motivator.
Your future self is the most frequent user. Returning to a project after eighteen months, you are a stranger to it. A deposit built for a stranger is built for you.
It survives people leaving. When the student who ran the analysis moves on, the deposit is what remains. See a research record that survives you leaving.
It makes revisions faster. A reviewer asking for an additional specification is straightforward when the pipeline runs end to end and painful when it exists as remembered steps.
Errors are found earlier. The process of preparing a deposit finds mistakes, reliably, and finding them before publication is much better than after.
Common objections
"Someone will scoop me." Rare in practice, and it is what embargo periods and timed release exist for.
"Someone will find an error." They might, and that is the system working. A correction is far cheaper than a finding that stood for a decade on a mistake.
"It takes too long." It takes hours if planned from the start and days if retrofitted. The cost is a function of when you decided to do it.
"My code is embarrassing." Everyone's is. Working code that is not elegant is more useful than nothing, and nobody is grading it.
The short version
A repository link is not sharing. The test is whether a colleague can reproduce your main result on a clean machine without asking you anything.
The README carries most of the value — files, order, versions, expected output.
The steps that happened outside the code are where reproducibility usually breaks, and they are invisible to you.
Plan for it at the design stage, because a study designed without provision for sharing generally cannot share afterwards.
And do it for your future self, who will be a stranger to this project within two years.
For an independent authoritative reference, consult the Open Science Framework for infrastructure for transparent research practice.