In today’s landscape, where consumer needs evolve fast and competition is fierce, business agility and innovation are necessary. DevOps and business agility go hand in hand because DevOps practices drive software delivery performance, and software delivery performance drives business outcomes.
DevOps, an approach to software development, offers several advantages, including the ability to validate business decisions rapidly. It relies on automation and cutting-edge software tools, which leads to silos between business units being broken down–creating value across the entire organization. DevOps fosters a healthy culture, empowering every team member to perform at their best.
DevOps and cultural practices
What is DevOps?
DevOps helps organizations adapt to market needs by delivering valuable software faster and with higher quality. Many technical concepts are involved, but brushing DevOps as being just a technological shift would be a mistake. After all, the biggest challenges enterprises face regarding DevOps are organizational and cultural.
Innovation happens within a culture of sharing, safety, and risk-taking, and no investment in technology can make up for a lacking culture. Instead, management/Executive teams can encourage behavior that leads to technical excellence, psychological safety, and continuous improvement.
For a quick summary of DevOps, read this blog by Johan Abildskov on what it is.
Culture beats strategy every time
Imagine yourself in this scenario: An incident has just occurred and you’re scrambling to figure out what went wrong. Instead of shifting the blame to another person or group in the organization, focus on how the incident can be prevented from happening in the future.
Ron Westrum, the creator of the typology of organizational cultures, describes how an organization's culture is like an individual's personality. Like how one’s personality shapes their behavior, an organization’s culture lays the foundation for how people respond to challenges or opportunities. Great leaders define the system in which culture develops and plays an active role. But even without leadership explicitly shaping culture, a system will emerge based on rewards, punishments, resource allocation, and symbolic actions.
Westrum’s culture typology predicts both software delivery performance and business outcomes. Moreover, it’s also easily measurable, allowing you to deduce concrete actions based on survey results–making it a powerful tool for driving cultural change in the right direction.
We discussed this topic in more detail in an episode of our DevOps Sauna podcast.
Ask your software engineers this:
“How long do you have to wait to set up a new project, including the environments?”
If the answer is anything other than “I can do it myself whenever I want,” DevOps will present enormous gains for your organization. On the other hand, cultural patterns tend to override strategic efforts–no matter how skillfully crafted the strategy. A healthy culture is one with clarity and transparency in the workplace.
Are you Agile in name only?
In Agile software development, autonomous teams are empowered to work independently towards common goals. Depending on your industry and the size of your company, this may take work. Organizations return to more controlled structures after the initial excitement of adopting Agile practices. If that’s the case, is your software being developed in an Agile way?
In our experience (which we’ve discussed on our DevOps Sauna podcast episode on How software development leaders view DevOps and Agile), senior management often needs a better sense of what it means to be Agile.
Approval by an external body is only sometimes the best way forward, as increasing control and managing risk can decrease innovation and productivity. In heavily regulated industries, significant changes to operations only occasionally lead to speed and quality. Change approval processes tend to grow complex and confusing over time, which leads to longer feedback loops and longer time to market.
Thanks to the application of DevOps, change approval boards (CABs) can coach and strategize better today than they did in the past. The CAB should also ensure the process is transparent and that it works towards optimizing it to deliver value to customers.
Some questions to ask your Senior Leadership Team:
- Do teams deliver working software to and gather feedback from a group of real users every iteration (including the first one)?
- Are teams empowered to change the requirements based on user feedback?
- Are teams empowered to change their process based on what they learn?
Consolidate tooling with platform teams
Managing tickets and requirements across multiple systems increases overhead and leads to issues (like errors, rework, and misalignment). To address this, requirements should serve as a unifying force, connecting business targets and engaging all stakeholders. Integrating requirements effectively enhances transparency in product development processes.
The trick is to connect business metrics to your requirements management workflow, which can be done by consolidating tooling with a platform team, in-house, or as a service. By tracking requirements through each step up to the release, the level of automation and other advantages of DevOps becomes more apparent through metrics. Additionally, upfront traceability encourages auditing and compliance by design, providing a robust framework for ensuring adherence to necessary standards and regulations.
If you would like to learn more about the role platform teams play in your organization and platform engineering in general, check out our ultimate guide to platform engineering.
Data-driven is a state of mind
DevOps makes connecting business metrics to the work that your engineering department is doing much more straightforward, which is crucial as you can’t improve on what you cannot see. Data is only valuable if it leads to action, and using the correct language can guide data-driven decision-making at a company.
For example, "Make the BUY button pink to attract more attention and increase sales.”
Instead, encourage statements like this to be phrased as a hypothesis:
“We believe making the BUY button pink will attract more attention and increase sales.”
This clarifies that the intention is an experiment: we must measure, validate, and determine what we want to keep. The pink button may drive sales down for some unknown reason, but without a data-driven mindset, there won’t be a way to know what caused the issue.
Check out this episode of our DevOps Sauna podcast where we cover how DevOps can be the key to improving speed and scale for more information.
Transparency through a comprehensive DevOps assessment and technical due diligence
Our client, Variantum had been implementing a Cloud transition for three years and wanted a third-party perspective for its operations, which is why they ordered a complete software audit from us.
The technical practices of DevOps
Pursue Continuous Delivery in everything you do
Continuous Delivery comprises a collection of technical practices aimed at safely, swiftly, and sustainably placing various changes into the hands of users. It revolves around software architecture, automation, and fostering healthy technical practices.
Automation plays a crucial role in Continuous Delivery, whether in testing, deployment, or building processes, with the ultimate goal being to reduce repetitive tasks, empower engineers, enhance their knowledge, and boost overall job satisfaction. However, it's important to note that while automation is powerful, it can amplify the workload if not managed effectively. Drawing inspiration from Lean practices in production industries, the focus should be continuous improvement, optimizing the value stream, and minimizing waste.
Maintaining automation can also be challenging and may require considerable effort. We recommend utilizing existing COTS (Commercial Off-The-Shelf) tools like Atlassian’s Jira and Confluence, Docker, GitHub, GitLab, or Kubernetes, developed and supported by large communities and companies. Leveraging established solutions, whether commercial or open-source, can save time and resources compared to building custom solutions from scratch.
Here’s an article that goes over Continous Delivery in more detail.
Cloud is a crucial DevOps capability
A common misconception is that the cloud is all about where your infrastructure is located. But this is only half the story. What matters is how you use, manage, and provision your infrastructure. If no changes are made to how an organization works, where your servers are hosted becomes less relevant.
If an engineer has to go through a help desk and wait for days to get a machine to start a new project, the cloud needs to be used properly. To make the most of the cloud, you must build the right architecture and introduce agility across the organization.
Build your development community around version control
Managing changes in a rapidly evolving software product can be challenging. To understand the difference between the two versions and ensure traceability, version control is crucial. As Microsoft explains in this guide, Git has become the global standard for version control, widely used by over 90% of the world's developers as an open-source tool for managing source code.
Software systems are intricate, comprising various components deployed in multiple configurations. Consequently, storing the application source code and the test automation, infrastructure, and deployment pipeline in version control is essential.
Version control systems often integrate with task management tools like Jira Software, facilitating a comprehensive trace and audit trail and ensuring changes are well-documented and justified. Well-implemented version control also paves the way for adopting new practices such as automated security testing, code linting, and peer reviews, enhancing the overall software development process.
Did you know these factors should also be under version control?
- Declarative infrastructure
- Continuous Delivery pipeline configuration
- Building, testing, and running instructions
From monitoring to actionable insights
Knowing the current state of the applications you are maintaining enables data-driven decision-making. For example, take notice of active bugs in the desktop application or up-time for an online service. The aim is to prevent a customer from having to notify your engineers of a problem.
Monitoring can lead to actionable insights and proactivity by:
- Measuring what is believed to be the standard conditions of your applications
- Alerting on deviations
- Becoming aware of alert fatigue
- Using blameless postmortems to avoid recurring incidents
Remember: monitoring and observability should be part of the application design. The Puppet State of DevOps report shows that teams that can configure their own monitoring are more likely to be high performers.
Quality assurance is more than a gatekeeper
In traditional software development approaches, testing and quality assurance are isolated from software teams, raising tensions between developers and quality assurance. Developers often feel attacked when quality assurance steps in after they believe they’re done with their work, despite their goal of enhancing the product's quality.
Organizations should adopt a more collaborative approach to improve this dynamic and place quality assurance teams in a facilitating role. They should continuously review the automated tests used by teams, ensuring they remain maintainable and effective. Testers can also help with this by making test data available and optimizing the speed of pipelines.
Modern tools, like behavior-driven development (BDD), enable efficient automated acceptance testing using natural language. They also don't require coding knowledge, making it easier for stakeholders to understand the purpose of each test. With BDD, a broader group can engage in quality assurance discussions and contribute to individual test cases.
Thanks to high-level QA automation and integration into the Continuous Delivery pipeline, QA experts have more time to work on the tasks that aren’t usually done (like non-functional testing, exploratory testing, etc.), further streamlining the development process and ensuring higher-quality software releases. By fostering collaboration and embracing automation, organizations can achieve more efficient and effective quality assurance practices that benefit the entire software development lifecycle.
Check out our blog on the 5 books you should be reading to better understand the importance of continuous assurance if you’re interested.
Database migrations and security testing can all be automated
Your focus should be that all existing features are tested automatically so that you have a sense of safety before each new release.
Make security an integral part of your delivery pipeline
Cyber threats pose a serious risk to organizations, as security breaches can lead to severe financial and reputational damage, as personal data leaks or IT lockdowns can cause a loss in revenue and diminish a brand’s value. High-performing DevOps teams have solved the conflict between security and innovation as they promote collaboration between security specialists and development teams, ensuring safety is integral to the delivery pipeline.
Security specialists play a crucial role by providing pre-approved libraries and processes, allowing teams to create "secure by design" products rather than trying to add security as an afterthought. By integrating security into the development pipeline and leveraging automated security scanning tools, businesses can better protect themselves against cyber threats while maintaining a high rate of innovation. Additionally, involving security specialists even earlier in the development ensures threat models are considered even before time is spent on programming, ensuring technical solutions are robust when they’re created.
Here’s a blog by Darren Richardson that covers the threats and precautions anyone working in cybersecurity should know.
ePassi achieves better decision-making by automating business processes
As ePassi’s businesses developed quickly, they realized that much time had been spent on day-to-day, repetitive tasks. To extract data to improve the decision-making and operational processes, ePassi approached us to automate the processes.
Learn how we helped ePassi start their journey with their Robotic Process Automation (RPA) Kickstart project in this case study.
Lead successful DevOps transformations
DevOps transformations significantly change an organization's approach to work, but they’re not a one-time journey with a fixed destination. DevOps experts continuously evolve as part of their company culture and working methods, embracing improvements as an ongoing process that happens over time.
But to reach that level, there may be a period where concerted efforts are required to change the existing ways of working. This phase is what we refer to as a DevOps digital transformation, which aims to integrate DevOps practices into the organization's day-to-day operations and make it adaptable to customer needs and advancements in the field.
There is no one-size-fits-all approach to driving a successful Agile and DevOps transformation journey. Each organization is unique, and no "out of the box" solution universally applies. The transformation process requires a tailored approach considering the organization's specific challenges, goals, and existing practices. Harri Pendolin discusses this topic in detail in his blog, The three layers your transformation needs to happen in.
By embracing an Agile DevOps transformation plan and continuously adapting to changes, organizations can achieve elite DevOps performance and create a culture of continuous improvement and innovation.
While every organization's DevOps transformation is unique and requires a tailored approach, there are broadly similar phases that many transformations go through. A transformation outline or DevOps transformation roadmap can provide a general framework for organizations to adapt to their specific needs.
- Developer platform
- Communities of practice
- Team topologies
- Developer Experience
- Continuous Delivery
It’s essential to lay a solid foundation to establish a sustainable and scalable DevOps adoption deeply rooted in the organizational culture. Start by cultivating a healthy culture that embraces change, supported by transparent change approval processes, basic automation, diligent monitoring, and version control. These will set the stage for successfully implementing DevOps in a digital transformation.
We covered the topic of organizational cultures in more depth below.
Communities of practice and community builders
This refers to gathering professionals with a common interest in a particular subject, who then collaborate and devote their efforts to enhancing their expertise and skills. Establishing and fostering communities of practice presents a robust approach to scaling DevOps effectively.
These communities evolve into autonomous groups, becoming valuable guides for the organization's goals and pivotal in preserving and advancing its technical proficiencies. By cultivating communities like this, an organization enhances its adaptability to reorganizations and product changes. However, nurturing these communities requires both initial and ongoing investments. Communities thrive when they revolve around shared passions, exhibiting a voluntary nature and dynamic spirit that fuels collective knowledge growth.
It's important to acknowledge that communities of practice can be managed differently than conventional departments. Instead, they should define their existence as long as they maintain a clear purpose and receive support from management. Empowering communities in this manner encourages autonomy and fosters an environment where knowledge and innovation can flourish.
That being said, many different forms of internal leadership can happen within a community, such as:
- A thought leader
- Someone to organize activities and meetings
- Someone who documents practices
We like to call these internal leaders “community builders.” They are especially crucial in beginning a community of practice that still needs to be created. You may even have a community of practice in your organization without realizing it.
During the DevOps transformation, these community builders can create a sense of urgency. They then foster their communities of practice and take leadership roles within them.
- A community of practice for DevOps transformation
- A community of practice for security
- A community of practice for platform engineering
Check out our DevOps Sauna podcast episode on using service design tools to facilitate communities of practice for more information.
When DevOps meets design
The success of digital services relies on a careful design that aligns user experience, user flows, and branding with the engineering department's work. Like how software continuously evolves, designs must adapt and improve over time. Treating software like a living entity highlights the importance of consistently maintaining updated libraries for designers and developers, as relying on past projects might lead to outdated solutions.
A shared library promotes collaboration between design and development teams, encouraging smoother interactions and knowledge exchange. Integrating design and development processes can lead to rapid product releases and shorter time-to-market when combined with DevOps practices like automation.
What is a design system?
As inVision explains in this article, a design system is a set of libraries and processes that breaks down software projects into the simplest components, which can be reused across projects. The benefits of a design system include:
- Customer experience
Consistency in look and feel maintained across products.
- Pleasant collaboration
The design system can work as a mediator. Developers can submit pull requests for the brand team to approve.
- Organizational efficiency
They save time. Designers and developers don’t have to devise a solution for the same problem multiple times.
Continuous transformations with cloud and DevOps
Organizations utilizing DevOps practices find they can deliver better quality software faster–giving teams more time to work on new features and improving business outcomes. Successful cloud adoption also brings benefits in regard to scalability, availability, and cost-effectiveness and makes adopting new technologies, innovations, and experimentations far easier.
Being successful in both these disciplines provides businesses the agility needed to survive, reaping the benefits of the speed, quality, and efficiency of DevOps with the cost-effectiveness and ability to innovate in the cloud.
Learn how these approaches support each other in our guide "Make the most of DevOps and cloud."
Making a successful digital transformation with Eficode assessments
As Firstbeat's business continued to grow, they needed to keep their technology and processes pace. Some of the issues to address included updating and automating operations, overcoming hurdles related to scaling, and ensuring systems and software responsibilities weren't reliant on individual employees.
The essential business case for DevOps
DevOps is no longer optional–it’s essential. What was once a competitive advantage is now an industry standard, with DevOps and digital transformations being necessary for software organizations to succeed.
While technology and tools are vital aspects of DevOps, assuming they offer you a complete solution would be a mistake. No off-the-shelf product is available because DevOps doesn’t come in a box. Instead, key stakeholders and decision-makers must take responsibility for driving the necessary cultural changes from the top of their organizations. A combination of the right tools and approach is needed for businesses to realize their full DevOps potential.