What is the future of software development in large companies?

For decades there had been a simple model in place when it came to consuming software within large companies. It had only two branches, one involved creating something new while the other installation and configuration. Simply stated: "Make versus Buy."

Make decisions involved the custom development of an application to fill the requirements of the consumers. This means that the

software development tools, development resources as well as migration, testing and hosting capabilities all had to be maintained internally.

Buy decisions analyze the funcationality versus consumer requirements as well as the costs of purchasing, licensing, supporting and the installation, migration, testing and hosting capabilities necessary. Additionally the company providing the product is considered. They are usually a company who specializes in a product or product grouping and can deliver it

at a lower cost than what it would take to build it internally. Oftentimes they can also provide the upgrades and support at a cheaper cost assuming the product meets all your needs out of the box.

As the applicaiton portfolios of companies became larger, analysis began to include another branch. Instead of building something new or buying a product to install, you would expand upon the capabilities of an existing tool through merging and/or simply enhancement. This means our simply model is now: "Make versus Buy versus Enhance."

Enhance (or merge) decisions brought together the consumers of the current application and those wishing to have additional funcationality.  The amount of regressive testing would increase andt the overall architecture of the application had to be considered to prevent the creation of a Frankenstein application; not adhering to your internal guidelines.

Much of what I read today seems to be leaning towards a trend in large companies to consume software produced and hosted by someone else. You would think this is the "Buy" branch discussed above, however, the method for both consumption and installation is different. This increases our decision tree to now include "Make versus Buy versus Enhance versus Rent."

Rent is a paradigm shift from conventional close-to-chest business practices most companies have used in order to keep competition at bay.  Now imagine a time when all you do is start your computer and load a web browser.  Inside the browser you have access to all document creation and management, business tools, messaging and any other functionality you need to perform your job.  Tthe difference here is that none of these applications are inside your company and you only pay as you use.

So where does this leave us as software developers?  Are our days numbered?

I think not -- yet.  The movement to a rent-based consumption model takes time.  Time for the company to get over their fears or releasing some control to someone else.  The problem is and what most people do not realize is that we do it daily.  Think about the electricity that runs your factories and offices and ask yourself where that comes from.  Do you create it yourself or do you consume

it as a utility in a renting fashion?

For a while software developers will be performing the following:

  1. Building what does not exist

  2. Enhancing

  3. Merging

  4. Configuring

We eventually will be doing less and less coding and more and more configuring.  As the industry providing us software (and the infrastructure) matures and the reliability increases you will see a switch.

It will take time.  Time to settle concerns, time to change opinions and time to move over data and consumers.

I imagine that this switch will allow those companies to focus more on their key products and less on the outlying functionality necessary to run the business.

What are your thoughts?