I recently programmed my 06 subaru impreza outback sport. I had a difficult time of it at first until I realized that my chirping device that is placed beside the horn is inoperative.
So I just followed the steps in the user manual without the aid of the chirp to let me know i was in programming mode. Took one or two tries but it finally worked.
I thought I should share this because there are alot of subarus with inoperative chirps and programming them at home may seem impossible. I thought I was going to wear out my ignition trying to make it work.
Hope this information is helpful for someone.
Here is a link to fix the chirp first before you try to program
http://forums.nasioc.com/forums/showthread.php?t=1791725