Existing agile frameworks e.g. SAFe or Scrum are well known to manage collaboration for a common product or service. Furthermore, it allows you to create and respond to change and deal with uncertainty. Traditionally there have been three boundaries – Time, Budget, and Scope, which influence the quality of the delivered service or product. Forecasting in an uncertain environment is difficult and tends to become a hybrid agile-waterfall methodology. Hence it is important to create a team culture that lives the agile principles from top-down and bottom-up.
Agile principles accelerate changes during the product development cycle
Based on the origin of Agile Manifesto for Software Development, product creators across different industries follow agile principles and adapt the way of working.
- Customer Satisfaction: A capability model supports the strategy and informs the business about their maturity levels regarding people, processes, and systems. Loyal customers recognize those three components that are used to increase customer satisfaction and drive the service behind a product.
- Welcome Change: The 21 century or “information age” accelerates product lifecycles through new ways of working. Hence, the demand changed, and waterfall approaches became unacceptable in some industries.
- Deliver Frequently: Developing a minimal viable product (MVP) increases the success rate of projects with customers able to “touch & feel” the tangible product which leads to better feedback.
- Working Together: Product development is often not a “one-man show”. Hence, experts and specialists from different practices must collaborate and need to follow a common goal.
- Motivated Team: Change of management style helps to form motivated teams that increase trust, quality, motivation, autonomy, and freedom.
- Face-to-Face: Returning to humans’ origin – you realize that open conversations face-to-face are key for an efficient and effective outcome.
- Working Software: It is the most important measure for success and creates excitement across the team and the customer.
- Constant Pace: Each stakeholder – sponsor, developer, project manager, and users, are on the same journey of the product lifecycle that creates a sustainable and steady development environment.
- Good Design: Continuous development focuses on quality which leads to a high degree of agility.
- Simplicity: Working on a product in short cycles requires simple functional enhancements that feed into the big picture.
- Self-Organisation: A crucial part of successful teams is their ability to organise themselves.
- Reflect and Adjust: Working in a fast-paced environment creates opportunities to change. Reflecting and become aware supports actions on how to improve behaviour, processes, or systems.
The DevOps approach emphasizes responsiveness by focusing on culture and highlighting roles
Let us start off explaining DevOps. It is a large, standard concept with nuances for every specific organisation. The term emerged from crossover activities between the development and operational teams that reside in the software development cycle.
To showcase a real-life example with a daily service I use the analogy of a restaurant. It is important to understand that all staff is one team and each staff member has a unique skillset e.g. a chef cooks the meal, the front house staff services the customers and delivers the meal, and a sommelier suggests the perfect wine to the meal. The team aims to create a seamless and incredible service experience for the customer. The chef symbolizes the developer who creates a product, whereas the front house staff acts as the operational team to make sure the product gets released into the production environment (dining room). In case of adjustments and change requests e.g., if the meal is cold or burnt, it will go back to the chef, and is replaced by a new one or gets adjusted accordingly. It is a cycle of actions. An external service entity is represented via the sommelier, offering wine. The external service provider uses integration interfaces and provides high-value services which increase the overall product quality. They are also responsible for the orchestration of integrated services. This scenario describes on a high level the cross-disciplinary “community” and symbolizes breaking the silos is important to create a great customer experience.
How did Agile influence DevOps?
Fast-paced changes in a delivery process with a DevOps approach are significant in agile principles to create a seamless service experience across the lifecycle. Therefore, it is important to understand how those terms relate to each other. Agile is the foundation of the DevOps approach, which incorporates the 12 principles and even expands it in respective areas e.g. from working software to valued customer experience.
Who are advocates of DevOps?
Innovators or disruptors using the DevOps approach are Google, Netflix, Amazon or Etsy, which are all web-scale technology companies. All of them are driven by the threat of disruption, to support their digital transformation strategy. Other examples of disrupters and early adopters are NORDSTROM, Capital One and Target. While the DevOps approach hits the mainstream, it takes several years on “brownfield” approach to make the change and to eventually become a digitally transformed organization. An example of a laggard organisation is Blockbuster Inc.
The main areas of DevOps are:
- Infrastructure Automation: The term is used in the context of “Infrastructure as code” (IaC) and the benefit of faster execution of infrastructure components.
- Site Reliability Engineering: The origin sits in the Google development team. It explains the responsibility of a Site Reliability Engineer with 50% of ops- and the other half in development-related activities.
- Continuous Delivery (CD): CD is simply the process that sits within DevOps.
CI/CD in software-defined lifecycles highlight tools for automation
CI/CD means Continuous Integration and Continuous Delivery. It is a method to frequently deliver product updates to customers by improving speed, safety, and reliability. CI usually sits within a developer’s practice that covers developing and testing of small enhancements into an automated build environment. CD resides in the operator’s practice with a focus on packaging and deployment. It follows “agile manifesto” principles such as:
- Frequent small deployments
- Automation with a human touch
- Always improving
- Shared responsibility model
- Tools for CD
- Ship software continuously
State-of-the-art and outlook
Disruptive technologies and different ways of working aim for accelerated success and satisfaction of customer needs. The pandemic situation in 2020 is a key digital transformation driver by seeing increased numbers of people work remotely or from home. There is a massive demand for automation tools and new ways of working. DevOps has a huge potential across industry organizations to enable and highlight responsiveness and focus on roles and cultures. The key DevOps drivers tend to result from business problems. People have realized the huge benefits it incorporates towards strategy, operations, and into their ecosystem.
There is usually a flip side to any kind of benefit. Within the digital community, it is all about a growing threat of security breaches and cyber-attacks. To address this issue, DevOps developed into DevSecOps. In addition to development and operation, DevSecOps adds the security domain to the agile software development cycle.
Within CI/CD-delivery cycles the trend encompasses automated tools and container tools like Docker, Kubernetes (Google, Microsoft) or Fargate (AWS).
To finish off on Agile, DevOps and CI/CD – it is a common trend in our society and across industries, as things become interdependent a cross-functional skill set is required to solve business problems and eventually drive the business.
Written by Marcus Behrends