20 Feb 2016
Recently, my favorite questions for myself and my students have been: what hypothesis are you currently testing, what is your goal in testing it, are you testing it as efficiently as possible?
A research project ought to consist of multiple hypotheses, at multiple scales. You want at least one vaguely defined hypothesis regarding the space you’re working in; this could take years to test and could become a dissertation. You also want a working hypothesis that you can test in a few weeks or less. In-between, you probably want some intermediate hypotheses that are testable in a few months to a year. Generally, nearer-term hypotheses ought to be more concrete, while longer-term hypotheses ought to be more loosely held. Seek both.
These hypotheses matter because, in systems research, great work is often achieved via rapid iteration, by repeated formulation and testing of smaller hypotheses in service of a set of larger goals. Failing fast allows you to hone your understanding of a problem and continually evolve your set of facts and beliefs about it. You should expect your hypotheses to change over time while courageously pursuing and refining them at multiple levels.
The alternative is to sink an enormous amount of time and energy into a project that may or may not go anywhere. Given that time is the most scarce, least fungible resource in research, it’s in your interest to fail fast, learning along the way.
Complaints about a lack of “long-term” research often conflate short-term research taste with short-term execution. This is a mistake. Many projects never have a chance of real success because they don’t aim high enough. However, it’s possible to aim high while iterating quickly. Many great projects I admire were the result of a series of small steps, executed in service of a larger, worthwhile vision. It’s easy to focus only on big outcomes and forget this process.
So, if your hypotheses are wrong, will you know as soon as possible? If you’re right, will the grand payoff be worthwhile? As an advisor, one of my goals is to encourage audacious projects while helping break them down into manageable, intermediate steps.
Ultimately: think big in the long term, and think small in the short term. Have a loosely held plan for what comes between the two.
Call this “lean research.”
- How To Make Fossils Productive Again (30 Apr 2016)
- You Can Do Research Too (24 Apr 2016)
- I Loved Graduate School (01 Jan 2016)
- NSF Graduate Research Fellowship: N=1 Materials for Systems Research (03 Sep 2015)
- Worst-Case Distributed Systems Design (03 Feb 2015)
- When Does Consistency Require Coordination? (12 Nov 2014)
- Data Integrity and Problems of Scope (20 Oct 2014)
- Linearizability versus Serializability (24 Sep 2014)
- MSR Silicon Valley Systems Projects I Have Loved (19 Sep 2014)
- Understanding Weak Isolation Is a Serious Problem (16 Sep 2014)