Making games is fun but it also requires a lot of brain power (especially when figuring out bugs). Some people are naturally motivated but for most of us, we need a carrot dangling above our heads to provide that extra motivation.
Saying you’ll treat yourself to a movie or play some games after you’ve done something is good but only if someone else has it. If you already own the game and can play it any time, it’s easy to just give in.
Giving yourself deadlines is a great way to boost motivation but again only if you involve other people. Like back in school where you had exams or assignments due, at the very least you’d start doing it or start studying the night before because the teacher would be looking at your assignment, you’d have to present something or everyone will eventually see your exam results.
An example of a deadline for Indie development would be like setting a date for people to play test/brainstorm/discuss/expand on ideas that you’ve come up with a presentation.
Game jams, conventions and competitions have deadlines set already and competitions would have rewards too. Though the main thing is that both involve other people like teammates or the person you contacted about entering the competition.
Making friends with others who are also indie developers boosts motivation too. You might be feeling like taking a break today but then hear your rival is working tonight and that might motivate you to work hard too because you don’t want to lose to them.
As for me
I use all of the above… because I need it :p Everything works well for me, except for the rewards because I always have them on hand. Still I try :)