Learning Tree International

Software Engineering Training

1-888-THE-TREE (1-888-843-8733)
 

Request Info

Salutation

First Name

Last Name

Company

Zip Code

Country
List

Work Phone

Extension

E-mail

A representative will contact you to follow up your request.

Privacy Statement

 

Agile Programming: Principles and Practices for Software Success


Course 9313 days

  E-mail a Colleague  Print Friendly  FAQ  Course Details PDF

Quick Enroll

You Will Learn How To

  • Deliver adaptable software iterations based on Agile methodologies such as XP and Scrum
  • Minimize bugs and maximize productivity with Test-Driven Development and unit testing
  • Refactor existing code for easier maintenance and improved design
  • Achieve quality design by adopting established coding principles
  • Simplify complex coding problems with design patterns
  • Adopt best practices to successfully manage Agile projects

Course Benefits

Agile programming practices reduce development time while increasing collaboration. This ensures a final product that has been scrutinized at every stage to maintain reliability. In this course, you gain a solid foundation in Agile programming principles. Through an immersive case study, you acquire practical knowledge and skills to plan, code and implement an Agile software project using methodologies like XP and Scrum.

Who Should Attend

This course is valuable for experienced software architects, programmers and technical managers. Familiarity with object-oriented programming concepts, and competency in a modern programming language such as VB, Java or C#, is assumed.

Throughout this course, experiential and PC-based activities immerse you in an authentic Agile programming project simulation. You perform critical tasks, including:
  • Meeting with customers to generate user stories
  • Estimating and prioritizing user stories
  • Attending a spike session to learn new technology
  • Writing tests and code to bring user stories to life
  • Refactoring to remove code smells for elegant design
  • Removing hacks for easier maintenance using object-oriented coding principles
  • Implementing an adaptable architecture through design patterns
  • Delivering software in frequent iterations using XP or Scrum

Course 931 Content

Introduction and Overview

  • Adopting the best practices of the Agile Manifesto
  • Comparing traditional and Agile software methodologies
  • Identifying Agile beliefs and practices

Planning an Agile Release

Establishing the Agile project

  • Recognizing the structure of an Agile team
  • Programmers
  • Managers
  • Customers
  • Differentiating XP and Scrum

Developing a foundation with user stories

  • Eliciting application requirements
  • Capturing user stories
  • Recognizing good user stories

Estimating and "The Planning Game"

  • Distinguishing between release and iteration
  • Prioritizing and selecting user stories with the customer
  • Defining an estimation unit
  • Projecting team velocity for releases and iterations

The Agile coding process

  • Prioritizing tasks for a cohesive design
  • Write test, write code, refactor
  • Allocating time for a spike

Crafting Adaptive Software Through Test-Driven Development

Driving the design process with automated testing

  • Writing a user acceptance test
  • Getting a test to compile
  • Running tests

Integrating unit testing

  • Distinguishing between user tests and unit tests
  • Developing effective test suites
  • Achieving "green lights" through continuous testing

Optimizing test-driven development

  • Drafting a unit test that is simple, isolated and fast
  • Isolating classes for effective testing
  • Creating mock objects for testing

Refactoring for Elegant Design

Recognizing code smells

  • Conditional logic
  • Code duplication
  • Code that needs comments

Cleaning code with refactoring

  • Renaming fields and methods
  • Extracting methods and base classes
  • Programming by intention
  • Removing conditional logic

Integrating Object-Oriented Programming Principles

Adopting the best practices principles

  • Single Responsibility Principle (SRP)
  • Open/Closed Principle (OCP)
  • Dependency Inversion Principle (DIP)
  • Liskov Substitution Principle (LSP)

Evolving design from the bottom up

  • Delegating class responsibilities
  • Achieving polymorphic behavior
  • Preferring composition over inheritance

Simplifying Complex Architectural Problems Using Design Patterns

Defining design patterns

  • Creational, Structural and Behavioral patterns
  • Guaranteeing the correctness of an adaptable design

Integrating design patterns into the Agile process

  • Template Method, Adapter, Strategy, Singleton and Factory Method
  • Overriding behavior with virtual and abstract functions
  • Sharing functionality using static fields and methods

Managing to the Agile Manifesto

  • Delivering the first iteration
  • Planning the next iteration
  • Adapting Agile to fit your development methodology

<< Back to Software Engineering Course List

Related Courses


RealityPlus is a trademark of Learning Tree International.
 
Agile Programming: Principles and Practices for Software Success
Agile Programming: Principles and Practices for Software Success

Course Dates

May 5-7Toronto enroll
Oct 13-15New York enroll
Oct 13-15Ottawa enroll
Nov 3-5Toronto enroll
Nov 10-12Rockville, MD enroll

Attend highlighted events
in person or online with Learning Tree AnyWareTM.

More Dates and locations.

On-Site &
Custom Training

Bring this or any Learning Tree course to your location or have it customized for your organization.

Tuition

$ 2,490 Standard Tuition
Tuition with a Savings Plan
$ 1,623Premium-Pass
$ 1,833Training Passport
$ 2,166Triple-Pack
$ 2,250Voucher 10-Pack
$ 2,213Government Discount
$ 2,240Alumni Gold Discount
 
 
RealityPlus™: Increasing Value Through Performance-Based Training


CPE 17 Credits ISPI logo PMI 17 PDU 1 Hour(s) College Credit