Drive Innovation in Software Development: How to Choose Between Incremental and Fundamental Change

 ● 01st Jan 2019

15 min read

Business success is driven by making the right choices so that desirable products or services can be delivered to customers with intended profit margin and customer satisfaction.

[The following is a guest post from Derek D’Alessandro, a catalyst of successful technological change in areas such as DevOps, Agile and more.]

Appropriate technology choices drive long-term success by creating a sustainable quality level, cost structure and by defining the delivered product capabilities. Technology choices have the potential to increase efficiency or fundamentally change the way we work.  They can also allow for new possibilities for the products and services we provide.

It is helpful to broaden our concept of technologies so that we consider most change as adopting a new technology.  Some examples of technologies include:


  • Applications
  • Software tools
  • Methods or processes
  • Hardware
  • Programming languages
  • Data source or models
  • Reporting

No matter the type of technology, there are two very different modes of change; one is small and easy to predict the risks and returns, the other introduces large changes that are harder to predict.
Let’s first look at each major mode of change to understand some core characteristics of each.

Modes of Change


1. Incremental improvement in capability and/or efficiency

Incremental improvement is, by far, the most prevalent mode available to us.  Because these changes have limited scope, it is easy to imagine the new status quo and identify the path to completion.  For these reasons, it is relatively straightforward to interpret and establish ROI. These improvements could be technologies, processes, standards or other types of change.  
There are many core attributes of this type of change, and I’ll introduce a few that are predominant use cases such as:


  • Extending an existing technology or process so that it is more capable.
  • Introducing a new technology that has similar capability to an existing one, typically that is more efficient or cost effective than a technology currently being used.
  • Introducing a new technology that adds automation where none previously existed so that the process is unchanged but human interaction and error is removed.
  • Introducing a technology to solve a problem that you recently realized needs a solution.

Incremental change often introduces change in one discipline or function.  More often it changes a technology, a process or a best practice; it infrequently changes employee skill set significantly.  This mode of change has some interesting potential side effects that are too often overlooked because of the interpreted simplicity of a small change.  While we tend to understand each individual increment, the collection of increments over time is often uncoordinated.
Different parts of a process or technology system can unintentionally grow apart from itself with each improvement.  An example that we all have seen is a collection of systems that started out simple and has become unreasonably complex and harder to integrate with and operate.  Some of you might then ask if incremental changes are independent or dependent of each other. They are nearly always dependent on each other from the start of improving the system and need to be planned out.


2. Fundamental change in capability and/or efficiency

Fundamental change is less common and can be hard to define, implement, and identify ROI.  This type of change tends to have many unexpected benefits and impacts because of the immense change.  It also tends to have a higher up-front cost structure than incremental change, which makes the decision much harder to commit to.  Just as with incremental improvements, these improvements could be technologies, processes, standards or other types of change.
Fundamental changes can be to:


  • Simplify implemented technologies so that the number of technologies used is reduced.
  • Significantly alter the processes of a business, like changing the company planning process from end to end.
  • Replace a core strategic element like changing programming languages or moving from a traditional data center to cloud computing.

This mode of change is quite different than incremental change because it changes many areas at once; but it does also have some similarities.  Fundamental change can impact the same functions as incremental: Technology, process, best practices, education. It also adds changes to employee skillsets.  This requires close coordination of simultaneous parallel activities for it to be successful, because it all must move together. This is like issues that arise from uncoordinated individual incremental improvement where parts of the system grow apart.   Fundamental change also can reset the dependency tree of incremental changes because it generally is solving for the problems created by many incremental changes that have reached the maximum improvement level.
The main difference is that fundamental change will fail much faster without coordination and buy in.  Another challenge of fundamental change is that it often is mistaken for incremental change. This will likely cause implementation to collapse because the change across a business will not be coordinated.   Imagine if you changed from RUBY to JAVA but some teams or people didn’t switch, or QA didn’t update their test suites. The language change would quickly fail.


History Provides Many Examples with Lessons for the Modern World

Companies are generally better equipped to implement smaller changes associated with incremental change, and teams can become overwhelmed by the task of understanding the modes of change available with today’s technology. I’ve talked with many people concerning technology adoption and they generally take one of two paths when evaluating a solution that represents fundamental change:


  • The first path is to opt for an incremental solution over a fundamental solution because of the higher perceived risk with fundamental solutions.  This usually aligns with a lower cost and lower complexity incremental improvement and is rooted in the fundamental change solution being higher cost with significant unknown risk.
  • The second path is planning to do a partial rollout of a fundamental change solution to limit risk and cost.  There is an extra risk of failure because a partial rollout creates two different ways to do the same thing across many functions with people that need to use both systems.  It introduces more errors into the change process.

