Chci vědět více informací
Hlavní strana > Školení > DOPS

Continuous Delivery and DevOps

Kategorie: Ostatní
Nevyhovuje vám žádný z vypsaných termínů?
Navrhněte si vlastní.
Continuous Delivery is a complex, holistic approach to software development and has a significant impact on the way in which organisations operate. This approach demands a broad range of skills and techniques.

This course is based on the book Continuous Delivery and is designed to introduce, and explore a deeper understanding of, these ideas and techniques. It is primarily aimed at “Change Agents” within organisations, Leaders, Lead Developers, Lead Architects and so on.

More specifically this course will give you the tools to help your company become a 'Learning Organisation'. Increase efficiency and quality, and reduce risk in your software development process. Our training can teach the techniques that will allow you to increase user satisfaction and make your organisation more innovative.

We do this by teaching an approach that will allow your company to become more experimental and capable of reacting quickly and efficiently to change and allowing your software development process to become a tool that enables this flexibility rather than an impediment to it.

Our course content is intentionally designed to be tailored to meet the specific needs of our attendees. This course is modular and so, very flexible.

Day 1:

Concentrates on Continuous Delivery fundamentals. You will learn:
  • Why CD is taking the software development industry by storm.
  • Why it works.
  • The Fundamental Importance of Cycle-Time and experimentation.
  • Anatomy of a Deployment Pipeline.
  • Working iteratively and maintaining flow.

Day 2:

Is tailored to the needs of the attendees. You will pick from a range of course modules which include:
  • Planning for Continuous Delivery.
  • Deployment Strategies.
  • Effective Acceptance Testing.
  • Effective TDD.
  • Cycle-Time as a tool for change.
  • Strategies for Changing Culture.
  • Experiments in Production.
  • The Learning Team.
  • Iterative Design Techniques - How to Build Complex Systems Iteratively.
  • Effective Story Writing.
  • Team Ethics - Being a Good Citizen in a CD Environment.
  • Minimum Viable Product.
  • Information Radiators.
and more.

Modules are a mix of presentations, workshops and interactive sessions.

Our modules range from introductory to expert-level and from senior-management level, to in-depth technical detail.

Module Overview:


Day 1:

Fundamentals 1
CD is widely seen as “state-of-the-art” in software development. CD changes the economics of software development. This module provides a strong rationale for why CD works. It describes the CD approach and why it works, comparing CD with other approaches. This is the value proposition for the approach.

Fundamentals 2
At it’s most fundamental CD is about enabling businesses to become more experimental, to learn and adapt to change. Why is this important? What does it take? How does that impact your business? How does this affect the way in which teams work?

CD Foundations - Anatomy of the Deployment Pipeline
A central idea in CD is that of the deployment pipeline, an automated route to production for all changes to production systems. This module provides a detailed exploration of the concept of the “Deployment Pipeline”. Exploring each stage and the principals, practices, technology and general approach in some detail.

Day 2:

[Day 2 is usually composed of several optional modules, working through them in order of preference and getting as much done as we can in the day. Generally we can complete 4 or 5 of these in a day - the duration of modules varies]

Available Modules:

Acceptance Testing
Acceptance testing in CD helps the team focus on the value that stories deliver to users. This module describes the qualities of effective Acceptance tests, provides an approach to designing tests as “Executable Specifications” for the behaviour of a system that are robust in the face of changes to the system-under-test. This is a technical module at the level of software design with a few simple code examples.

CD In Production
CD is a holistic process, it doesn’t stop when the code is deployed into production. This module explores approaches to working incrementally in production, the role of DevOps, how to manage experiments in-production and discusses ideas like Feature-Toggles, A/B Testing and Canary Releasing.

Data Management
We need the design of our data-stores to be capable of evolving as we learn as well as the rest of our systems. This means that we need to adopt approaches to our data stores that allows them to be effectively configuration-managed, versions and allowed to change over time. This module covers strategies for managing change in live data-sets. Approaches to data management in different phases of the CD life-cycle. Data-Schema versioning. Data-migration strategies. Data migration testing approach.

