But there’s a big problem with time tracking tools. You either have to (a) rely on your memory, (b) obsessively clock in and out as you change tasks, or (c) use something like RescueTime that auto-infers what you’re doing.
Well (a) is a non-starter, and (b) is hard if someone comes by and distracts you, for example. It can even be impossible. If you space out and start daydreaming about sugarplumbs , you can’t capture that. By definition, if you could think to clock out then it wasn’t spacing out. (And it might be a real problem you’re working on, rather than sugarplumbs , but either way.) Maybe we have attention deficit disorder or something but manual time-tracking never worked well for us. That leaves (c), software that monitors what applications or web pages you have open. That really seems to miss the boat for us. You might be hashing out an API design over email or working out an algorithm on paper. Or what if you’re testing your Facebook app, not screwing around on Facebook?  There’s no automated test to distinguish wasted time from productive time!
We wanted something completely passive that doesn’t try to automatically infer what you’re doing. You might think “completely passive without automatic inference” is an oxymoron. But we hit on a solution: randomness. The idea is to randomly sample yourself. At unpredictable  times, a box pops up and asks, what are you doing right at this moment? You answer with tags each time it pings you. At first this yields noisy estimates but they’re unbiased and over time plenty accurate. It’s just a matter of getting a big enough sample size — collecting enough pings, as we call them. It doesn’t work for fine-grained tracking but over the course of weeks, it gives you a good picture of where your time goes.