I think the best way to work is one that uses the agile methodology of points. You want every project to have high momentum. And you do that by mixing small 1 point tasks with medium 2-3 points tasks. And then when you're at your peak, you tackle the hardest tasks which are generally 4-5 points large.
If you keep mixing up your tasks and make it a game this way, you're no longer focusing on just how do I tackle what other's can't. But you're in the mindset that you just have to work on things till you get to a certain point level everyday.
I believe the reason we (I'm an EE) get bored and don't complete a project is that our focus is always on - what can make me stand out + what seems the most challenging. So it's not about completing a project - it's about how can we solve something that others can't or that I've done which gives me notoriety. And small tasks that everyone else can do, we don't end up doing. Because it doesn't serve us as an individual.
I think it's an ego thing we do because when someone tells us "hey you couldn't get that done?", we go on overdrive. So we're trained to tackle the hardest problems first always. I think that's where we all fail.