Skip to Content
Author's profile photo Former Member

Timeless Software: Part 1

Cycles of Renovation

I’m sitting on a Lufthansa flight in the newly refurbished cabin of a Boeing 747, and I cannot help but marvel at the evolution of this beautiful plane.  The 747 was first released in the 1960s, before I was born. Today, the machine is so fundamentally different from its beginnings. It has an advanced cockpit, new communication and navigation systems, quieter, more efficient engines, and an updated, modern cabin, fitted with comfortable seats and new amenities. And yet, essentially, the Boeing 747 is the same as when it was first born: it possesses the same principles of flight, the same levels of safety and reliability, the same optimizations around the essentials of travel requirements, fuel consumption, and maintenance.

At its core, the 747 is engineered around safety, reliability, and maintainability. And like a rudder, these core attributes have guided and stabilized the evolution of the plane through a long period of changing customer expectations, advancing technologies, new market requirements, and shifting government regulations.

36 years after delivering our first packaged application, we’ve learned at SAP that successful large-scale enterprise software follows essentially the same trajectory and lineage.  Enterprise software solves fundamental problems that businesses face every day, over generations of business change and of technological change and, in doing so, it continuously evolves in a constant cycle of renovation.  I call this Timeless Software, and want to write here about what some of its fundamental characteristics are, and how it will help define our software for the next several generations of changes to come.

Long-Lived Relationships

Today, SAP software covers a massive breadth of business activities.  The functionality of the SAP Business Suite deals with a large spectrum of business processes, from finance and human resources to sales and service, from planning and procurement to manufacturing and logistics, from managing supply chains to managing business strategy, from decision-making to governance and compliance.  In addition, the suite comprises variations on these processes across 100+ countries and 25+ industries.  Despite this massive reach, customers expect a fundamental degree of coherence, stability, reliability, and integration across their entire software landscape. 

The demand for stability, given the mission critical nature of many of these business processes, coupled with the fundamental ways in which customers deploy the software to mirror the uniqueness of their business, means that our software and our relationships with customers, are very long-lived and often last decades.  Over this long lifespan, customers always expect the software to contribute to two fundamental metrics:

  • Control costs, by ensuring that the software is integrated, comprehensive and reliable, easy to operate and cheaply administer
  • Allow for growth, by ensuring that the software addresses differentiated areas and is easy to evolve, change, and integrate as necessary

So this is the essential duality that our customers expect from their IT landscape: Deliver operational efficiency via coherence and stability, while enabling business growth and managing change necessary to survive and grow.  And our prime requirement then becomes: Enable evolution of our software without disruption; provide a large breadth of stable functionality, over generations of change.  And it is around this requirement that we seek to design and architect the evolution of our software.

The Dynamics of Change

Business Change

What are the dynamics of constant change?  We know that business requirements change all the time; markets evolve, businesses are bought and sold, regulations change, and the circumstances that govern how customers purchase products evolve constantly.  Even the ordinary, day-to-day challenges of competition require IT organizations to constantly shift and evolve their landscapes. None of this is for the faint of heart.

New Technology Layers

The technological layers are also drivers of change and can transform the way people interact.  This year, we estimate that nearly a billion business users worldwide will use various mobile devices to conduct business. Every year we see roughly two new major UI paradigms.  Just in the last 3 years, we have seen the iPhone, Google’s work on Google maps, and highly interactive web applications enabled by AJAX, Adobe’s work with AIR, Microsoft’s work on Silverlight, and others. 

Emerging Programming Languages

Even programming languages, and programming models around them, continuously evolve.  Roughly every 10 years a major new language emerges, and minor ones emerge every 3 years or so, well within the lifecycle of large-scale applications.  New programming models and robust developer communities can quickly emerge around new languages.  The language Ruby, for example, is thought to have reached a million programmers faster than any other language ever.

Evolving Infrastructure

