DevOps


A guide to faster and safer digital product delivery.

Today’s marketplace is unpredictable. Customers are increasingly demanding and businesses have to face challenges head-on. Building great culture, embracing technological changes, and shifting your ways of working can prepare you for this ever-changing market.

But what does all that mean? Simply put, with the right approach, your business can achieve new levels of productivity, security and innovation.

That approach is DevOps.  

What_is_devops?

What is DevOps?

When it comes to the basic understanding of DevOps, you will find a wide range of definitions. But at ClearPoint, we define it as a set of best practices that help us deliver software faster without risking quality, security or business outcomes. In a way, these best practices are a collection of experiences, engineering techniques and approaches that are shared in theory, but unique for every team. DevOps removes traditionally isolated teams from silos and enables teams to operate in more collaborative ways.

Although the DevOps term was born out of a need to emphasise a collaborative approach of development and operations, these days DevOps teams are truly cross-functional. This means they have the capability to take product ideas through to customers, without requiring anyone from outside their team to get involved. That is, the team is able to act autonomously, delivering products or ideas without requiring outside input--self-sufficient and efficient.

Often, DevOps is referred to as an extension of ‘Agile ways of working’, however the DevOps approach is not just about how your teams can work together. A DevOps formula would not be complete without solid technology and engineering practices, and a team & business culture that promotes continuous improvement and experimentation.

Why DevOps?

Introducing DevOps methodology into your enterprise is good for your business, good for your teams and good for your customers. DevOps makes your business more competitive. After all, it is all about delivering your customers the most reliable, secure product at an accelerated pace. Meanwhile, your teams get to work cross-functionally with more opportunities for innovation. We unpack more of the benefits of DevOps here.

" Faster and safer digital product delivery. "
- Rob Cleghorn, Chief of Engineering, ClearPoint

What are DevOps Enablers?


In order to deliver more quickly and safely to customers, there are three key DevOps enablers that need to work together:
 
ico-1@2x

Culture

ico-2@2x

Ways of working

ico-3@2x

Technology

It’s important to understand the concepts and goals of each enabler. It’s also important to realise that every organisation and every team has certain levels of capability within these enablers. The focus should be on continual improvements within each enabler, as opposed to an ideal end state.

ico-1@2x

Culture


Culture is a huge part of DevOps, and some would even argue that DevOps is a culture. You can find many articles on what creates
good DevOps culture, but fundamentally we boil it down to 3 areas: High trust, innovation, and growth mindset.

  • High Trust

    Management needs to enable their product and technology teams, and agree on a vision and the outcomes required. Management must give their teams the freedom to do everything from architecture to delivery, trusting their teams to design, build and deliver the organisation’s vision. They need to quickly present ideas to customers throughout work cycles, solicit feedback and own the suggested changes as a team, continually improving anywhere they can.

  • Innovation and growth mindset

    Customer demands in the digital world are growing increasingly fast - if you don’t innovate, you will be left behind. A big part of culture is providing a safe place to fail, try, and fail again. DevOps requires a no-blame culture. Failing is learning and without it, we never improve. Creating safe havens for innovation is crucial. The variety of practices that support this can include canary releases, small blast radius on changes, A/B testing and quick customer feedback. All these practices mean we can try, learn and try again.

"Innovation isn’t something you build, you just get out of it’s way. "
- Rob Cleghorn, Chief of Engineering, ClearPoint

Looking to drive DevOps throughout your business?

Find out how ClearPoint can help you begin your journey with our DevOps Acceleration package

FIND OUT MORE

ico-2@2x

Ways of Working


DevOps and Lean Product Management

DevOps requires the business and teams to have a product focused mindset, which is implemented with lean ways of working and allows for continuous product improvement. Despite many companies adopting agile ways of working, it’s still common in larger companies for budgeting, planning and analysing requirements to take months. The work is often split into big projects, resulting in infrequent, large releases and an inability to get consistent feedback from customers.

In contrast, a ‘lean approach’ is highly focused on customer-driven product development from the very beginning of the product life-cycle. This means that testing of the product concept starts very early in the design phase, quickly followed with getting it in front of the customers and establishing feedback loops. It is also important to make the move from “projects with starts and ends” to product teams that continuously improve the product, based on validated customer needs and feedback.

There are several characteristics of lean and product-focused DevOps teams:

Teams slice-up products and features into small batches that can be completed in small iterations, including the use of MVPs (minimum viable products)


Teams have a good understanding of workflow from the business all the way through to customers. They have visibility of this flow, including the status of products and features.


Teams actively and regularly seek customer feedback, and incorporate this feedback into the design of their products.


In DevOps, there are a number of ways of working that augment a lean approach. These enable teams to further deliver faster and better.
  • Intra-team collaboration is important. A focus on building a product that the customer can not only see accruing value, but always has confidence in should be key to the evaluation of every requirement. Breaking confidence is the quickest step towards getting under the thumb of a Release Manager, and avoiding this fate should be the top priority of any DevOps focused team.
  • DevOps ways of working strive towards continuous delivery (certain environments have promotion gates) or continuous deployment. Functionality does not have to be complete to go into production, it simply has to not break existing expectations. Change the conversation from “should we deploy to production” to “why shouldn’t we deploy to production”?
  • DevOps teams should be able to rebalance and have cross-functional ownership. Developers who have reached their WIP and where QA are bottlenecking should stop and help. QA should be able to provide services to infrastructure.
  • A well-operating DevOps team has a spread of talent and a focus on improving the overall capabilities of everyone in the group. This enables the whole team to deliver faster to customers while maintaining trust.

Organisations that remain focused on big design up-front policies, or where their Development teams try to be Agile while the business is focused on budgets and planning, are unable to benefit from DevOps ways of working, but can often still benefit from the technology.

