The Fallow Field Theory

Legacy software migrations are complex and risky. In the era of agile development, why do we continue large rewrites of code?
Leave a comment

Crop-RotationTo rewrite or refactor, that is the question.  I had a wonderful conversation last night with Julian Flaks of Cantina about when an organization should scrap its legacy code entirely and when it should modify it in place to make it current.

In the digital media space there are a lot of site redesigns, which are invariably more than just in place visual design changes but feature changes as well.  Most of the time developers will use a redesign to eliminate (or so they think) technical debt by doing it the right way this time.  Instead of getting their existing code to meet the desired design changes they rewrite everything.

Today you can see some of the risks associated with this practice at hbr.org.  Before I go any further I should state that development teams that I have led have rewritten code from scratch with similar peril.  The question is why do we do something that is so dangerous?

Fundamentally, Julian’s point was that 1) trunk will continue to be updated during the redesign of any code and therefore you are duplicating efforts to create feature improvements for both the legacy and new code base and 2) the minimally viable product is the exiting product.  The latter of these points is the one that I am fascinated by.

A minimally viable product or MVP is the minimal portfolio of features that the user will expect to use the product.  It is rare that any customer base is willing to let go of functionality.  If designed properly (and that is a huge caveat) then all of the features should have been created to meet some consumer demand.  Therefore, Julian’s logic is that the MVP will be the existing site’s functionality.

This simple insight outlines the problem perfectly.  A redesign should only be design refactoring and nothing more.  Similarly when we refactor code we are not supposed to create new functionality.  Why are we changing the functionality to match the time of the design change.  Inherently this is because we still tie the concept of visual design and UX.  I should be able to change the visual design of a site without changing the underlying functionality.

The issue arises when the redesign needs to be justified.  Why change the design of the site?  Because it will allow us to change the functionality of the site to increase revenue, audience, or whatever metric you please.  If the visual design had to stand alone it would never get done.  However, if the code refactoring had to stand alone it would never get approved either.

We need a new path forward.  As much as we focus on technical debt, we need to concern ourselves with design debt, and UX debt.  Designers are still stuck in a world largely driven by the outdated model of set it and forget it.  They spend a lot of time up front building style guides and then they keep MacGyvering this style to fit desired functionality.  Eventually, the style guide is either so outdated, design turnover becomes too high or the style guide becomes too great an obstacle to accommodate the customers’ needs.  And the redesign is born.

I would like to propose a three field system to address the issue of debt for the tech, UX, and design teams.  In short, the three field system refers to a medieval solution to guaranteeing better crop yields over time.  By rotating the crops through three fields, one of which is fallow while the other two are active, the fertility of the soil was maintained.  In turn this produced better crops which improved the overall nutrition of the consuming population.


About Mike Krolak

Mike Krolak was introduced to computers, robots, and communication systems almost as soon as he could walk. Beginning at age seven he toured the country working on exhibitions that appeared at major trade shows and museums, and on CNN network news. As part of these exhibits, he used natural language to program an intelligent CAD system to design complex, cantilevered, block structures; designed Lincoln Logs houses on an intelligent CAD connected to a self-programming fabrication factory; and programmed real robotic turtles and assorted talking mobile robots. Mike earned his bachelor degree in mathematics from the University of Chicago where he was a teaching assistant as well. While in Chicago he also tutored inner city students to help them transition to the prestigious Illinois State Math and Science High School. He has published material on using a massively parallel computer for image processing and finding large prime numbers; funded by the National Super Computer Center. As one of the early pioneers in using the web for distance learning, in 1994 he helped develop a project, funded and positively reviewed by NSF. The project featured virtual plant tours, tutorials on CNC machining, and a variety of production processes and products to first year Industrial and Manufacturing Engineers. This course was developed for the University of Rhode Island and UMass Lowell. Mike also participated on a team to provide navigational aids to the visually impaired funded by NSF. Mike climbed through the ranks at the Boston Globe from a software consultant all the way to an Executive Director where he built a team of more than 40 directors, managers, software engineers, web developers, quality engineers, and project delivery managers reporting to him. Additionally, he managed a team 8 offshore developers in Siberia and India.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>