Economic necessity is the mother of software reuse


Here is an assertion you are unlikely to see anywhere other than in this article: an economic recession right now would do the Web the world of good.

Wow! How could that possible be true? Lets suck all the money out of the system and see what happens? Sounds painful. Sounds suicidal. Has McGrath finally lost it?

Money is a constraint. I have written before about how important constraints are in software development. In a nutshell, constraints are the wellspring from which many good things come. Money, it could be argued, is the granddaddy of all constraints.

When money is tight in software development, what happens? Well, teams look to cut capital costs and to keep overheads as low as possible. Two good ways to keep capital costs down are to use open source software technologies and to use ISPs to rent hardware/connectivity rather than buy hardware. How are these good for the Web?

Well, the Web thrives in large part because of the quality of open source and the fact that low cost software makes horizontal scaling economically viable. The more developers who are developing on these open components the better for the openness of the Web as a whole. Also, the more developers utilize the Web itself to develop for the Web - the stronger the Web ecosystem becomes. Web based source code control systems. Web based issue trackers...

Another good way to keep overheads down is to work from home or from cheap, pay-as-you go serviced offices or from WIFI coffee shops, in distributed teams. How are these good for the Web?

Well, remote working drives developers to develop more cool Web based tools for collaboration, project management and communication. All of which have tremendous use outside of software development. Remote desktops, slide-sharing, issue ticketing...

Another excellent way to keep overheads down is to write less software. Now generally, developers like developing software and custom coding is correlated with value so the decision to not write software is a decision of last resort. How can this possibly help the Web?

Well, the world is strewn with pieces of technology that are just good enough. Not ideal, often seriously flawed, but good enough. In times of economic stress, solutions that are just good enough get more attention. Sure you could develop a better identity management system yourself than any of the existing ones. Sure you could do a better job of storing photos than any of the existing services. Sure you could do a better search index...but you don't have the time and you have better things to do. Things that are unique to your project. Things that have not been done before...

With every re-use decision, another stitch is added to the global fabric that is the Web. The more your application reaches out to others in order to function, the more network effects kick in and the more valuable the entire ecosystem becomes.

It is distinctly odd that the best way to make this happen is to develop less software but there you have it. In my experience, getting developers to stop writing software is a big ask that requires an incentive. Dollars - or the lack of them - is a great incentive.

What’s wrong? The new clean desk test
View Comments
You Might Like
Join the discussion
Be the first to comment on this article. Our Commenting Policies