Developers write code. Code contains bugs. As a developer, there is a small chance that the code that you have just written is perfect, bug free, and works every time on every person's machine. If you're like me, there is an even better chance that this is not the case.
In my early days as a professional software developer I lost count of the number of times I confidently passed a feature over to the QA team, only for them to find a bug within a handful of minutes. Now, after 15 years of experience, I have built up a small arsenal of techniques to try and reduce this situation. The motivation for this? Well obviously it is so I can be an effective member of the team, creating complex and STABLE applications... But mostly it is because it's also very annoying, as usually by the time a bug is found I am well into thinking about the next developer task - Putting this on hold to revisit old code can be a major interruption. But to be honest my main motivation is to save personal embarrassment.
At "work" I have the luxury of depending on a small QA team to help test features. At home, this is not the case. Gimpy Software is a small team with no dedicated QA personnel, making the emphasis on developer testing much more important.
Over the years I have known a handful of developers who state "I do not know how to test", or "it is not my job to test". Anyone in the latter camp either needs a serious wake-up call, or a career change. For those in the first camp there is definitely hope. Like any skill, testing is something that can be learnt, and even a rudimentary level of test knowledge can make a big difference in the quality of your output.