Friday, February 16, 2007

A Brief History

So while we are eagerly awaiting to get rolling with the RoR rewrite, we are fleshing out our development environments now, I thought I would give a brief history of our web development. Some of our current problems, and some of the things we hope Rails will resolve.

I've been with the company over 6 years now. When I got here we did not have a web site. Our first corporate site was Java, deployed about 5 years ago; all development was done overseas. No one liked the look and feel of it. 1 year later contractors were brought in house to redesign it and add some additional functionality. It was in production for about 6 months when a new director of application development was hired. He was a .NET guy. So that, combined with the daily reboots of the web servers that were needed to keep the site running, led to the decision to go .NET. He brought in new contractors to change the architecture. I was added to the team of contractors a few weeks before the launch of version 3 of our corporate site. Version 3 finally gave us a decent OO and SOA architecture.

That's when the fun began. All of a sudden, we turned into a huge growth company. We have quadrupled revenues in the last 3 years, and we plan to grow another 2.5 times in the next 2-3 years. With that growth has come the need for more development. What started as a single corporate site just 2 years ago, has turned into a family of 9 sites. Many of these sites share similar, if not identical functionality, a few are content only. An OO/SOA architecture should lend itself well to development like this. The problem is, as is all too common, time. The time lines we were given didn't allow us to design and implement the proper, integrated solution. "I don't care if the code is just copied, just don't miss the deadline." How heartbreaking is it to hear that from a top executive, but it's a fact of life. So we broke the code off and rebranded. To make matters worse, different teams of contractors were brought in to work on different sites. So those 9 sites are in 6 distinct code bases in 3 different SCMs. You can imagine the maintenance nightmare.

So how do we plan to solve this? Consolidation of code and work effort is an obvious start, but that's just re-leveling. Once we consolidate, then what? The timelines aren't getting any longer. In 3 years we'll be back here again. We just can't develop fast enough. Now that we do have a consolidated, full-time web team, led by yours truly, it's time to step back and attack this from a new front. Rails to the rescue. RoR is absolutely the quickest way to develop for the web. We intend for Rails to give us the edge we need in time, to design and develop the way we know it should, and still make our deadlines. If you're reading this, then I'm sure I'm preaching to the choir.

No comments: