As a tech guy, my mindset is like binary numbers in some cases! When it comes to goals and plans, I’m the toughest one about myself among the people I know! For example, when I set the goal of reading a book for a month, I was marking it as failing if I didn't finish it completely! After considering some successful people’s methods, I changed my method a little bit as I’m not a computer machine, I’m a human being! I mean, I can be disappointed when I mark a task as fail despite that I’ve done 90% percent of that and approximately achieved my goal.
I was wrong for a while about this strictness as it was making me upset when I didn’t achieve my goals completely. Remember that it’s not all about the goal itself. We should enjoy the process as it’s the process of achieving a goal that makes us a better version! Rather than that, every big goal should be split into several tiny ones in order to become easy to achieve and manage. I personally make myself motivated by achieving small goals. It could be finishing a small part of a big software system development, finishing a chapter of a book, or bigger goals.
Some big goals may take several years to achieve. You have to keep up going and never give up. Split big goals into little ones, enjoy the process, learn as much as you can, and celebrate every little victory!