|
Rewriting versus Refactoring
|
Posted: Feb 2, 2005 1:27 PM
|
|
> As far as rewriting applications, a few years ago Joel > Spolsky wrote an article about why he thinks it's a really > bad idea: > > http://www.joelonsoftware.com/articles/fog0000000069.html
That's a great essay. What we're doing actually isn't a rewrite in the Joel on Software sense. I guess it would be called a "write," because we are doing it for the first time. In the past, we didn't write it, we licensed it. Someone else, Jive Software, wrote it.
When I first started using Jive in 2001, I had the option of using Jive 1.2.4, which was the last open source release, or Jive 2.1, which was commercial, but only cost $100. Jive 2.1 had nicer skins, and I wanted to reward the Jive guys for their hard work, so I paid $100. When I built the features of Artima, such as Weblogs, Buzz, News, Chapters Library, and so on, I built them on top of the Jive API. It has worked out very well, and I would recommend Jive in general.
Our particular problem with Jive is not the past but the future. Artima badly needs to be clustered to deal with growing demand. Jive allows you do to that, but now that costs $8500 for the first server plus $7000 for additional servers. If you have four servers, that's $29,500. Ten servers is $71,500. So my little gesture of sending $100 as a token of my appreciation came back later to haunt me. In the context at the time, I think choosing Jive 2.1 over Jive 1.2.4 was the right decision. I think building the features such as Weblogs on top of Jive was also the right decision at the time. But sometimes one reasonable decision at a time leads you into a corner. And that's what happened here.
We're not planning to replace Jive with a rewrite. Jive will continue to run here forever, but just on one server. What we're planning to do is, as incrementally as possible, move stuff elsewhere and run it on our new architecture. For example, The C++ Source really deserves its own website with its own domain. To do that on top of Jive, I would have to buy another license, because my current license is only for one domain. And it still wouldn't be clustered, which would require even more money. So instead, we're building up a new architecture onto which we will move The C++ Source, and eventually most of the other features of the current Artima. And when that happens, I'm sure we will, as Joel Spolsky put it, astonish people with how few features we have. But in this context, we think it is the right way to go.
|
|