Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Duration 42 hours
Course Outline
Foundations of Agile Thinking
- The Agile Manifesto and its relevance beyond software development
- Comparing agile approaches with traditional waterfall and plan-driven models
- Mapping Scrum roles, events, and artifacts to academic project cycles
- Utilizing Kanban and flow-based management for research and teaching teams
- Selecting agile hybrids suitable for engineering and design environments
Agile Planning and Collaboration
- Crafting user stories and defining acceptance criteria for engineering problems
- Employing backlog prioritization techniques: MoSCoW, value vs. effort, and risk-driven ordering
- Conducting sprint planning and estimation with non-software teams
- Facilitating retrospectives and continuous improvement in an academic setting
- Using collaboration tools and boards for multi-disciplinary participants
Introduction to DevOps Culture
- Defining DevOps and breaking down silos between development and operations
- Exploring the CALMS model: Culture, Automation, Lean, Measurement, and Sharing
- Applying DevOps in research labs, civil engineering teams, and architecture studios
- Fostering a blameless culture and feedback loops in educational institutions
- Addressing ethics, security, and compliance considerations in academic DevOps adoption
Version Control and Collaborative Code Management
- Git fundamentals for ensuring reproducible engineering and design work
- Branching strategies: trunk-based, feature branches, and simplified GitFlow
- Managing pull requests, peer review, and code ownership in teaching teams
- Handling non-code assets such as CAD files, BIM models, and simulation datasets
- Organizing repositories for course materials and student projects
Continuous Integration and Build Automation
- Applying CI concepts to compiled and scripted engineering tools
- Configuring automated builds for software, simulations, and documentation
- Implementing pipeline stages: compile, package, lint, and pre-flight checks
- Overview of popular CI platforms: GitHub Actions, GitLab CI, and Jenkins
- Managing large artifacts, dependency caching, and parallel execution
Software Quality and Static Analysis
- Defining software quality in terms of maintainability, reliability, usability, and efficiency
- Analyzing code metrics: cyclomatic complexity, coupling, cohesion, and duplication
- Using static analysis tools for Python, Java, C++, and common engineering scripts
- Treating documentation as quality: docstrings, README standards, and living docs
- Integrating quality gates into CI pipelines without impeding student progress
Testing Strategies and Test Design
- Understanding the testing pyramid: unit, integration, system, and acceptance testing
- Writing unit tests for engineering calculations, simulations, and utilities
- Fundamentals of test-driven development (TDD) and behavior-driven development (BDD)
- Mocking external systems: sensors, APIs, and finite-element solvers
- Structuring test suites for multi-disciplinary team projects
Test Automation and Continuous Testing
- Automating test execution within CI/CD pipelines
- Managing test reporting, coverage thresholds, and flaky tests
- Applying property-based testing and fuzzing to engineering algorithms
- Developing regression testing strategies for evolving course assignments
- Conducting performance and load testing for simulation and rendering workloads
Continuous Delivery and Deployment Concepts
- CD fundamentals: distinguishing delivery from deployment, environments, and promotion
- Exploring deployment patterns: blue-green, canary, and feature toggles
- Applying CD principles to publish research artifacts, course sites, and apps
- Basics of containerization with Docker for reproducible engineering environments
- Introduction to Infrastructure as Code: managing lab and cloud setups declaratively
Observability, Monitoring, and Feedback
- Implementing logging, metrics, and tracing for academic software and simulations
- Setting up lightweight monitoring for student projects and research tools
- Utilizing feedback data to iterate on teaching materials and lab assignments
- Configuring dashboards and alerting appropriate for educational contexts
- Performing post-deployment verification and rollback procedures
Security and Quality Best Practices
- Secure coding fundamentals: input validation, authentication, and secrets management
- Conducting dependency scanning and vulnerability management in open-source stacks
- Ensuring license compliance for software used in teaching and publication
- Addressing data privacy considerations when handling student and research data
- Cultivating a security-aware mindset in engineering and design programs
Translating Practices into Teaching Modules
- Designing agile project assignments for systems, civil, design, and architecture students
- Creating rubrics that assess process quality alongside product quality
- Setting up template repositories with pre-configured CI for student use
- Progressively scaffolding DevOps concepts across a semester
- Evaluating student teams using real-world quality and automation metrics
Toolchain Selection and Academic Constraints
- Evaluating free and open-source tools for budget-conscious departments
- Integrating with existing LMS, file storage, and lab infrastructure
- Managing technical debt in long-running research codebases
- Onboarding students and faculty with varying technical backgrounds
- Maintaining sustainability when key contributors graduate or rotate
Requirements
- A foundational understanding of software development concepts
- Familiarity with general engineering or design workflows
- Experience using computers for academic or project-based work
Audience
- Professors and lecturers from Systems Engineering, Civil Engineering, Design, and Architecture programs
- Academic staff looking to modernize their teaching with industry-relevant practices
- Research leads and lab coordinators integrating technology into the curriculum
Testimonials (3)
Craig was extremely involved in the training, always making sure we are paying attention, adapted the examples to our day-to-day activities and always provided an answer when asked, even if the information was not added in the presentation.
Ecaterina Ioana Nicoale - BOOKING HOLDINGS ROMANIA SRL
Course - DevOps Foundation®
High level of commitment and knowledge of the trainer
Jacek - Softsystem
Course - DevOps Engineering Foundation (DOEF)®
real life examples