What does it mean to develop software?

Consider the following:

In principle, in the general purpose computing world, once you check in to your version control system a solution to a certain problem, you will solve that problem for everyone everywhere for all eternity.

You may counter that if that were true, there would be only one Get Things Done app for Android, rather than 100. However, this springs more from disagreement on what the problem is.

If we take that basic premise to be true, we need to gradually increase our capacity to solve problems. If we do not, logically we must sooner or later run out of problems that we can actually solve.

Or, bluntly put, writing software is the craft of producing unemployment.

Now, Joseph Stigliz may say that this has a lot to do with cheap capital favouring capital investment (such as massive compute farms and powerful software systems) over investment in manpower. This may be so, but this has been the norm for the last decade and a bit, and is likely to remain true for a decade to come while banks and states deleverage. Thus the principle will stand for the forseeable future (several aeons by ICT yardsticks).