Ry’s Blog

May 25, 2006

The Summer of Bloated Software

Filed under: Web Dev — Ry @ 4:29 am

The debate over open source vs commercial software has had people flaming the forums for ages. It can be argued a million different ways, from a million different angles, by a million different zealots from either side. It is time I threw in my two cents. The inspiration for this portion of my post was derived from recent events. I have been entrenched for many weeks now working with a large commercial framework that powers a number of large, high traffic websites. This application in turn communicates with a webservice that was created using the open source Spring framework. Only recently, my efforts were redirected back to the webservice, which needed some refactoring for a new feature we wanted to implement. Working within the commercial framework and Spring is relatively complex from either perspective, and I would consider the two frameworks to be comparable as far as ease of use is concerned, with the commercial solution being marginally more complicated. However, in terms of testability, there is a clearly decisive winner: the Spring open source framework.

As a believer in test driven development, it is important that the code I’m writing to be reasonably easy to write tests for. The commercial software we use, however, has been built upon and built upon for several years, and in it predates the concept of test driven development. Its inability to remain flexible makes writing a unit test for it nearly impossible to do without using workarounds and hacks, which makes the lives of us developers hell. No decent coder wants to have to write hacks. For example, the commercial framework is notorious for generating drop-downs with non-unique names, making HttpUnit useless for page testing. Additionally, the way in which data is stored in the session makes it nearly impossible to write Cactus tests against it without using dirty, time consuming workarounds. This became painfully obvious to me while I was coding with Spring, which is not plagued by such problems. While I was working with Spring I had no trouble creating a useful set of test cases to run before deploying the application. If the commercial software were to be open sourced tomorrow, I am certain it would be vastly improved, since some of its more ridiculous flaws could be picked up and quickly repaired by the community. However, it seems that it is trapped in a parallel universe where modern practices no longer apply. In conclusion, score another point for open source. Its focus on standards and common, modern practices makes it vastly more testable than our bloated commercial software solution.

3 Comments »

  1. […] I stumbled onto an article in Ry Lowry’s blog that included a piece about his frustration with applying test driven development (TDD) to a commercial framework. […]

    Pingback by The Retrospector » Blog Archive » Commercial vs. Open Source: Another Point for Open Source — May 26, 2006 @ 9:51 am

  2. Commercial framework developers aren’t thinking about testability yet. Neither are people who give them recommendations about “good practice.”

    One of the worst things framework developers do is use final and sealed all over the place. This blog talks about the problem.

    http://blogs.objectmentor.com/ArticleS.MichaelFeathers.ItsTimeToDeprecateFinal

    Comment by Jeff Wujk — May 26, 2006 @ 2:57 pm

  3. […] A few of my fellow developers and I were recently tasked with bolstering the test suite which runs against our commercial framework. As I discussed in part two of The Summer of Bloated Software, HttpUnit, one of our shop’s favorite tools for testing, simply could not do the job due to the unusual way in which our commercial framework generated form fields. This meant that several important use cases could not be tested with HttpUnit, and that we were going to have to have someone manually test them. […]

    Pingback by Ry’s Blog » Open Source: The “Just-Do-It-Yourself” Argument — May 31, 2006 @ 2:05 am

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress