10 step SAP self-assessment: Are we doing DevOps?
Do you think that DevOps isn’t for you? That it’s not relevant to SAP?
Or perhaps you are trying to achieve a DevOps culture, but find yourself unsure as to whether you’re succeeding?
Well, DevOps isn’t quite as black and white as whether you “are” or “are not” doing it. It’s more of a journey, with lots of different potential milestones along the way.
The DevOps movement has taken hold of software development and delivery and this means the landscape is changing for every company. The majority of companies we work with say they’re not doing DevOps, but when we talk to them we see that many are already applying DevOps concepts into their software delivery approach. They just don’t label it that way.
Those companies might not tick all the boxes for the complete and ‘ideal’ DevOps methodology, they might not be delivering at the pace of an Amazon or Netflix, but the common ambition is to deliver more value to the business – whether that’s through a ‘big bang’ or, more commonly, via incremental and iterative change.
For those wondering exactly what is DevOps for SAP, this page sums it up.
To find out whether or not you’re on the path to DevOps, consider these 10 questions:
1. Are you speeding up release cycles? Is your delivery process getting you what you need?
- You find your team is ramping up the delivery of software releases and increasing quality. Your work in progress is low, bottlenecks are slowly decreasing in your delivery workflow, and deployments are happening faster and with less rework.
- More checks, faster approvals and higher quality standards are becoming embedded in your delivery pathway, and your cycle times are reducing whilst velocity increases. There is an efficient continuous delivery process in place that is taking the pain and time out of getting a new application version to production. You are achieving agile projects and you may not even realize it.
Answer no? Need: Back to front application delivery support.
2. Are you employing full-scale automation?
- Your change and release management process – from development to production - is fully automated, and you can automatically roll back to a previous state when errors occur. If you’re manually deploying, it’s just not a DevOps pipeline. Manual deployments leave room for errors and poor-quality code. Automated deployment speeds up the process and provides a robust change workflow without manual intervention.
Answer no? Need: A tool to automate and orchestrate cross-system deployments.
3. Are you doing continuous integration with automated unit testing at every possible point?
- You’re no longer building and testing manually, so you've reduced avoidable delays. Continuous Integration requires developers to integrate their code changes into a central repository at frequent intervals. Each change is verified by automated build and unit tests (possibly even automated integration and regression tests). If the build or any tests fail, the team should be alerted immediately.
- Automated unit tests have fundamentally changed your approach to development, increasing confidence that units of code function as they should. Units need to be sized appropriately so that you don’t spend the rest of your natural life writing complex test cases.
Answer no? Need: A Test-Driven Development approach.
4. Do you have more resources devoted to automated testing than manual testing?
- You’ve automated everything that you can in your testing processes.
- In an ideal world everything should be automated, because manual processes are slow and expensive. If we’re realistic there a place for manual testing in DevOps - there are still some things that are really hard to do any other way - but anything that can be automated should be automated.
Answer no? Need: A way to reduce cost and manual testing effort.
5. Do your developers, testers, and operations engineers work together?
- You understand that communication and collaboration are key to efficient delivery of change in SAP applications. If your developers, testers and operations engineers aren't communicating with each other, you're not doing DevOps yet. Check out this whitepaper on laying the foundations for success with DevOps.
- One indication of successful communication is if developers and testers are using production-like systems, with production-like data, for development and testing.
Answer no? Need: Automation tools that facilitate full-scale collaboration across the business.
6. Do your developers, testers, product owners, and operations engineers have common, business-oriented goals?
- Your various development teams are working together, but they’re also closely connected to representatives of the business, in order to understand shared goals and provide feedback on the feasibility of requested requirements. Business goals might seem a secondary focus to some developers and testers but ultimately they are what everyone should be working together to achieve.
- Organizing teams with strong communication and effective collaboration should be a major focus. Ask yourself and your team if they are making the maximum contribution to accelerating the throughput of work in the delivery pipeline.
Answer no? Need: Goals, KPI’s and objectives for continuous improvement.
7. Does the team have full visibility of change?
- You’ve overcome the situation where code changes are delayed (or in extreme cases ignored) because it’s difficult for approvers to understand their importance and implications.
- If you have a full audit history and structured approval workflows set up, management will have the confidence to approve or delegate to team members as required.
- Delegation of responsibility increases resource efficiency, enhances collaboration and knowledge sharing across the team, and improves overall delivery speed and quality.
Answer no? Need: An SAP change control process that gives full visibility into all code changes with comprehensive audit history.
8. Can you consistently spot code quality issues early in the development process, before they get near to production?
- You’re managing to catch risky code changes early in development and thereby reducing the amount of deployment failures further down the line.
- A lack of quality checks early in the development and testing process ultimately reduces the speed at which changes are delivered to the business and increases overall costs. Whether it's bad code or bad practices, you need to identify and address problems at the earliest opportunity. DevOps is all about increasing the feedback loop and shifting every step in the development lifecycle to the left.
9. Do you have feedback mechanisms in place to ensure continuous assessment and drive improvement and progress?
- Constant performance feedback is a crucial part of successful execution if you're aiming to reap the many benefits of Agile and DevOps approaches. (Read this success story to learn how a multinational manufacturer of construction materials moved to weekly SAP updates).
- You have a regular, iterative review process that validates what has been done and identifies how things could be improved in future, so that you can pinpoint when something has gone wrong, resolve the problem as soon as possible, and make sure it doesn't happen again.
- Clear goals, milestones and metrics provide the chance to recognize achievements, failures and – where necessary - quickly pivot to get a clear focus on the end goal.
Answer no? Need: A dashboard project overview and full collaboration in one tool.
10. Are you realizing the value and need for analytics?
- You’re able to measure the performance of development and testing thanks to a set of relevant metrics and KPIs, and you have the tools that allow you to display the right information in an accessible manner.
- That means you can investigate key questions, such as where pockets of value lie, where waste is being generated and the cost of change and inefficiency.
- Detailed analytics are helping you to understand where competitive advantage lies.
Answer no? Need: Analytical tools to highlight bottlenecks and inefficiencies.
By now you should have an idea of what stage you are in the journey towards DevOps.
If you answered 10/10, well done! What more can you do? Continuous improvement and embedding security into DevOps (DevSecOps, to some) might be a start. Extend across the organization and introduce DevOps to other areas of the business. You can never over-collaborate and improve.
If you scored a bit lower, there’s still hope. DevOps is a modern software delivery approach and it’s all about optimizing and improving the end-to-end flow of new features to meet business demand. It's business-focused, not IT-focused, and there’s always room for improvement whatever your starting point.
If you're trying to:
- Increase deployment frequency and achieve faster time to market
- Lower failure rate of new releases
- Shorten lead time between fixes
- Improve mean time to recovery
then you definitely have a DevOps mentality. It's just a question of whether you are delivering this in practice. If not, maybe you need some help or a change of approach.
To learn more about the tools and processes that can get you towards the end goal of delivering more to the business, get in touch and we can show you how we can provide you with the means for a continuous delivery framework.