I'm involved in a university course here in Recife where the objective is to develop software using processes established in an opensource software factory. Our project is developing software for a software cooperative to assist in the day-to-day operations. See link for more info.
The software cooperative by itself is an interesting company to look at. Already I have found various examples on software cooperatives, like Solis, Beluga or CoopSoft. Here is another story about software developed for co-ops and the problems they encountered in making it suitable.
What I think the future will bring is some sort of "software ecology". Software itself will be seen as something so stupidly down-to-earth, eventually, that it doesn't make sense to charge money for it. The thing that matters is what the software does for a user. So, if a user looks into this ecology of software, he may like a certain piece but not be able to use it yet, because one specific need is not answered.
Someone else may adapt the software to that need and then return the modifications into the software's project. This kind of ecology would have immense capabilities for software re-use and software evolution. It is not necessarily a problem that you cannot capitalize on the software itself. (however, neither do I, in this post, suggest a resolution on how to make money with this model). Software ecology needs plenty of information around it. Not the kind like SourceForge (pull), but indexing, points of contact, etc... Something like a search engine where you get all sorts of details about that particular software project.
See software in the future more or less like a living lifeform (biology). It has a very high level of evolution, it reproduces itself, it can split cells (fork) and it is very important for our society to function nowadays... continuing thoughts here....