Copado is a DevOps platform that grew its roots in Madrid back in 2013. When I joined, we were 80 employees strong and had recently expanded across the Atlantic with offices in Chicago and San Francisco. By late 2019, we were officially a global operation. As the pandemic hit, we realized we were already years into perfecting a remote and hybrid workforce.
Prior experience of working remotely helped us connect and collaborate with our teams. This is what DevOps is all about – a combination of team culture, ‘best practices’ in place, and the tools required to deliver applications at the speed expected in today’s demanding world. Based on this experience of implementing DevOps practices, here are five DevOps concepts you really need to know.
1. Incorporate Value-Driven Planning in Your Planning Process
Planning is one of the most critical DevOps concepts, but what does this actually include? Contrary to popular belief, there’s a lot more to it than simply prioritizing work.
While planning is typically regarded as one phase within the DevOps process, it includes multiple activities and phases:
- Feature Prioritization
- Gathering Requirements
- User Story Writing
- Stakeholder Approval
- Sprint Planning
There is a misconception that DevOps doesn’t include planning. In reality, the output that development teams produce relies largely on how effectively work is planned.
- Are the right user stories being worked on?
- Are the tasks or needs well-defined?
- Do they meet the needs of the customer?
Prioritization is an art within the planning phase. There are so many styles and ways to think about how work is allocated; it can be developer-led or backlog-driven; it can be based on user feedback or time available. Arguably, the most impactful way to plan work is based on value.
DevOps teams can and do impact overall business results. After all, everything that happens on a micro level becomes magnified as business users begin to use the features that have been delivered.
The DevOps team may be small compared to the overall size of the company, but it will have a large impact on the business and how it operates. The more proactive DevOps teams can be in planning features that provide value to end users, the more likely the business is to thrive.
2. Continue with Continuous Integration and Continuous Delivery
Continuous Integration (CI) and Continuous Delivery (CD) are fundamental DevOps concepts. They enable developers to manage their work and merge their changes into a central repository (or version control system), and release continuously. If you go back to the core DevOps principles, it’s all about achieving the best collaboration, whether or not you’re working on the same functions of classes, triggers, layouts, etc.
Think of your worst ‘version control’ nightmares dissipating because of CI/CD. But watch out for the major misconception that this is achieved purely from ‘tooling’. After all, you can’t buy tools and simply expect them to fix your problems – if you buy a drill, the shelves don’t go up on their own! First, you must understand the process (how to level the boards, where to use wall anchors, and so on.). In our developer world, it’s important to understand the tools and the processes that come along with it.
Similarly, CI/CD tools won’t fix your problems if you don’t have the right process in place (such as a branch management strategy or environment strategy). Everyone involved should be on board with this process, with the same end goal in mind.
3. Test to Verify Quality
The goal of any DevOps process should be to improve software delivery performance and the quality of work by maximizing the delivery of value. This includes strategically developing specific capabilities such as continuous delivery and the use of automated testing.
As companies continue to modernize, they need to find efficient ways to test new functionality.
Tests for developers include:
- Unit testing
- Code reviews
- Static analysis
Comprehensive tests include:
- Manual tests
- Automated tests
- User acceptance test
Development tests (static analysis, unit tests, and code reviews) are ways of building feedback into the development process to help improve the quality of work. These types of tests are the most critical to your DevOps cycle, and can be measured by assessing your code coverage, test failure rate, and static code analysis thresholds. Examples of metrics for monitoring development tests include Unit Test Coverage and Test Failure Rate.
User Acceptance tests are primarily functional in nature, and help business users perform end-to-end testing for a given business process or application. You can measure the success of your acceptance testing based on the number of reported defects (grouped by priority and severity). Functional testing can be manual or automated depending on the platform you choose for testing.
While Manual Testing is time-consuming (and not exactly scalable), automated tests are a great way to scale as customer expectations continue to grow. Automation testing practices enable you to automate all your end-to-end business processes across any technology within your IT landscape. Look for a platform that can give you a low code user experience, as this will help with easy test script creation without the need for deep technical expertise.
4. Incorporate Value Stream Management in Everything You Do
Value stream management is a core component in implementing DevOps. Originally a function in the manufacturing world (you may have heard it stemming from Toyota’s lean system), it’s a highly effective method for analyzing and visualizing the flow of value to the end-user. Think of a value stream map as the process of turning an idea into a product or service with the help of technology. It streamlines automation and can finally give developers and admins a way to showcase ROI, while providing a view of what the team is working on.
Implementing effective DevOps practices doesn’t have to be a struggle. Instead, by instilling lean and agile DevOps concepts, you can help teams work together seamlessly, making everyone’s jobs easier and creating a happy developer environment in the process.
5. Always Be Monitoring
Here’s an analogy for you to remember. If you’re driving a car, you’ll want to know how fast you’re going – naturally, you’ll take a look at the speedometer. It’s what keeps you in check, ensures the safety of you and others, and keeps you within the lawful speed limit. The same goes for monitoring in any digital transformation, whether it’s happening remotely or in person. In an environment with ever-changing processes, it’s essential to make sure you’re always getting better at what you’re trying to achieve.
Monitoring and analytics help everyone involved to keep moving in the right direction at all times, wherever they are located in the world. As the longest-running academic research program, representing over six years of research and 31,000 data points, the DevOps Research and Assessment (DORA) helps companies achieve the DevOps philosophy of speed and stability by identifying the four key traits and capabilities of elite teams.
Essentially, the DORA framework looks at four key metrics, which are divided across the two core areas of DevOps. Deployment Frequency and Mean Lead Time of Changes are used to measure DevOp speed, while Change Failure Rate and Mean Time to Recovery are used to measure stability.
You may use metrics that are more meaningful to your specific organization, which go beyond the DORA metrics – these should be monitored regularly. Salesforce is a great platform that provides solid monitoring capabilities, but you’ll find far better monitoring options if you work with a native tool that is built on (and for) the Salesforce platform.
Further reading: Why Does Salesforce Need DevOps?
Contrary to popular belief, DevOps is not only for developers! DevOps concepts are important for anyone involved in the development process, including Business Analysts, Business Users, Salesforce Admins, Technical Leads, QA Engineers, and Architects.
The outcomes of a successful DevOps team are tightly aligned with frequent releases, while maintaining the same or a higher level of quality. Testing early and often will ensure success and better outcomes. Don’t forget that monitoring and analytics are crucial to measure continuous improvement.
Ultimately, DevOps concepts combine the people, processes, and products required to enable continuous delivery of value to end-users. Often the ‘value’ part is left out of the process, so remember to incorporate value-driven planning in your planning process and value stream management – it’s integral to everything you do.
You can learn more about the Copado community here.
Read more: Your Complete Guide to Salesforce DevOps