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.
Hide this

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


  • identicon
    Component Based Software Developer, 5 Apr 2006 @ 4:12am

    Component based software development has been the methodology behind our software design for the past 4 years, and even though the ideal hasn`t (and probably never will) been reached, it definitely has worked for us. And I know of quite a few other companies for which it has too. Saying that the approach almost never works I think is a bit of an exaggeration.

    reply to this | link to this | view in chronology ]

    • identicon
      Mike, 5 Apr 2006 @ 8:01am

      Re: Component Model works...

      I have to agree... to a point. We have heavy re-use of modules at work, but all in-house. I have found that any personal projects I do on my own time, I need to code everything myself. The alternative is to fork over money to someone who has written something that may (or may not) do the things I need it to do.

      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.

      reply to this | link to this | view in chronology ]

  • identicon
    A way of thinking/life, 5 Apr 2006 @ 9:21am

    I'm young, but have been able to work under/with some really good project leads. Even the stuff that I had developed on my own, I found myself naturally making my code more modular (athough it was just used by me). When I worked in a group setting, we had several people work on different components, and our lead preached modularity. It not only creates code that makes more sense, but also reduces mistakes. If you have the same functionality/code in 4 places, creating a single function to handle those four places allows you to, if you find a bug or algorithm tweak to be pushed out to the 4 places at once, and you don't have to worry about them getting out of sync or forgetting to update one.

    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.

    reply to this | link to this | view in chronology ]


Add Your Comment

Have a Techdirt Account? Sign in now. Want one? Register here



Subscribe to the Techdirt Daily newsletter




Comment Options:

  • Use markdown. Use plain text.
  • Make this the First Word or Last Word. No thanks. (get credits or sign in to see balance)    
  • Remember name/email/url (set a cookie)

Close

Add A Reply

Have a Techdirt Account? Sign in now. Want one? Register here



Subscribe to the Techdirt Daily newsletter




Comment Options:

  • Use markdown. Use plain text.
  • Make this the First Word or Last Word. No thanks. (get credits or sign in to see balance)    
  • Remember name/email/url (set a cookie)

Follow Techdirt
Special Affiliate Offer

Essential Reading
Techdirt Deals
Report this ad  |  Hide Techdirt ads
Techdirt Insider Chat
Recent Stories

This site, like most other sites on the web, uses cookies. For more information, see our privacy policy. Got it
Close

Email This

This feature is only available to registered users. Register or sign in to use it.