Agile for Developers — A 3 day course

Synopsis

The course is for developers who want to understand how Agile methods impact the day-to-day process of writing software.

Many of the courses, books and papers on Agile development approach the subject from the point of view of the project manager or analyst. While that is a very important part of Agile, it is vitally important that those who are actually going to be producing the code - the developers - understand what is being proposed and how it will affect their work patterns and practices. This is especially true when you consider that many Agile methods involve the developers far more in the process than has traditionally been the case.

Therefore this course seeks to do two things: to help developers understand the rationale and mechanisms behind Agile methods, and also to explain common tools and working practices that may not be familiar.

Objectives

After completing this course, delegates will have gained the following skills:

Understanding of what 'Agile' means to software development

Understanding how agility helps manage risk

Ability to choose Agile practices to suit your project

Ability to create effective test regimes

Contents

Agile Development

What Agile Isn't...

The Drawbacks Of Traditional Development Methods

Agility Is An Attitude

People, Not Processes

The Agile Manifesto

Managing Risk

Iterative Development

Incremental Development

Client Involvement

Barriers To Agile Working

Agile and Fixed-Price Contracts

Scaling Agile

Overview of methods

Extreme Programming

Test-Driven Development

Unified Process

Scrum

FDD

Crystal

Lean Development

Agile and the Development Team

The traditional team

Roles: PMs, BAs, developers

The Agile team

Self-Organization and Self-Direction

The Role of the Customer

Tracking Progress

Requirements

Just-In-Time Requirements

Starting with Vision

Features

Time-Boxed Development

User Stories

Estimating Stories

Architecture and Design

BDUF bad, LDUF good

Agile Architecture

Incremental Architecture and Design

Coupling and Cohesion

Handling Dependencies

Technical Debt

Test-Driven Development

Unit Testing

Tools for Unit Testing

TFD and TDD

Principles of TDD

CORRECT and Right-BICEP

Mock Objects

TDD Patterns and Anti-Patterns

Refactoring

What is Refactoring?

Why Refactor?

Code Smells

Refactoring Scenarios

Tools and Techniques

Refactoring to Patterns

Continuous Integration

Always ready to ship....

The CI Process

Daily Builds

Automated Regression Testing

Tools for CI

Suitable For

This course is for developers who want to understand how Agile methods impact the day-to-day process of writing software.

Prerequisites

Delegates should be developers, with practical experience of writing code in an OO programming language.

Publicly scheduled dates, locations, and prices

A schedule of dates for this subject is not currently available. Please call 0333 210 0140 or use our contact form to enquire about places and availability.