Agile Developer – Engineering Skills

Create software products in short cycles with confidence. Learn Agile software development practices used at Twitter, Google, Facebook, Salesforce, Spotify, Tesla and a host of other top companies to build software with high quality at high speed.

 

Agile Developer Engineering Skills Workshop in Java, C++, or C#

Learn Techniques for Creating Code That is Clean, Testable, Flexible and Effective.

Being an Agile Developer means you are knowledgeable about Agile developer practices. You build software using proven Agile practices and know how these practices give you a competitive edge. In this course you will learn to deliver quality software products using fast cycles and Agile techniques.

Objectives

Agile Developer Engineering Skills training by Innovel will provide you with hands on learning of the principles and practices that underlie agile development. Using JAVA, C++ or C# and effective tooling we’ll cover topics through a combination of lecture, exercises and the creation of working tested software.

Attendees will learn Agile skills and practices including agile architecture and design, continuous integration, refactoring, pair programming, continuous deployment and test driven development (TDD). We’ll also cover recommended tools that can ease adoption of these practices.

By course’s end, attendees will both learn and “feel” what it is like to work as part of a team using Agile Developer skills and practices. The Agile Developer Engineering Skills Workshop is offered in either the JAVA, C# .NET or C++ technologies.

This course fulfills the 3 day technical track for the Certified Scrum Developer (CSD) certification. Students require an additional 2 days of Scrum training to complete the CSD certification requirements.

Test Driven Development

The course centers on TDD, which challenges students with a radical shift in development approach and as such the class has significant hands-on practice. Students will collaborate to develop new code using TDD; they will also interact with a small typical codebase. The core theme is on sustaining systems through continual refactoring of both tests and production code. To support the core theme, students will learn agile architecture and design concepts throughout the class. They will also learn how a focus on continuous integration and delivery helps foster a culture of quality.

Prerequisites

  • Students must be able to write JAVA, C++ or C# code.
  • Students should have an understanding of fundamental object-oriented programming concepts.
  • Students must have a working development environment installed that supports building and running tests for the provided source base, which was built and vetted using Standard JVM (1.6-1.7) and Eclipse or Visual Studio.
  • Students will be provided with the source base and setup instructions a week prior to the start of the course. By the outset of class, students must have successfully followed the setup instructions on the machine they bring to the class, which will require successful building of an Eclipse or Visual Studio solution, as well as successful execution of unit tests delivered with the source.

 

Certified Scrum Developer Badge

We guarantee our Agile Developer Skills workshop will be an engaging experience that will give you the knowledge and confidence to start implementing TDD, CI, Refactoring and other practices on your code base tomorrow.


 
 

Contact us for a quote for onsite Agile Developer Engineering Skills training for your teams and organization.


Course Structure

The primary focus of the course is on hands-on programming. Students complete exercises working with a pair; pairs rotate throughout the duration of the course. Mechanisms and mentalities for pairing are briefly explained at the outset of the course. Students continue to learn about the benefits, costs, and nuances of successful pairing throughout the course.

For many of the programming topics, the instructor first demonstrates the technique. Students then pair to complete a similar exercise. The instructor moves through the pairs to aid students during their exercises. The instructor then discusses and demonstrates as appropriate the solution with the whole classroom.

 

Daily Schedule:

Morning Session: 9am—12 noon

(15-minute break at 10:30am)

Lunch: 12 noon—1pm

Afternoon Session: 1pm—4:30pm

(15-minute break at 2:15pm)

Day 1 Topics

Course Overview and Introductions

The Agile Challenge: The Cost of Change Curve

Collaborative Work Environment / Whole Team

Pairing Mechanics and Guidelines

Technical Debt

TDD Overview

Pairing Technique

Paired Exercise 1: Building to Incremental Tests

TDD Themes for Success

Google Test Details

Paired Exercise 2: Incremental Test-Driving Using a Spec

TDD Benefits; TDD vs Test-After Development

Group Exercise: Where Do I Start?

Pairing Benefits

Solicitation of Concerns

Day 2 Topics

Discussion of Concerns That Demand Immediate Attention

Paired Exercise 3: Programming Kata

Continuous Integration / Continuous Delivery

Behavior-Driven Naming

Test Smells

Paired Exercise 4: Cleaning Test Smells

The Agile Approach to Software Design and Testing

Refactoring

Paired Exercise 5: Extract Method

Feature Envy / Move Method

Adding Tests as Documentation

Paired Exercise 6: More Refactoring

Guidelines for Refactoring / Refactoring Drivers

Day 3 Topics

Simple Design

Test Doubles

Paired Exercise 7: Hand-Crafting a Test Double

Injection Techniques

Google Mock

Paired Exercise 8: Using Test Double Tools

London and Pragmatic Schools

Costs of Using Test Doubles

Architecture and Design

Domain Driven Design

Agile Design Concepts

Set-Based Design

Group Exercise: Designing a New Feature

Wrap-Up Exercise

Sustaining Agile Development

Discussion of Any Outstanding Concerns