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 (6 days)
Course Outline
Foundations of Agile Thinking
- Analysis of the Agile Manifesto and its applicability to sectors beyond software engineering
- Comparative assessment of agile methodologies versus traditional waterfall and plan-driven frameworks
- Alignment of Scrum roles, events, and artifacts with academic project management cycles
- Application of Kanban and flow-based management strategies for research and instructional teams
- Selection of agile hybrid models appropriate for engineering and design operational environments
Agile Planning and Collaboration
- Formulation of user stories and definition of acceptance criteria for complex engineering challenges
- Backlog prioritization methodologies, including MoSCoW, value-to-effort analysis, and risk-based sequencing
- Sprint planning and estimation techniques adapted for non-software engineering teams
- Implementation of retrospectives and continuous improvement processes within academic institutions
- Utilization of collaboration tools and boards to support multi-disciplinary participant engagement
Introduction to DevOps Culture
- Defining DevOps: Elimination of silos between development and operations functions
- The CALMS model: Culture, Automation, Lean, Measurement, and Sharing
- Integration of DevOps principles in research laboratories, civil engineering teams, and architectural studios
- Cultivation of a blameless culture and effective feedback loops in educational settings
- Ethical, security, and compliance considerations for DevOps adoption in higher education
Version Control and Collaborative Code Management
- Git fundamentals applied to reproducible engineering and design workflows
- Branching strategies: Trunk-based development, feature branches, and simplified GitFlow
- Pull request processes, peer review standards, and code ownership within teaching teams
- Management of non-code assets, including CAD files, BIM models, and simulation datasets
- Repository structuring for course materials and student project deliverables
Continuous Integration and Build Automation
- Core CI concepts and their application to compiled and scripted engineering tools
- Configuration of automated builds for software, simulations, and technical documentation
- Pipeline stage definitions: Compilation, packaging, linting, and pre-flight verification
- Overview of prominent CI platforms: GitHub Actions, GitLab CI, and Jenkins
- Strategies for handling large artifacts, dependency caching, and parallel execution
Software Quality and Static Analysis
- Defining software quality parameters: Maintainability, reliability, usability, and efficiency
- Code metric analysis: Cyclomatic complexity, coupling, cohesion, and duplication rates
- Static analysis tools for Python, Java, C++, and standard engineering scripting
- Documentation as a quality mechanism: Docstrings, README standards, and living documentation
- Integration of quality gates into CI pipelines while maintaining student learning progression
Testing Strategies and Test Design
- The testing pyramid structure: Unit, integration, system, and acceptance testing
- Creation of unit tests for engineering calculations, simulations, and utility functions
- Foundations of Test-Driven Development (TDD) and Behavior-Driven Development (BDD)
- Mocking external systems, including sensors, APIs, and finite-element solvers
- Structuring test suites for multi-disciplinary team-based projects
Test Automation and Continuous Testing
- Automation of test execution within CI/CD pipelines
- Test reporting mechanisms, coverage thresholds, and management of unstable tests
- Application of property-based testing and fuzzing to engineering algorithms
- Regression testing strategies for evolving course assignments and requirements
- Performance and load testing for simulation and rendering workloads
Continuous Delivery and Deployment Concepts
- CD fundamentals: Distinction between delivery and deployment, environment management, and promotion
- Deployment patterns: Blue-green, canary releases, and feature toggles
- Application of CD principles to publishing research artifacts, course sites, and applications
- Container basics using Docker for creating reproducible engineering environments
- Introduction to Infrastructure as Code: Declarative management of lab and cloud infrastructure
Observability, Monitoring, and Feedback
- Logging, metrics, and tracing for academic software and simulation tools
- Implementation of lightweight monitoring for student projects and research utilities
- Leveraging feedback data to refine teaching materials and laboratory assignments
- Dashboards and alerting systems tailored for educational contexts
- Post-deployment verification protocols and rollback procedures
Security and Quality Best Practices
- Secure coding fundamentals: Input validation, authentication, and secret management
- Dependency scanning and vulnerability management in open-source technology stacks
- License compliance for software utilized in teaching and public publication
- Data privacy considerations for the handling of student and research data
- Establishing a security-aware culture within engineering and design programs
Translating Practices into Teaching Modules
- Design of agile project assignments for students in systems, civil, design, and architecture disciplines
- Development of rubrics that assess process quality in conjunction with product quality
- Configuration of template repositories with pre-configured CI for student utilization
- Progressive scaffolding of DevOps concepts across the semester duration
- Evaluation of student teams using real-world quality and automation metrics
Toolchain Selection and Academic Constraints
- Evaluation of free and open-source tools for budget-constrained departments
- Integration with existing Learning Management Systems (LMS), file storage, and lab infrastructure
- Management of technical debt in long-term research codebases
- Onboarding strategies for students and faculty with varying technical proficiency levels
- Ensuring sustainability when key contributors graduate or rotate out of positions
Requirements
- A basic 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 seeking to modernize their teaching with industry-relevant practices
- Research leads and lab coordinators integrating technology into curriculum
Testimonials (2)
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