A Practical Guide To DevOps For ERP

James Roberts

Part of the “DevOps for ERP” series

Whether or not you believe in the value that DevOps can offer to a business – and there’s already plenty of evidence to show that it can deliver major benefits – there’s no doubt that more and more companies are starting to wonder why they haven’t extended this approach to their ERP systems.

Not so long ago, I regularly had to explain what agile and DevOps meant, but nowadays, people come to us asking how we can help them adopt these approaches.

So why the change? Transformation is the key. It’s a word that’s a bit overused by my colleagues in the marketing world, in my opinion. But with the move to cloud, the constant emergence of new technologies, and growing pressure on businesses to innovate and increase competitiveness, real changes are happening that IT teams simply have to respond to.

Perhaps unlike in years gone by, ERP teams are not immune to this trend. As “systems of engagement” like websites and mobile apps change faster than ever, the “systems of record” that often power them need to keep pace. Otherwise the whole business slows down.

Unfortunately, the ERP development processes most people have been familiar with throughout their careers – the “waterfall” method most often still in use today ­– tend to suffer from a slow pace of change. This can be explained by the concern that changing things in ERP systems has traditionally come with a high chance of failure (an unacceptable outcome for business-critical systems).

DevOps, on the other hand, supports application delivery in shorter, more frequent cycles where quality is embedded from the start of the process, and risk is substantially reduced.

Great, I hear you say; let’s do it! However, even the most enthusiastic organizations cannot implement DevOps in ERP systems in exactly the same way as they’ve done for other applications. The fundamental requirements for DevOps are the same – I covered some of them here­ – but the practicalities are different, not least because standard DevOps tools aren’t capable of doing the job. What’s more, the DevOps experts don’t necessarily understand what’s needed in ERP, while the ERP experts may never have heard of DevOps!

What is the practical reality if companies do adopt DevOps for ERP?

Higher-quality development

Delivering software at high speed requires a robust development process that combines clear business requirements and constant feedback. DevOps mandates that ownership of quality “shifts left” and is embedded from the very start of the process. This way, most (and ideally all) problems can be identified long before they get to live production systems (where the disruption caused and associated cost to fix are much greater).

In practice, this means we need to ensure that nothing leaves development without being fully quality-checked. Working practices like daily stand-up sessions, mandatory peer reviews of code, and a set of universal coding standards might not seem revolutionary for some IT teams, but they are new ideas for many ERP professionals. They’re only part of the solution, though, going along with technical elements like automated unit testing and templated lock-down of high-risk objects.

One other practical outcome of DevOps from the very first stage of development is that ERP and business teams must be more closely aligned to ensure that customer requirements are clearly understood. Integration between the development team and other IT functions like QA and operations also establishes an early validation step.

Low-risk, high cadence delivery

Continuous integration is an aspect of DevOps that means that – unlike in many ERP landscapes – changes can be successfully deployed to QA or any other downstream system at any time without risk. The big change here is the ability to deploy based on business priorities, rather than just having to wait for the next release window.

Automation gives you the means to achieve this new high-frequency delivery cadence in ERP systems by providing a way to better manage risk (spreadsheets definitely do not form a core part of a DevOps-based software delivery process!). It enables you to check every change for technical issues like completeness, sequencing, dependencies, risk, and impact and more, ensuring that nothing is promoted prematurely.

This more rigorous, agile approach means QA teams, in particular, can focus their attention on real issues rather than technical “noise,” which accelerates the delivery of functionality that business users or customers are waiting for. Changes can be selectively and automatically deployed with confidence, rather than waiting for the next full release.

Minimal production impact

“Stability is king” has long been an unofficial mantra in ERP environments, given their importance to day-to-day business operations. With DevOps, the required system stability is maintained even though live production systems can be updated far more often. Rigorous controls – built on both technical solutions and new collaborative workflows – ensure that deployments are safely delivered to end users as soon as possible.

But there is always a risk, however small, that a change to live ERP systems can cause problems that stop the business. That’s why Mean Time To Recover (as opposed to the more traditional Mean Time To Failure) is a key DevOps metric. The most effective ERP DevOps processes feature a back-out plan that allows changes to be reversed as quickly as possible so, even if disaster strikes, the impact of change-related downtime is minimal, and business continuity can be maintained.

The culture question

As I’ve explained, when implemented correctly, DevOps fundamentally changes traditional ERP development processes. However, the manner in which DevOps impacts the roles and approach of staff can be just as important. In DevOps, effective collaboration is key. Traditional silos based on job function are replaced by multi-skilled, cross-functional teams that work together to deliver agreed-upon business outcomes. This may require a significant shift in how teams are organized.

It’s normal for some people to find this new way of working challenging, but creating a successful DevOps culture empowers team members to take responsibility at every stage of the development lifecycle. It enables them to collaborate with their colleagues and focus on a common goal of rapidly delivering the high-quality features and functionality the business needs to remain competitive.

DevOps benefits and outcomes

Change happens fast, and companies need to respond quickly. IT systems must, therefore, have the flexibility to rapidly change, expand, extend, and adapt.

But accelerating delivery cannot be done at the expense of business continuity. Successfully adopting DevOps for ERP combines speed, quality improvements, and risk reduction. That provides the flexibility to change ERP environments at the speed the business needs with confidence that it can be achieved without compromising stability.

For more on this topic, please read “How to Build a Business Case for DevOps” and “Self-Assessment: Are You Already Doing ERP DevOps?”

For a practical guide on how to introduce DevOps to your ERP software development and delivery processes, download our e-book.

A version of this article originally appeared on the Basis Technologies blog. This adapted version is republished by permission. Basis Technologies is an SAP silver partner.

James Roberts

About James Roberts

James Roberts is chief technology officer at Basis Technologies, responsible for driving product vision, strategy, and direction across the company’s innovative automation portfolio, and for ensuring that the engineering teams deliver world-class solutions. He has 30 years of experience in the software industry and nearly 25 years of SAP expertise working in a multitude of roles at major multinational companies.