Effective Retrospectives
CD is about continuous improvement. That is only possible with effective feedback-loops. Retrospectives are an important mechanism to provide a feedback loop for the team’s working practices and processes. Effective retrospectives are the foundation of a culture of continuous improvement. We cover the important role of the retrospective, common pitfalls, facilitation techniques and a view on several different approaches to retrospective meetings.

Effective Teams
Team organisation and team discipline play a vital role in the effectiveness of a development process. This module discusses the properties of effective teams. We explore team-size, team organisation and responsibilities. The impact of team structure on software architecture. Pair programming, and other strategies for promoting collaborative working.

Performance Testing
What do we mean by “Performance”, what are sensible measures? Effective strategies for developing and maintaining complex performance test suites. Performance in very high-performance scenarios. Large-scale scenario-based testing. Managing Performance Test Data, Component-level performance testing, Completing in sensible time.

Planning for CD
CD is about optimising the whole development-process. From having an idea to getting that idea, in the form of useful software, into the hands of our users and then seeing what they make of it. For this to work we need the to be a continual flow of small ideas. This is challenging for many organisations. This module looks at the fundamentals of agile planning and how they fit into a CD approach.

Story Writing
If we are trying to short the distance from idea to useful software we need to have lots of ideas and manage that flow. Planning is part of that, but the nuts-and-bolts of an effective requirements process is at the root of any effective development approach. This modules covers effective strategies for story writing. What is a good story, what is a bad story? Story templates (training wheels for story-writing), team dynamic for effective stories, Story Mapping.

Test Driven Development (TDD)
TDD is a cornerstone of CD and the production of high quality software. It is the only mechanism, beyond the experience and conscience of an individual developer, that provides a pressure for more effective, modular, loosely-coupled, design. This module uses some of the materials from my “hands-on” TDD course to describe effective strategies for TDD.

Team Structure and Software Architecture
Conway’s Law tells us that we are doomed to recreate the structure of our teams in the architecture of our software. CD tells us that we need small, collaborative teams. So what sorts of architectures spring from teams that adopt CD? What is the relationship between CD and MicroServices? How do we coordinate work across and between teams? What are the implications on that for our design choices? We also discuss the engineering trade-offs between loose-coupled autonomous teams and more centralised monolithic systems in the context of CD.

Testing Legacy Code
One definition of Legacy Code is “Code without tests”. Legacy Code looks very different to code that was developed from the beginning with automated testing as part of it’s development approach. Inevitably such code is less-testable. This module describes a sensible, pragmatic approach to working with Legacy code.

Experiments In Production
Continuous Delivery enables experimental organisations. This module explores this idea, looking briefly at the mechanisms, but principally at how to become more experiemental as a business. How do you identify useful experiments? How do you measure the impact of your ideas?

(High Performance & Reactive Systems Design)
This module is not strictly part of the CD training suite, but several of my clients has asked me for it. I have a background in the design and development of high-performance systems. I am one of the authors of the “Reactive Manifesto”. The tag-line for the Reactive Manifesto is “You can’t solve 21st Century problems with 20th Century Software architecture”. This module describes some of the fundamentals of the design of world-class modern, scalable, high-performance systems. How do you make your systems Responsive, Resilient, Elastic and Message-Driven?

Dave Farley
is a thought-leader in the field of Continuous Delivery, DevOps and Software Development in general. He is co-author of the Jolt-award winning book ‘Continuous Delivery’ a regular conference speaker and blogger and one of the authors of the Reactive Manifesto.

Dave has been having fun with computers for over 30 years. During that period he has worked on most types of software, from firmware, through tinkering with operating systems and device drivers, to writing games, and commercial applications of all shapes and sizes. He started working in large scale distributed systems about 25 years ago, doing research into the development of loose-coupled, message-based systems – a forerunner of MicroService architectures.

Corporate edition

  • Možnost prodloužit splatnost faktur dle VOP až na 60 dnů.

Fotogalerie ze školení