Imagine a scheduler that has many tasks to schedule, and more incoming work than it can schedule in a timely fashion. The scheduler is designed to consider all tasks, but will give a higher priority to tasks that provide immediate feedback.
A consequence of this design is that tasks which require a lot of time to complete, but provide little to no feedback until after the task is completed, are typically starved for resources. Often, they will never complete, or even start running.
Well, that's basically how my brain worked before I started exerting control over it. I would flip from thought to thought, lingering on things that provided immediate feedback, like playing musical instruments or video games.
Planning is a difficult task when your brain works that way. I had to consciously focus attention away from things that I was seemingly wired to fixate on. Even determined concentration was hampered by constant context switching, which I felt I had little control over.
ADD is a chronic condition, and I still have to deal with this on a daily basis. But it has gotten easier. Luckily, I've been able to develop enough coping techniques to at least take care of myself.
Most people who know me assume that I am very high functioning. As a software developer, I am pretty successful, and people equate that with intense concentration and process-oriented thinking. My own, inner world is far more chaotic than others could imagine!