The three key infrastructural building blocks: processors, network and memory, evolve continuously and often non-linearly.  And this evolution sometimes enables, or requires, new architectural paradigms.  For instance, cheap main-memory and elastic farms of simple servers have enabled fundamentally new ways of analyzing large amounts of data. Similarly, multi-core processors require rethinking application programming to better utilize their parallelism or risk slowing down. 

So large scale software, over its lifetime, is subjected to change continuously, business change, as well as change across all the technology layers that it inhabits.

As I look to the future evolution of our products for the next generation, this becomes our essential challenge:

  • How do we build applications to serve the needs of every user, and every activity, in every business around the world? 
  • How do we do so effectively, efficiently, and with maximum coherence?
  • How do we evolve these applications, their ongoing change, consumption, delivery and integration, as well as their connection to the present, across generations of change? 

I believe the answer to this essential question is Timeless Software.

Understanding Timeless Software

Enterprise applications are built using a collection of programming models and languages that describe their content, are executed using a set of corresponding containers or run-time, and continuously change over their lifetime.  My sense is that these three constructs form the essence around which we need to understand Timeless Software, its characteristics, and how we achieve it:

  • Content, i.e. the application content, the UI content, the integration content, to represent and serve the activities of users
  • Containers, i.e. the runtime(s) that this content inhabits, and
  • Change, i.e. the ongoing operation and evolution of both the content and the containers over the lifecycle of a solution while maintaining a continuous link with the past

There are other aspects, to be sure, but these are the three basic ones and I want to share my view on their evolution in my next blog in this series.

Assigned tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member
      Considering to myself as a timeless developer, really appreciate the SAP approach about software quality, it's not an easy path. Please keep blogging.
      Author's profile photo Former Member
      Former Member
      Your blog is extremely interesting, and after reading the first part - the question in my mind is : is SAP's success primarily because it became a timeless software company, or is it because of the timeless software it developed?

      I am leaning towards the theory that SAP managed itself really well from inception, won the confidence of a huge customer base and hence people continued to have faith in them even though a lot changed in the software itself.

      Maybe the timeless nature of company and its software are intertwined and hence it is hard to attribute success to either one - but I am looking forward to read the next few blogs in the series to find that out.

      Author's profile photo Former Member
      Former Member

      I also wanted to add in emerging languages , the language " Grails ". Its really the combination of rails + java. another happening thing is Groovy language. they both have scalablity and robustness of java + scripting power of ruby.


      Author's profile photo Venkiteswaran Balakrishnan
      Venkiteswaran Balakrishnan
      Grails is the framework that uses Groovy. It is based on the same philosophy of Rails, i.e. high productivity web development
      Author's profile photo Former Member
      Former Member
      While I appreciate the article, and believe it touches the key concepts - it was a suprise to me to see that a major factor ... namely :people: ... was not mentioned.

      As SAP strives to become a market driven and customer focused company, it is not possible for us to ignore that it is often individuals who catalyse changes - not simply technological paradigms or business processes. In my opinion, the true challenge awaiting SAP is to allow for, predict, and - yes - enable such changes which come from our customers.

      Going back to the analogy of the 747 - SAP would be the leader for making each generation of 747s faster, more stable, and more technologically advanced. But to keep up with the new economy - we have to also become the innovators who put the customer first ... and start thinking about providing more legroom instead of more features.

      All the best - and keep blogging!

      Author's profile photo Former Member
      Former Member
      Hello Vishal,
      I appreciate much your commitment for evolution of our SAP software.

      However, translated to IT, evolution seems to be a place of always increasing complexity. Fears me sometimes, I admit.

      I wonder whether it makes sense to look for a moment at how nature handles complex (information) systems.

      Our brains, you could look at them as an information system or infrastructure, do behave similarly: always collecting and adding. Or look at a tree: it grows and grows, every year.
      Forever? No, we die. We start again with new flexibility in the next generation. Is there a reason for that ongoing dying?

      Of course we do not start from scratch. We have our genes which survive (not unchanged). Are there SAP genes?...

      Kind regards, Roland