Introduction

This 5-session ⚡ workshop offers theory, insights, and practical experience on modern software delivery. We will compare iterative and sequential methods, and look into organizing value streams from inception to rapid development to frictionless operations.

Format

  • 5 online sessions
  • 1 session per day, each session is 4 hours long
  • Sessions can be either in the evening or in the morning
  • Total training duration is 20 hours

Audience

project managers and team leads

Certification

View example certificate

Language

The course is taught in English or Latvian.

Detailed outline

Session 1

  • History of software delivery methodologies
  • Methodology overview: Waterfall, V-model, FDD, RAD, Agile, SEMAT, Cynefin
  • Iterative vs incremental; Flow of value: product vs project
  • Requirement collection and analysis. Functional vs non-functional requirements. Specification by example.
  • Practical exercise: discuss the strengths and weakness of different methodologies

Session 2

  • System design and architecture visualizations (design language and notation overview, diagram types)
  • System design patterns and strategies: Coupling and cohesion; Data flow vs control flow; Up-front vs evolutionary; Top-down vs bottom-up
  • Design decomposition; Functional and business analysis
  • Practical exercise: draw a system design sketch with several components and data flows

Session 3

  • Overview of modern technical ecosystems: programming languages, runtime engines, frameworks, products
  • Overview of technologies dominating different layers of typical software system: frontend, backend, databases, integrations, mobile
  • Practical exercise: based on input parameters evaluate the risks involved in migrating from one platform to another
  • Introduction to common security principles in software systems

Session 4

  • Introduction to testing methodologies and quality assurance disciplines
  • Introduction to TDD and XP practices
  • Testing pyramid; Quality assurance strategies (testing, security, policies)
  • Testing types: unit, integration, system, functional, acceptance, end-to-end, performance
  • Practical exercise: select the QA model based on input parameters
  • Technical debt and maintainability metrics
  • Refactoring vs redesign planning
  • Introduction to static code analysis
  • Practical exercise: spot the problem based on given example of technical project data

Session 5

  • Introduction to Continuous Delivery
  • Introduction to DevOps
  • Notes on ITIL and ITSM
  • Infrastructure-as-code, immutable infrastructure, delivery pipelines, GitOps
  • Service-level metrics: SLAs and SLOs
  • Error budgets, mean time to recovery
  • Unplanned work management
  • Practical exercise: propose a solution based on input parameters

Trainer

Andrey Adamovich is a software craftsman with many years of experience in different life cycle phases of software creation. He is passionate about defining good development practices, documenting and presenting architecture, reuse of code and design patterns, profiling and analysis of application performance as well as extreme automation of development and operations activities.

At the moment, Andrey works as a free-lance DevOps consultant offering his expertise in implementing DevOps initiatives, selecting automation tooling, switching to infrastructure-as-code and immutable infrastructure and constructing software delivery pipelines.

Andrey is a frequent speaker at international conferences and local communities. He presented at more than 60 events in 19 countries. He is one of the leaders of LatCraft - Latvian Software Craftsmanship Community as well as co-founder and organizer of DevTernity  conference.

Limited offer. Grab your ticket today.

 

On-premises

Exclusively for your company

11000 9900€