A Beginner’s Guide to Agile Development for SAP
Agile development has been standard best practice for software development for a couple of decades now, and for good reason; it has been proven to help development teams deliver higher quality software at a faster pace.
While many organizations employ agile development techniques in their IT landscape, most SAP teams continue to use a more traditional “waterfall” approach.
In this blog, we’re going to discuss why agile development is beneficial and how the approach can be applied to SAP environments.
Why agile development?
The pace of digitization has increased exponentially over the last few years driven not only by global events but also by changing customer and market demands. Meeting these demands requires a digital-first strategy powered by IT systems that are flexible and responsive without compromising stability.
One of the most critical of these IT systems is SAP, but traditional methods for building and delivering changes to SAP simply can’t keep pace with the needs of the business. Agile development is widely adopted amongst non-SAP IT teams, meaning they are prepared to move at high speed and respond to market changes quickly. But because SAP is often connected with these other systems, those systems can only adapt as quickly as SAP can. SAP then becomes the bottleneck to delivering value and innovation.
An article from McKinsey shed some light on just how impactful this bottleneck can be: they found that 75% of ERP transformation projects failed to stay on time or on budget. Their research showed five key reasons for this, three of which stood out to me: lack of integration between the business and IT, a lack of focus on delivering business value as opposed to technical execution, and the traditional waterfall methodology used in ERP development.
The good news is that adopting agile development in SAP can help you solve some of these challenges both in large ERP transformation projects, such as moving to S/4HANA, and when delivering Business-as-Usual (BAU) changes and smaller projects.
The benefits of agile for SAP
The goal of agile development is to deliver quality software more frequently so that customers get value more quickly, but there are a number of other benefits to adopting it as well.
Developing and deploying change this way also makes it significantly easier to plan and mitigate the risk and uncertainty of large-scale projects. It’s impossible to predict what’s going to happen even just a few months down the road so breaking larger projects into smaller deliverables enables teams to adapt quickly as changes arise.
Agile development also reduces the impact and risk that changes can have on your systems and users. Deploying a lot of big changes a few times a year lengthens the time it takes those changes to start delivering value, as users need time to learn them and fully put them into use. Deploying smaller sets of changes more frequently means users are trained much faster so they can start taking advantage sooner. Smaller changes also mean less risk from a technical perspective as there are simply fewer things to break.
Prioritization is another important part of agile development. Anyone who’s been around SAP for a while knows the frustration of deploying a release that took months to build only to be told that some of the changes simply aren’t needed anymore or weren’t what the customer was looking for. Taking an agile approach to development allows teams to continually re-prioritize what’s being worked on to ensure what’s delivered is actually of value.
With larger projects, it’s hard to know just how financially beneficial they are until after they’re released and the financial impact is compared to the amount invested. Breaking larger projects down into smaller deliverables gives a better idea of the cost and return. Using agile, you can keep track of the investment and benefits of each deployment as they’re released.
One other significant benefit of agile development is that releasing smaller units of work increases visibility into the status of software development and the progress that’s being made. This is especially important with SAP systems because many SAP teams work in silos and suffer from limited visibility.
How to do agile development in SAP
Agile development is not a predefined checklist of tasks to be completed. It is a methodology or set of best practices that can be approached in several different ways. Three of the most common methods are Kanban, scrum, and Scaled Agile Framework (SAFe).
Kanban was born in Toyota’s manufacturing production systems in the early 1940s. It’s about creating a list of each task to be performed and moving those tasks down the line as they’re completed. If you’ve ever seen columns on a whiteboard with post-it notes that get moved across the board as work progresses, that’s Kanban. If you’ve ever used or seen apps like Trello or Jira, those are widely popular Kanban-based tools.
Scrum is probably the most widely used agile method I see being used by companies doing agile in SAP, mainly because it’s a bit more structured (it’s a timebox approach with a defined amount of work) and it’s easier to use with larger projects. We’ll dive deeper into scrum a little later on.
Lastly, there’s SAFe, which is a highly structured approach with many different layers and scales to it. SAFe is generally about bringing the concepts of agile to the entire organization, not just software development, so it includes other things like budget planning.
There really is no right or wrong way to implement agile and you’ll need to find and adapt a solution that works best for your team. For example, here at Basis Technologies, we use Kanban for things like support tickets and bug fixes and scrum for our larger feature development projects.
Why most teams use scrum
Scrum plays well into the agile methodology because it is based around small, defined pieces of work called “sprints”. They are typically anywhere from two to four weeks long and involve a small team working on a very specific set of tasks called the “sprint backlog”.
It’s a very collaborative approach where everyone on the team has a daily meeting or “stand-up” where they discuss what they’re working on and any bottlenecks or issues that come up that the team could help address. The goal here is to break out of the typical silos teams live in and get everyone working together to deliver software rapidly.
The scrum teams working on each sprint consist of more than just developers. In a standard, non-SAP scrum, you’ll also have the scrum master, who is essentially a project manager, and the product owner who represents the customer or the end-user. SAP scrum teams typically also include members from the Basis, QA, and Configuration teams.
The product backlog is what is used to define the work that will take place in each sprint and the requirements in the product backlog are organized into what are called “user stories”. A user story defines what the user needs, why they need it, and what outcome they’re looking for. This is typically where SAP teams struggle in adopting agile because they don’t think about development in terms of small chunks; they think in big, long-term projects. But these small user stories are the backbone of agile development as they help deliver value to the customers when they need it, instead of three, six, or twelve months down the road.
User stories can be part of overarching goals which are called “themes”. Themes look at the outcomes you’re hoping to accomplish, and there can even be more mid-level goals called “epics” that sit between the user stories and the theme. You would then define a certain number of user stories in a sprint and deliver an epic of a certain number of sprints.
As you can see in the above diagram, we can map this workflow to SAP. For example, you might have “sales” as your theme, with things like “water” and “contract management” as your sub-groups and then the process step could be something like processing a return. The process step is where the user stories lie and that’s the part that’s key to agile development.
There are many tools for managing agile backlog such as Jira, ServiceNow, Azure DevOps, and others but typically there’s no way to connect these tools to SAP. That’s where ActiveControl, our SAP DevOps automation tool, comes in. With ActiveControl, every transport you create can be automatically tied to a user story in your agile management tool giving you complete transparency of what tasks are currently in progress, who’s working on them, and so on.
Managing a shared environment
One of the biggest challenges SAP teams face when adopting agile development is SAP’s shared development environment. You have multiple teams (70 in the case of one of our customers) working on different tasks with different desired outcomes all in the same development environment in the same code base. That creates major problems and headaches which is why automation tools like ActiveControl are critical to managing it all. ActiveControl automatically tracks every change as it’s made, along with who made it, so you have complete visibility of the work being done throughout the sprint.
One other area where automation and agile development go hand-in-hand is in shifting testing left to identify issues earlier and improve the quality of releases. SAP has its own tools to help with this like ABAPUnit testing, Code Inspector, and ABAP Test Cockpit, and ActiveControl can help you build these tools into your development cycle to ensure no transports are moved until proper checks have been run and signed off.
Review & feedback
The final piece of scrum is reviewing the work that was done and working together to improve the process for the next sprint. The sprint review is meant to evaluate the work you had planned to do, what work you accomplished, and how successful you were in achieving your goals. It’s also a chance to re-prioritize any stories you need to and plan for the next sprint.
The sprint retrospective is more about how the work was delivered, discussing ways the process can be improved, what challenges arose, and how you can overcome them.
Agile development for SAP enables you to apply modern development practices to your SAP landscape so you can build and implement changes quickly. With faster, more frequent delivery of high-quality software, companies are better equipped to respond to changing market dynamics and maintain a competitive edge.
If you’re curious about how to adopt agile in your SAP landscape, why not connect with us to see how we can help your organization?