The best kittens, technology, and video games blog in the world.

Saturday, April 19, 2014

Beeminding the unbeemindable

It's going to be pretty awesome a couple decades in the future when all this will just be common knowledge, but we're just starting all this and we all need to go through the process of discovery what works and what doesn't individually.

And we should definitely hold ourselves to a much higher standard than "doesn't suck any more than it would otherwise". It's a good thing I don't have that particular problem, for which I don't really have a good solution, and I'm perfectly aware how poor track record of all existing "solutions" is when they are put to actual rigorous trial.

Anyway, as I said before, things that have good beeminder goal and measure go well and quite reliably so for me, but everything else - well, sometimes it does, often it doesn't. And I have a huge number of extremely important projects I need to keep pushing forward, and many of them haven't been moving as much as I'd like. Of course I can take the nuclear option of just dropping everything and taking a few months off mo get things I want done, but it's a good idea to try a few less drastic courses of action first. And for that matter to make sure if I ever go all the way, it will be highly efficient use of my time.

Idea #1: Per-project measures. One way would be to setup twenty or whatever number of measures, one for each project, but that's a ridiculous overkill, especially on beeminder which doesn't work that amazingly for things that move forward less often than once a week. One sort of workable thing would be to setup tracking for top 3 projects, and for the rest, well, "it won't suck any more than it would otherwise". I never seriously attempted that, and even beeminder discourages having too many beeminder goals.

Idea #2: Tracking time. What I actually tried at first was getting pomodoro timer and counting time spent on any project on the projects list, with beeminder target. This was a miserable failure, since time has very little relationship with progress, and such system just assumes single-tasking and no interruptions - both things which are just completely incompatible with my reality. It was a miserable failure for me.

Idea #3: Track everything. For this I skipped beeminder, since I wanted tracking, not necessarily a target, at least not initially. Everything, on my lists or not, which changed state of the world in direction I wanted, got a +1. It was extremely broad definition on purpose, and I did it for a month with +163/day average. And things were sort of moving forward fast, just not the important things. I'd say it way not very successful, and I don't think adjusting point criteria or explicit target would make much difference.

Idea #4: Priority tasks. Finally I took the opposite approach, lowered all other beeminder targets by about 1/3 to make sure I have time for it, set up a very short list of extremely high priority tasks, with a target of 1/day. 3 weeks later, it's not amazing, but it's been working considerably better than any of my earlier attempts, which were total failures. My first idea was to limit the priority list to just 3-5 items, but it has tendency to grow, and I have to trim it back regularly, moving things back to regular todo lists.

That's it for today. No real solution, but I hope my self-experiments will be useful to others as well.

3 comments:

Noumenon said...

Did you use Beeminder to track the +1s? Sounds like fun.

Noah Slater said...

I sent you two tweets, but I think this is better as a blog comment. :)

I've tried many ways to Beemind time. I started off by creating goals for each project or area of focus I had. But that required me to set concrete time goals. This became very complex, and I ended up with multiple spreadsheets and forecasting, and all sorts, just to try and predict and commit to set hours.

(Tip here would be: if you're going to beemind concrete hours: do it on as few things as possible. Perhaps pick the most exceptionally avoidance-prone things, and do those.)

I decided that this wasn't good, and that I needed more flexibility. IMO being social is a perfectly valid reason not to be working. (I am an introvert and do not socialise enough!) So I came up with a system that was a bit like rolling a dice. You'd preconfigure it with the things you want to spend time on, and the relative percentage split. And then when you roll the dice (i.e. run the tool) it picks one for you. The rule then was that I had to do one Pomodoro for the task. And over time, hours spent should correspond to percentages configured. But then to make this work, I needed to create a "do more" goal which made sure I was doing the maximum amount of Pomodoros per day, which involved an increasingly complex fine print.

In the end, I found the whole thing too complex to cope with. And I was fed up of really getting in the swing of something, only for a Pomorodo to end, and for me to have to pick a new task at random.

So that's when I started to think about Nick Winter's percentile feedback tracking.

http://www.nickwinter.net/codecombat-stats

The basic summary is:

- Log all your productive time (how you define that is up to you)
- Chart efficiency throughout the day (% time worked out of time available)
- Calculate an ongoing percentile rank, and display it prominently

The percentile rank (PR) therefor is an indication of how well you are doing today, compared to all previous versions of you at that point in the day. Which is great. It puts you in competition with yourself. It also means that at any point during the day, you can put some work in, and increase your score.

I have found this:

- Very flexible (I can socialise all day and not feel bad or worry about it)
- Very motivating on days I do want to work (intrinsic motivation)

The only remaining nut to crack is how to visualise where my time is being spent, so that I have the same sort of super-powerful feedback mechanism which stops me from concentrating all my time in one area and completely neglecting others (which is a big problem for me).

I open sourced Nick's code (with his permission of course):

https://github.com/nslater/percentile-feedback

Interested in beta users and feedback, etc!

taw said...

Noemenon: I used pen and paper for that (in fives), then added them up into text file at the end of the day. I didn't really have a target, just wanted to give myself some points.

Noah: Random choice is interesting idea, but too many of my projects have complex dependencies (one of the reasons why they're not moving forward more smoothly). I've heard pomodoros work for many other people, not sure why they don't work for me at all.

Tracking % productive time is not really that easy with multitasking etc. I guess there's random sampling by phone app, I never really tried that (and apps I've seen are for iPhones mostly, not Android). Maybe that's an idea for the future.