I have sometimes used a method where I start working in the morning and when I find myself losing focus I have a rule to stop and go home. It keeps me constantly underachieving and wasting time. After a while I actually just really want to get stuff done and the runs get longer. Obviously this does not work very well when working in teams or for someone else.