ico-3@2x

Technology


Technology plays a major role in establishing strong DevOps teams.

There are several best practices that enable engineers to build tech in line with main DevOps principles so they can remove barriers and deliver faster, more reliable updates to customers.

  • Automation

    As trust and confidence are hallmarks of a well-working DevOps team, automation is the glue. That is, it’s the secret sauce that makes DevOps teams achieve success. It covers all areas of a team’s work, as everything that can be automated should be automated, removing as much manual work as possible. Automation delivers benefits into development, build, QA, deployment, monitoring, security, reporting and infrastructure. It allows teams to improve work quality, repeatability, security and consistently. It also removes bottlenecks and increases team performance so the feature development flow is more consistent and uninterrupted. Removing manual and repetitive tasks frees up team members to spend more time on high-value work. Automation is a key area that can be enhanced when a team needs to move faster across build, deployment, and soliciting feedback.

    Automation is also key to achieving organisational and regulation goals, as it can help create highly secure environments, allowing only automated deployment into production (often necessary in Finance and Healthcare industries).

  • Continuous Integration, Deployment Automation and CI/CD Pipelines

    One of the main characteristics of solid DevOps practices is establishing continuous integration and continuous delivery (CI/CD) pipelines. Continuous integration allows team members to integrate their work frequently, often leading to multiple integrations per day. Each integration is verified by an automated build (including automated tests) to detect integration errors quickly.

    Deployment automation enables simple-to-perform (one-click) deployments of software builds to testing and production environments. This decides which build to automatically promote and to which to institute promotion gates. These are essential to reduce the risk of production deployments.

    Continuous integration and deployment combined together into a single pipeline enables teams to deliver their customers new code changes all the way to production in minutes. The alternative is long release cycles that can last for weeks or months in traditional development environments. A single pipeline alleviates the risk inherent to large changes.

clearpoint-5@2x-1

  • Infrastructure Automation

    The ability to quickly and consistently build environments is fundamental to maintaining a high level of quality and avoiding configuration drift. Any changes to infrastructure should trigger the pipeline build, testing and deployments to run. This effectively means we treat all infrastructure code the same as application code. We don’t configure applications directly in the production environment - all changes are made in the code repository and deployed through the pipeline. In highly secure environments, this not only helps create techniques that automatically pick up problem areas, but also keeps everyone from making changes directly in production environments.

  • Test automation

    Is the core component of continuous delivery pipelines and acts as a quality gate on each level - unit, integration and end-to-end. In mature DevOps teams it is essential not just to have test automation coverage on all these levels, but also to ensure that it is fast, reliable, timely and benefits the entire team. In the DevOps world, testing is owned by the entire team, not just the testers, so it is important for everyone to think about quality from the very beginning and make sure that developed software is architected with testability in mind. The main purpose of test automation is to provide confidence for the entire team to commit code changes as frequently as possible without risking the quality.

clearpoint-4@2x-2

  • Architecture

    A major criticism of DevOps is that it can only be applied to greenfield projects. However it doesn’t matter how old or new the systems are, because high performance can be achieved if the application is architected for testability and deployability. Many DevOps teams get stuck as soon as they have to deal with legacy software and there is no magical cure for this. A business has to understand that investing in rebuilding the architecture, doing shifts and lifts, and building APIs that can communicate to a legacy system can have major long-term impacts. This can allow the business to stay competitive and profitable.

    Microservices, serverless and event-driven architecture are some of the modern ways that allows a team to architect systems for deployability and testability. An example is the ability to deploy an application independent of other services, the ability to test without an integrated environment and being able to get comprehensive feedback from automated tests. These characteristics are also essential for establishing continuous delivery practices.

  • Engineering practices

    Feature toggles

    Feature toggling is a powerful technique that helps teams to manage business releases in production environments. It does this through an ability to split feature development into small batches and release each batch to production in an “invisible” state. This process keeps the development flow uninterrupted and avoids long lived branches that often create bottlenecks in the delivery cycle. Once the feature is complete, it can easily be put into production with one click. Feature toggling puts a business in full control of production releases and lets them decide when a feature is ready to be turned on and become visible to customers. Easy one-click roll-backs are another huge advantage of the feature toggles technique.

    Trunk-based development

    Trunk based development encourages teams to push incremental changes on a daily basis to a shared and continuously releasable mainline trunk. This is in contrast to the practice of using long-lived feature branches with risky complex merges. Trunk-based development facilitates early feedback for everyone in the team which is a core principle of DevOps.

    Shifting left on security and quality

    The key idea that DevOps borrows from lean thinking is the concept of building quality and security into the product from the start. Rather than taking a phased approach, where quality and security would be separated in the product development lifecycle, developers work together with security and testing experts continuously. Ideally, both testing and security checks are automated and become a part of CI/CD pipeline.

It is important to understand how culture, ways of working and technology enablers are critical to employing successful DevOps practices in your business.

Teams that can work together with the business to establish these practices will be happier and able to deliver more quickly and safely to their customers. Remember: DevOps practice is not an ideal end state. Instead, it is important to have a mindset that focuses on continual improvement in all of these areas.

Looking to drive DevOps throughout your business?

Find out how ClearPoint can help you begin your journey with our DevOps Acceleration package

FIND OUT MORE

Customer Stories


New World's I shop mobile shopping engineered

Foodstuffs North Island needed to deliver a mobile-first shopping experience to their New World customers. ClearPoint delivered this through micro-services, DevOps, Agile processes and automation at scale.

Read More
Foodstuffs

Trading in real time for Global Dairy Trade

GDT recognised a need to enhance their digital capabilities to attract more buyers and sellers around the world. They engaged ClearPoint to design, build and deliver a new online dairy commodity trading support platform GEMS.

Read More
Global Dairy Trade