Overview

The purpose of this hands-on, three-day course is to help developers focus on technical design with an emphasis on simplicity and architecting for a low cost of change. The course emphasizes design patterns and teaches developers how to do the right level of design at the right time within the development cycle. Students will also spend considerable time exploring the value of a system that is test-driven, or uses a “test-first” approach.

An important part of this certification is to develop not only an understanding of the technical aspects of agile engineering and continuous delivery tools, but also approaches for structuring work in a more agile manner to respond to customer goals and lower technical risk. A goal of this certification is for students to become well versed in effective approaches to agile software design and engineering, with an emphasis on building in quality and lowering the cost of change.

Prerequisites

Agile Developers, Programmers, Development Managers, Technical Team Leads or other team members involved in development or who would like to increase their agile programming knowledge.

We recommend that learners attend ICAgile – Agile Programming – QAICPPRG before attending this course.

Pre Course Reading

Learners should be familiar with the content and rationale in the agile manifesto and the Scrum Guide.

Delegates will learn how to

As a result of participating in the course, learners will be able to:

  • Apply software design techniques to improve efficiency and testability.
  • Refactor design by following the SOLID design principles.
  • Choose the most appropriate architecture by considering the needs of the needs of the stakeholders.

Outline

DESIGN

Architecture

  • Enterprise Architecture
  • Views and Viewpoints of Stakeholders

Design-In-The-Large

  • Capability and Application Architecture
  • Design Throughout the Lifecycle
  • Sequencing the Work

Simplicity - Simple and Good Design

  • Simple Design
  • Evaluating Designs and Design Principles

Patterns

  • Design Patterns
  • Architecture Patterns

Design for Automated Testing

  • Testing the System Bypassing the User Interface
  • Testing the System Through the User Interface
  • Non-Functional Testing

Technical Debt

  • Recognizing Technical Debt
  • Discussing Technical Debt Choices with Stakeholders

COLLABORATIVE DEVELOPMENT

Technical Leadership

  • The Need for Technical Leadership
  • Characteristics of Technical Leadership

THE BUILD PROCESS

Continuous Delivery

  • Continuous Delivery
  • Developer-Operations Collaboration
  • Patterns for Continuous Delivery

Please complete this form and we'll be in touch

Hide form
Please enter a date or timescale
Please type in a preferred location or region...