It might help to look at a few changes where we already know the outcomes based on history and that will become a parallel to better understanding modern change.  We’ll see that there are distinct similarities between now and the last few hundred years. Let’s consider the tree felling industry and a few changes they completed, some of which took decades.


Incremental Changes in the Tree Felling Industry

The early companies in this industry used axes to fell trees as has been done for hundreds of years.  The tools used for felling trees are a perfect comparison for today’s technology because of the long history of incremental and fundamental improvements. There are varied paths of the technology where you could easily skip an advancement but still be successful in adopting a future technology.   We also know from history that the axe was taken over by the saw, then the chainsaw, and then finally the feller buncher, but it took thousands of years to occur. These are all fundamental changes because they made significant impact to broad areas of the business. But the history of each of these individual changes are comprised of both incremental (Mode of Change 1) and fundamental (Mode of Change 2) improvements of this industry.
Short retrospective of axes:


  • Axes started with stone blades that were not very durable and were too thick at the head and too light to be effective.
  • They experienced many incremental improvements to the blade using many metals to improve head design and edge durability:  bronze, copper, wrought iron, steel and combinations of metals.
  • Improvements to handles only occurred rarely and wood was the standard.
  • Changes to felling axe head designs including invention of double headed axes which gave an additional cutting edge.

If we look at all these improvements, they are all incremental improvements because they target technology efficiency without requiring changes to employee skillset.  The result of these improvements was seen various ways such as making each swing more effective, allowing more swings per employee per day and decreasing axe maintenance.  It did not change the skill of the employee swinging the axe, with each improvement the axe continues to be swung with the same technique.  As we’d expect, these incremental changes don’t require employee skillsets to be updated.
There was a time when saws were available but were too expensive to purchase, required two employees to use, were difficult to carry and complex to maintain.  Because of this, axes remained in use for felling for a few extra centuries!


Fundamental Changes in the Tree Felling Industry

The next industry technology is a fundamental change to the felling industry:  the chainsaw. It started off with similar problems to saws because it was too expensive, required two employees to operate, maintenance was complex and the components were unproven.  This meant that ROI for early adopters was negative and there were too many unknown factors for most businesses to attempt the transition. After 50 years of improvement, the chainsaw became one-man and a highly reliable, cost-effective tool that everybody adopted.
The chainsaw changed drastically from the mid 1920’s until the mid 1970’s.  That 50-year span changed the design and cost of chainsaws so that the ROI became positive but there were still many unknowns that accompanied the fundamental change.  Now that the chainsaw is one-man and highly reliable, it was worth the shift. Because chainsaws are a well-accepted technology in 2018, we can see the ROI much clearer than almost 100 years ago.  It is an easy business choice for companies evaluating the use of chainsaws versus axes to determine that the cost of the chainsaws over the axe is worth the resulting increase of productivity.
Central to adopting chainsaws is that there is a significant skillset shift from axe to chainsaw.  An employee that had lower productivity with an axe could be a high producer with a chainsaw, but it required the employee to learn the new skills required to operate a chainsaw rather than an axe.  The inverse was also probable, that a highly acclaimed axe man would feel threatened by learning a new tool and being potentially less valued.
This represents a significant change to the workforce that might not have been considered in the original use case.  Because this was a fundamental change; adoption would fail if the required training, changes to field supplies and maintenance were not well coordinated. Suddenly there were new questions and needs to consider:


  • How do you use the chainsaw?
  • How do safety techniques and requirements change?
  • How do we change field supplies to add gas and oil?
  • What tools, spare parts and sharpening equipment is needed with chainsaws?

The last major change to the felling industry was the feller buncher.  It’s been around for a few decades but has significant drawbacks in cost and use in rough terrain, so chainsaws are still an effective choice.  This means there is no clear winner in the industry today between these two fundamental changes and they could coexist, if not in the same company, then at least in the same industry.  It would be a mistake to force two businesses with varied environments to use the same technology. Today, of course, nobody would start a new felling business with axes at the center of the technology stack!  However, depending on local factors, we’d clearly pick chainsaws in rough terrain or smaller operations and feller bunchers for large and open tracts of timber.


Understanding and Adopting Change in the 21st Century

The evaluation of incremental change has not significantly changed in thousands of years. The software and IT industries are similar to tree felling in many ways, with the main difference being how fast changes occur.  For software and IT, the same levels of change as we saw with the axe and chainsaw occurred in 10-20 years instead of thousands. Plus, the management of incremental and fundamental change is more important in software and IT.
It is easy to see the benefit of individual changes. The trick to incremental change is measuring and planning out lots of small changes to ensure they all work together and are all headed in appropriate directions.  This is an area in which we often create divergence in our systems, technologies or processes. The divergence sneaks up on us and we only discover it when things become unstable and start to topple, or cross integrations are too complex because it’s not built with a solid architecture (See Below).

