Modular Software... Or Modular Communities?
from the not-really-there-yet dept
If you've been around software for any length of time, you've heard about the concept of "modular software" (or one of the many other names its gone under). This is because it's been talked about for almost as long as software has existed. The idea is that programmers would create basic software "components" that others would then take and clip together like legos to build their own offerings. The problem is that this has almost never worked. Sure, maybe a few components here or there, but despite repeated promises, developers often found it was easier in the end to just build things themselves. Of course, more recently, this has taken a web twist -- with what was formerly called "web services" having been given a shinier, more marketing friendly name in the form of "Web 2.0." The NY Times is now claiming that the age of Lego-style software is finally upon us, as this new revolution in software and software development is set to change the entire industry.It sounds nice... but is it really true? The "changes" in software development that the article notes really have almost nothing to do with modular software. Instead, things like distributed teams and the ability to work from home have a lot more to do with always-on, high speed internet connections and free open-source technologies (which don't quite fit the mold of modular software, other than setting up the stack on which to develop). There are very few examples given in the article of companies that are really building actual businesses out of these sorts of software "mashups." It seems like the Times may be missing the point here. It's not that the software has become easier to develop thanks to open APIs and such, but that software can now connect into online services with much more ease. It's those services that are not easily replicated. In other words, the challenge isn't about being able to easily reuse software, but to use the connectivity to tap into resources that can't just be built (such as communities or large data stores). The problem in the past was that, when it came down to it, the need for modular software was never that great, because it was often easier/better/more flexible to just write your own software. What makes some of these newer offerings more interesting (though, admittedly, the interesting ones are often mixed in with an awful lot of junk) is that they're able to tap into actual communities and build on top of them. So far, though, there's been a lot more talk than real businesses to come out of this realm. So, not only is the Times article declaring the wrong thing, it seems like they may still be a bit early.
Thank you for reading this Techdirt post. With so many things competing for everyone’s attention these days, we really appreciate you giving us your time. We work hard every day to put quality content out there for our community.
Techdirt is one of the few remaining truly independent media outlets. We do not have a giant corporation behind us, and we rely heavily on our community to support us, in an age when advertisers are increasingly uninterested in sponsoring small, independent sites — especially a site like ours that is unwilling to pull punches in its reporting and analysis.
While other websites have resorted to paywalls, registration requirements, and increasingly annoying/intrusive advertising, we have always kept Techdirt open and available to anyone. But in order to continue doing so, we need your support. We offer a variety of ways for our readers to support us, from direct donations to special subscriptions and cool merchandise — and every little bit helps. Thank you.
–The Techdirt Team
Reader Comments
Subscribe: RSS
View by: Time | Thread
[ link to this | view in chronology ]
Re: Component Model works...
Once you have a large enough code base, re-usable components make sense. For smaller firms/smaller projects, sometimes it is easier to build from scratch rather than add the overhead of a component architecture.
[ link to this | view in chronology ]
Anyway, that was just for our group internals. However, the same concepts can/should be applicable to inter-project/company efforts as well.
I still find myself doing it (and rightfully so), but wanting to control ALL aspects of the code. Writing my own little scripts here and there, instead of finding others and either referencing or importing.
On the other hand, there is not an easy way to find others work, at least for somewhat obscure or specialized types of applications.
Last comment, look at Ruby on Rails. It is a framework architecture that requires you to depend on the work of others. I haven't used it, and it would be a big paridigm shift from the way that I develop, but those that use it and understand it also understand its benefits. I don't know who (or even if there is someone) to blame for our overall mindset about control, collaboration and trust. Open source in general fosters some of those principles, but only partially. Oh well, time for lunch.
[ link to this | view in chronology ]