Software programmers and Engineers work an inmense amount to build things that are commercially unsuccessful. In fact, most projects are botched completely, let alone those that run at a loss, before you get the big wins.
There is a definite disproportion of price/value across all professions, and programmers are today in the spectrum where the expectations are rather low. 20 years from now, we could have so many engineers that there wont be much advantage in comparison with accountants, operations managers, sales or retail etc.
It is a priviledged position, albeit not as priviledged as lawyers or bankers (whose salary can vastly outpace their value). Classical service jobs dont have that luxury: you serve x burguers, u sell x products, you build y chairs.