The question then becomes:  how do we avoid or fix the divergence and what is the actual ROI of that incremental change?  If we discover that we’re regularly replacing incremental improvements it might be a strong sign the replaced increments were a waste of resources.  This highlights the importance of an overall improvement strategy.

With fundamental change, it is harder to identify the full extent of changes, but it doesn’t have to be shrouded in mystery. The first step is being able to differentiate fundamental change from incremental change.  This is important because of the high level of coordination required to succeed with fundamental change and different ways these contribute to ROI. Looking at Figure 3 below, there are different zones your implementation will fall into based on the understanding of the changes required across the business.

  • The ideal fundamental change is skillfully coordinated change in all three zones and is likely to be a success.
  • Coordinate change in two areas and you’ll fall in one of the white areas just outside the center:
    • Having workers skilled in using the right tools but without a strong process to coordinate efforts causes confusion.
    • Having the tooling and processes in place without workers with the right skills to use them leaves them ineffective.
    • Having established processes and skilled workers without the right tools to produce the desired outcome causes frustration.
  • Coordinate change in one area and you’ll fall in the light grey areas furthest from center.

Each of these areas alone are not sufficient to produce the desired fundamental change.  The further your implementation ends from the center of the Venn diagram, the faster it will probably fail.  The failure may also appear as a decrease in performance or alignment across teams before it completely collapses.
There are several ways the software business has seen fundamental change that we can all relate to:


  • Migrating from JavaScript to Bootstrap or Angular.
  • Migrating from Waterfall to Agile or Scrum or XP.
  • Adding Logstash to augment log4j and reduce the need for GREP.
  • Adding OverOps to replace aspects of logstash in an ecosystem.

Some of these changes have been tried across the industry, and many times at the same companies, before being successful or changing paths to a new solution.  Other of these changes have not begun in large volumes across the industry but will have similar challenges to be aware of to ensure success.
Another thing to keep in mind is that you don’t want to wait so long for a new technology or thought model to become fully mature that you’ve entirely missed the point of useful adoption.  Inaction is common with fundamental change because the change is so large that we choose to wait and adopt the next big technology. It is not unreasonable to skip over one fundamental change but each one we skip over means the next fundamental change is larger and harder to accomplish.  Eventually, large changes need to happen in a long-lived company to keep up with the speed of its competition and industry advancements.


Using Observations From the Past to Shape our Future

We’ve looked at incremental and fundamental changes, and seen that both are important to progress and serve different purposes.  Though incremental change is necessary and widely used, fundamental change is required because there are certain points in our evolution of thought and technology that simply cannot be achieved through many incremental improvements.  You can’t improve an axe and evolve it into a chainsaw, it requires fundamental change.
How and when we choose to make small improvements versus large improvements shapes our business possibilities.  One lesson from the tree felling example is that there were many opportunities to make large changes but it was not the right timing.  The technologies for change were available for hundreds of years but the technology maturity was not at the right level to be successful. How can we determine when the right time to get onboard a fundamental change is?  It all depends on the conditions at the time so that maturity can be measured against the business environment at that moment using the tactics below.
The key to success when implementing incremental or fundamental change in your business is to consider the following strategic tactics:


  1. Coordinate each change to move in a strategic direction
  2. Identify when the risk of implementing a fundamental change outweighs waiting for it to mature or waiting for the follow-on technology to become available.
  3. Understand your level of risk tolerance.  Can you be an early adopter or do you require a proven solution?
  4. Measure the current company and/or team culture versus desired final state.  The amount of required change should be proportional.
  5. Consider tooling, skillset, and processes in all fundamental changes.

Keeping these things in mind will help you navigate the decisions of incremental vs fundamental changes.  By balancing these changes, your business can keep up with the ever-evolving technologies while continuing to see a positive return on your technology investments.


Derek has been the catalyst for successful change in DevOps, Technology, Data Centers, Agile Methods and Software Development. He explores the intersection of Technology, Process and People to get the most out of every change. In his free time, Derek is mountain biking, skiing or doing large home projects.

Troubleshooting Apache Spark Applications with OverOps OverOps’ ability to detect precisely why something broke and to see variable state is invaluable in a distributed compute environment.
Troubleshooting Apache Spark Applications with OverOps

Next Article

The Fastest Way to Why.

Eliminate the detective work of searching logs for the Cause of critical issues. Resolve issues in minutes.
Learn More