At Workday we’re focused on developing enterprise solutions that are easier to use, easier to change, and easier to integrate than traditional applications. When we started the company we thought “easier to change” meant two things. First, we envisioned cloud applications that our customers could configure without breaking our ability to upgrade their changes. Second, we wanted a platform that allowed us to continuously deliver new innovations to our customers.
If you’ve followed Workday, you know we’ve had a lot to say about change in both of these dimensions. Our customers enjoy the ability to configure business processes, reports, organization structures, security profiles, and much more without having to code or worry about breaking the upgrade. They’ve received three feature-rich updates each year so they can take advantage of ongoing innovation without the high cost of a “classic” enterprise upgrade.
But, when it comes to change it turns out this is only half the story. As we continue to build our company it’s becoming apparent that change—and continuous change—also needs to occur at both an architectural level and a development/delivery process level. To thrive in the enterprise software space today you have to embrace continuous change at all of these levels: customer configuration, new feature delivery, underlying architecture, and service delivery.
Continuous change is the “new normal” for enterprise software. Who would have thought that? Well, I can think of one person, our co-CEO Dave Duffield. I remember many years ago and before Workday, sitting on a panel with Dave to answer media questions at a late ‘90’s tech conference. We were there to talk about, among other things, the beginning of the move to browser-based access to ERP applications. Someone asked what we thought of the Internet phenomenon. Dave responded that he expected, “and frankly hoped,” that the Internet would change everything about the enterprise applications space. As some on our team scrambled to describe what “Dave really meant,” I smiled to myself knowing that, as usual, Dave meant exactly what he had just said. The CEO of a multi-billion dollar company with thousands of customers that was just starting to explore the Internet (along with everyone else in enterprise software) wanted everything to change. Embracing continuous change doesn’t go far enough to describe Dave. For him it’s more like craving continuous change.
At Workday our customers continue to configure our applications just as we continue to rapidly develop and deliver new features. However, in addition to that we continue to change on other levels. We are aggressively evolving the architecture all our customers run on:
- We continue to change the way application data is kept in memory. Instead of storing all data in memory we have added options to compress data for certain classes. Compressed instances may be kept in memory or off loaded to an in-memory cache. For classes with high numbers (millions) of instances our developers can now specify that data be stored in a “tabular” data store on disk and accessed via an in-memory index. This eliminates the need to traverse the relationships in the main in-memory structures in order to report on high volumes of data. The “tabular” storage method is being used to store journal voucher detail for Workday Financial Management.
- We’ve changed how we store unstructured data. We used to store it as a “blob” data type in MySQL. Now we use Riak, which offers superior replication and reliability at scale.
- We are in the process of changing how in-memory data is stored in MySQL. Instead of decomposing the in-memory representation of data into many rows across three tables (instance, attribute, relationship) we are storing data with a serialization model that more closely reflects the way it is stored in memory. This change will reduce the size of our MySQL databases dramatically and will speed the time it takes to load data into memory. This change also essentially unlinks us from any dependence on relational database technology for storage.
Probably the best example of embracing continuous change is happening on the service delivery side of our business. Workday has moved to continuous deployment of new features to a single code line. This move, along with the continuous background conversion of data for new features, enables us to complete updates for our production customers with less scheduled downtime. Application of changes to a single code line reduces the expense of maintaining multiple code lines around each update we do. Moving to continuous deployment also gives us the flexibility to continue to respond to our customers’ requirements when it comes to the number of updates we do each year.
With pundits proclaiming that the Internet, the cloud, mobile, social, in-memory, and big data (pick one or add your favorite) are going to change everything, it seems like we’re living in the world that Dave Duffield craves. In this world change is ongoing, and the secret to embracing it is to not get tied down to any one way of doing things. Eight years in we are still consistent with the original principles of Workday—non-relational modeling of application data, definition of the application in metadata, transaction and analytic processing in memory, and frequent updates. However, the actual implementation of these principles continues to change.