Stephen Balkum

Agile Enthusiast, Leader, and Developer

Considering a software rewrite?

no comment

A potential client is considering a major rewrite of one of their most important applications. Now, at first I’m seeing a few dollar signs for a new project, but then I come back to earth and start thinking again later that evening. Strangely, my business partner, John, starts an IM conversation with me about software rewrites even though I hadn’t yet told him about the conversation I had with the client.

I hit the net searching for discussion on this topic and found plenty of blogs saying “don’t rewrite, refactor instead.” However, no one really speaks in favor of a rewrite. Here, we list reasons in favor of a rewrite:

  • Performance: The existing architecture and code was written in a day when the transaction volume was several orders of magnitude less.
  • Turnover: With a twist to the meaning of the term, everyone has heard the stories about this code and has managed to push back on every feature request for years. In that time all of the developers that actually did know that code have left.
  • Business has evolved: Similar to the performance reason, the business has evolved to the point that the architecture is challenged to meet the needs.
  • Development speed: The code is so rigid that developers cannot deliver features fast enough and the business is unable to take advantage of changing market conditions.

I contend that all of these reasons boil down to just one:

When changing the existing code is more expensive to the business, it is time for a rewrite.

This should absolutely be measurable. Compare the estimated development time of the requested features and the ROI of those features based on time with the estimated development time to rewrite.

I am proposing my client invest in a little time to evaluate the code closer for refactoring options.

First entry into the blogosphere

no comment

I’m finally making the leap.  However, it took a lot of prodding from multiple individuals to get to this point.  This is my first blog post.

As with many others before me, my first post will be more or less an introduction.  I am co-founder and principal consultant for Next Level Technology with John Teague. We are a custom software development and Agile coaching firm in Austin, Texas.  Although our business is new, we will succeed by taking advantage of short iterations, and the frequent communication that accompanies them, to make sure our clients get software that works just as they need.

I’ve been leading teams for over a decade.  I’ve written device drivers and 3D games, shrink wrap software and enterprise software, desktop software and web applications.  I’ve been a developer, technical lead, director, and vice president.  I won’t pretend to be a master of any slice of software development, but I’ve definitely been around the block.  This diversity has afforded me the opportunity to work with many different teams.  Some teams were quite strong; others, well, not so strong.

Most recently, I was the VP of Technology at Callaway Golf Interactive for over 6 years where I lead the teams that developed the ecommerce site for Callaway Golf, specifically www.callawaygolfpreowned.com and shop.callawaygolf.com.  During this time, my day-to-day focus shifted from mostly coding to mostly management.

I believe it was back in 2005, while at CGI, that Eric Hexter introduced me to Agile, something he was just discovering, and a new way of thinking.  Although I instantly saw the benefits from a project management and quality standpoint, it has been a continuous journey ever since.  It is absolutely a new way of approaching a project and working it to success.  Since then, I have become a certified ScrumMaster, lead multiple project cycles, and I even put myself into a team as a coder just for the experience.

My goal for this blog is pass along those useful tidbits of information, or start a topic of conversation.  I have a couple of pet projects going on that will afford me plenty of personal coding experience to share.  In addition, there will be technical leadership thoughts to pass along as I work with other teams as part of NLT.