

The author appears to be a mixture of both, if I'm understanding correctly. So now I do have to care about maintenance and having something to offer above everyone else's solution, because otherwise nobody is going to care about all the effort I'm putting into this solution. This means those people might not choose the same solution as me collectively between multiple different options. What actually wounds my ego is when the project is intended to be used by other people. It does wound my ego a little, but using their solution immediately instead of putting all the effort into an inferior solution means I do what I wanted to do and move on to more important things. Some people are just better at programming given the same time constraints. In these cases I will accept any solution, whether or not it's mine. I don't care about maintenance or if anyone else has the same problem or if anyone else even comes up with the same solution. In this case the programming is only a thing I have to get out of the way in order to accomplish what I want. Usually I'll just use it instead of spending more time. So suppose someone else comes along and has the exact same problem and comes up with a solution. The only way for me to do the specific thing I want is to program a solution to do it for me. I don't mean buggily or with shareware popups or as a paid product, I mean at all.
SHIPIT QUIT UNEXPECTEDLY SOFTWARE
The vast majority of the time I program because there is this thing I need to do but none of the software available allows me to do it at all.

It's solved already, and other people have put in all that time and effort refining the solution already, so you'll just feel like you're playing catch up. If your intention is to be "the" product or project that people use for their unmet desires, then when that goal is fulfilled by another project/product already, and considerably better, you end up wondering what all your time and energy is contributing to the task of solving the problem. In my opinion this sentiment can be affected by your intention behind the project. Developers are falling over themselves to work on new libraries and frameworks regardless of how many exist already. What's slightly odd is that this attitude isn't so common in actual software. Not having the first mover advantage is seen as a reason why you'll probably fail. Very sadly, in my opinion, the industry doesn't celebrate the effort. Consequently a lot of developers look for reasons to give up as early as possible because everything they've learned tells them failure is something to avoid at all costs. The 'heroes' of software are people who have made incredible things and rarely talk about their mistakes. There's very little support or mentoring, soft skills like kindness, helpfulness and giving constructive feedback are looked down on, and people's first introduction to software (games) is all about competitiveness and winning. Something about software development attracts people who are underconfident and anxious (or perhaps writing software makes people like that). Why do software developers believe that if someone gets there first that's it it's done?
