*This is the most important and the list should work as Asimov's laws do, ie you should implement parts 2 and three only as long as implementing part one works. Any rule you set for yourself that you hate will make you unhappier as you follow it and has a great chance of not being followed.
**This is the rule that allows you to follow the rule in a large variety of circumstances, without needing to waste cognitive effort or emotional strength on decisions. For example: An extremely simple rule for dieting is : "eat no carbohydrates". This rule is pretty hard to enforce in that it constrains what you eat A LOT. If you find yourself regretting this decision, you need to follow rule 1 and modify the rule, while remembering rule 2. At the moment I go with: Eat few carbohydrates, except on Saturdays, where I may eat as many as I feel like. This leaves me happy to follow the rule, still keeps it pretty simple, and lets me lose weight.
*This is basically a way to say that you shouldn't get fucked by really weird events, and that your rule probably doesn't ALWAYS have plus ev consequences. EG, never eat carbs on weekdays is simple and easy to follow, but metarules about once in a lifetime events or things like weddings mean I won't regret the rule. This is more of an elaboration on the "possible" part of rule 3 than anything else.
Note: This was originally written in relation to this rather scary comment of lukeprog's on value drift. I'm now less certain that operant conditioning is a significant cause of value drift (leaning towards near/far type explanations), but I decided to share my thoughts on the topic of policy design anyway.
Several years ago, I had a reddit problem. I'd check reddit instead of working on important stuff. The more I browsed the site, the shorter my attention span got. The shorter my attention span got, the harder it was for me to find things that were enjoyable to read. Instead of being rejuvenating, I found reddit to be addictive, unsatisfying, and frustrating. Every time I thought to myself that I really should stop, there was always just one more thing to click on.
So I installed LeechBlock and blocked reddit at all hours. That worked really well... for a while.
Occasionally I wanted to dig up something I remembered seeing on reddit. (This wasn't always bad--in some cases I was looking up something related to stuff I was working on.) I tried a few different policies for dealing with this. All of them basically amounted to inconveniencing myself in some way or another whenever I wanted to dig something up.
After a few weeks, I no longer felt the urge to check reddit compulsively. And after a few months, I hardly even remembered what it was like to be an addict.
However, my inconvenience barriers were still present, and they were, well, inconvenient. It really was pretty annoying to make an entry in my notebook describing what I was visiting for and start up a different browser just to check something. I figured I could always turn LeechBlock on again if necessary, so I removed my self-imposed barriers. And slid back in to addiction.
After a while, I got sick of being addicted again and decided to do something about it (again). Interestingly, I forgot my earlier thought that I could just turn LeechBlock on again easily. Instead, thinking about LeechBlock made me feel hopeless because it seemed like it ultimately hadn't worked. But I did try it again, and the entire cycle then finished repeating itself: I got un-addicted, I removed LeechBlock, I got re-addicted.
This may seem like a surprising lack of self-awareness. All I can say is: Every second my brain gathers tons of sensory data and discards the vast majority of it. Narratives like the one you're reading right now don't get constructed on the fly automatically. Maybe if I had been following orthonormal's advice of keeping and monitoring a record of life changes attempted, I would've thought to try something different.
Anyway, what finally worked was setting up a site blocker that blocked the reddit.com homepage only. There was no inconvenience associated with visiting other pages, so the "willpower upkeep cost" of this policy was pretty minimal. I drew a mental "line in the sand" prohibiting me from ever loading a web page just to see what had changed on it (excluding email and some other stuff), and this rough heuristic (which I've safely gotten informal with) has served me well ever since.
The point of this anecdote is: Having well-designed policies matters. In the same way that the laws of a nation or the rules of a board game are very important, the policies you set up for yourself to follow are very important. ("Consequentialism is what's correct; virtue ethics is what works for humans.")
You might be wondering how I read Less Wrong, since it's a web page that changes. Less Wrong is a tough one, because it's got the variable reinforcement that makes reddit addictive, but hanging out here can also be a pretty good use of time. Lately what I've been doing is using Google Reader as one of my go-to break activities, and stuffing it so full of feeds that there's a growing backlog of interesting stuff to read every time I visit. The idea here is to have a constant reinforcer instead of a variable one, and it seems to work as far as avoiding addiction is concerned.
Policy design tips
My reddit experience illustrates a few recommendations for designing policies:
The rest of this post is going to consist of more policy design advice. I don't remember the policy design attempts that spawned each piece of advice, and my advice may not work for you. But hopefully it will make for a good starting point for your own policy design experiments.
Consistency
An overarching principle: As much as possible, you want to there to be consistency between what you tell yourself to do and what you actually do. If you've been telling yourself to do something and it's not working, stop. Step back, gain some self-awareness, get creative, and try to figure out some other way to modify your behaviour.
Why is this so important? Because ignoring what you tell yourself to do is a really bad habit. Let's say I'm trying to lose weight. Every morning I tell myself that I shouldn't eat a cookie at lunch, and every afternoon I give in and eat a cookie. This amounts to reinforcing the behaviour of rationalizing my way around my diet! The more times I rationalize my way around my diet and get rewarded with a tasty cookie, the stronger my habit of breaking diets is going to become. It might even be a good idea for me to stop trying to diet completely for a while until the behaviour of rationalizing my way around my diet dies off.
I also think the game-theoretic view of time-inconsistency is useful. If you build up a track record of self-cooperation, following pre-commitments becomes easier because you know that by breaking the pre-commitment, you'll be destroying something valuable. Part of this is not making excessive demands on yourself so that track record can actually be built up in the first place. See also: How I Lost 100 Pounds Using TDT.
If you keep these arguments in mind when your brain starts making "just this once" type arguments, hopefully you'll be better at resisting them.
Translating guilt in to policy ideas
Refining policy ideas
(Suggestion: Refer back to this list when you're in a high-energy state and you've got a policy you want to implement.)
Tips on repairing broken policies
Hopefully this won't actually happen, but let's say you broke your policy. What now?
I've additionally found regular meditation to be useful for maintaining policies. (Sam Harris on meditation.)
Conclusion
It's been over 6 months since I wrote this article. Here's what my internet distraction policy has evolved in to (it's been stable for the past few months at least, so I thought it might be worth sharing). I have a list of websites that I've classified as "distracting", which include reddit, Less Wrong, and Facebook, but not my email (it's too useful to restrict and I've been able to live with having that one distraction). If I have a reason to visit one of the webpages, I create a log entry in my notebook explaining the reason and then go visit. Sometimes the reason is just "I could use a break right now", and so far using this reason hasn't caused any problems. (If it did, I would probably have to change my policy and hammer out what constitutes a valid reason.) I also open all of the distracting websites on my list in tabs after 11 PM (after a one-minute delay) most days, which means I regularly check my LW/reddit/email inbox and don't have to worry about missing important things in my inbox. For Hacker News in particular, I came up with a more unusual solution: I have a server that's set up to spider the HN homepage every half hour. I originally did this with the intent to write a software tool to browse the homepage archives and filter out all but the best content, but so far I haven't gotten around to this.