Slashdot Mirror


Software Dev - Why Rebuild When We Can Retool?

basic70 asks: "There seems to be a strong preference for developing new systems all the time, instead of just refactoring and improving existing ones. Why is that? Modifications such as moving to a new operating system, modifying the business logic, adding a web interface, moving to Unicode etc, shouldn't affect more than perhaps 10-20% (to grab figures at random) of a decently built software system. I can think of two reasons myself. The first is that consulting firms make more money developing new systems, and the second that existing systems are so badly layered and modularized that any larger improvements are impossible. The second reason is scary, because that means that the modern way of building things with short lifespans is starting to make its way into the software business as well. I saw a system written in 1995 that couldn't handle the new millenium. Can't we do any better than that? The GNU suite says we can, so why is it so hard with commercial software?"

1 of 19 comments (clear)

  1. This problem is endemic and will continue. by Christopher+Thomas · · Score: 4

    The reason why most software isn't flexible enough to be extended easily is that it's usually easier in the short term to write non-flexible software and to document its design poorly.

    In the real world, you are almost never given enough time or resources to finish a software project. Part of this is third-party influence - the nature of the market, trade show deadlines, customer deadlines if you're contracting, etc - and part of this is management that believes in short-term profit above all else.

    Sometimes you're lucky enough to avoid one or both of these factors, or to be in a position where you can force software development to take as much time as it needs. Most of the time you can't.

    It's hard enough getting a working, tested, and documented product to ship. Getting an extensible product on top of that is a task of Herculean magnitude.

    Thus, I think that most software will continue to be difficult to adapt to new tasks.

    Exceptions exist, but bear in mind that even Open Source and Free Software projects will feel some of these pressures, so they won't necessarily be immune.