Overview
Audience
Software Developers, Quality Analysts, Software Testers, Enterprise Architects,
Technical Managers
Duration
3 days
Pre-requisite
Agile Fundamentals
Objectives
- Understand the core Agile engineering practices and how they impact the quality function on an Agile team
- Obtain understanding of Test Driven Design / Development by way of hands on instruction.
- Obtain understanding of Refactoring by way of hands on instruction.
- Obtain understanding of Continuous Build and Release practices by way of hands on instruction.
Course Outline
Introduction
- Introduction of trainers and participants
- Hopes & Concerns exercise
- Learning objectives
- Agile best practices review
Essential Agile Engineering Practices
- Pairing
- Refactoring
- Test Driven Design / Development
- Functional/Integration Testing - Tools and Practices
- Continuous Integration
- Design Patterns
- Build and Release
Project introduction
- Overview of the Movie Rental Application
- Design overview
Pairing Introduction
- How to Pair
- Pairing Infrastructure
- Monitors
- Keyboard and Mouse
- Rotation Techniques
- Work on the Story with a pair
Pairing Continuation and Refactoring Introduction
- Pairing Styles
- Driver & Navigator
- Ping-Pong
- Ball & Board
- What is refactoring?
- Examples
- Rename
- Extract Method
- Split Loop
- Work on the Story with a new pair, refactoring as needed
Test Driven Development/Design
- What is TDD?
- Why TDD?
- Three laws of TDD
- Work on the Story with a new pair, written in a TDD style.
Design Patterns
- What are Design Patterns?
- Examples of Design Patterns
- Composite Pattern
- Strategy Pattern
- Work on the Story with a new pair
Functional and Integration Testing
- What is Functional Testing?
- What is Integration Testing?
- Introduction to Twist
- Demo on using a Web Driver in Twist
- Work on the Story with a new pair. A functional test will be written as well
Continuous Integration
- What is CI?
- Introduction to Go
- Work on the Story with a new pair, using CI to verify everything builds correctly
Deployment Pipeline
- What is a Deployment Pipeline?
- Using Go for Automated Deployments