Those software designers and engineers are often under great pressure to produce software under strict deadlines. The reason for this: competition. This pressure to produce a lot in short amount of time, means that the quality of software suffers. As a result, the end user must pay for the mistakes made by programmers.
Software companies often do not know the true wants and wishes of the end users. They keep a project very quiet, and secretive, while they develop it. And when they are done with the software project, they unveil it. It has too many features the user doesn't need, and none of the features that the users need.
These people also live 9-5 workdays. Work is work. This is what they get paid to do, whether or not it works right is not their problem right now. They will fix it after the bug is reported by a user. The point of coding is to serve their own self-interest: profit.