This is a prediction made from a gut feeling and my own experiences: I think that in time, most jobs are going to involve building custom systems using mostly open source projects. In many cases off the shelf products are a poor fit to a business’s work flow. On the other hand, building proprietary systems from the ground up is expensive and requires long development times.
Whenever a customer talks about a new system they need, the second step (after understanding the problem they need to solve) is always to identify quality open source projects to use. I believe that the effective developer of the future will:
- Need to know about and perhaps have experience with many open source projects
- Be skilled at reading code and understanding APIs
- Have strong architecture skills for creating new systems with custom code and existing projects
- Know when it makes business sense to turn back improvements to open source developers, even if the license does not require this
- Be a mentor to management on the trade offs of different forms of software licensing and different open source strategies
While there will always be jobs for computer scientists who break new ground and develop fundamentally new paradigms and technologies, most development work is in customized applications for organizations.