The concept of software reuse always struck me as a no-brainer. Why write new code if the functionality is already available? So whenever the word pops up somewhere, I take notice.
In the current state of the economy, the word we hear time and time again from CIOs is 'reuse,'" added panelist Hart Rossman, vice president and CTO, Cyber Programs and Chief Security Technologist at SAIC. "By exposing data, providing APIs and letting the user community do a lot of the development work, you can drive down the cost of developing and supporting enterprise applications.
Reuse is the thread that connects object-oriented programming, component-based development, web services, SOA, cloud computing, and who-knows-what else. Though the subject of a great deal of literature and study over at least two decades, reuse never really seemed to get a foot-hold in mainstream IT -- until web services and SOA and related concepts came along to make it somehow more palatable. (Though there is some debate over whether reuse should be an objective of SOA.)
Or maybe that's wrong. Maybe it's not so much that current technologies and practices make reuse any easier. Maybe the cultural shift that resulted from the socialization of IT and the general shift from vertical to horizontal architecture -- what we used to call "Web 2.0" -- finally made chronic Not-Invented-Here Syndrome sufferers a whole lot more comfortable with -- or at least a whole lot more resigned to -- the idea of using what is already available, rather than building something from scratch.
You 'd be hard-pressed to find literature that doesn't make at least some mention of cultural resistance as one the the primary hurdles to reuse in all of its flavors. Could it be that Social Computing is eroding that cultural resistance? You tell me...