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

Agile Programming: Principles and Practices for Software Success

 
Course: 931     Type: RealityPlus     Duration: 3 Days

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

Related Courses

RealityPlus is a trademark of Learning Tree International.
  
 
Request More Info

Salutation

First Name

Last Name

Company

Zip Code

Country
   Codes
Work Phone

Extension

E-mail

A representative will contact you to follow up your request.
Privacy Statement

Save an EXTRA $200 on a 10-Day Training Pass!

Agile Programming: Principles and Practices for Software Success
Upcoming Dates
Sep 24 - 26, 2008
 Chicago (Schaumburg)
Oct 15 - 17, 2008
 Washington, DC (Reston, VA)
Oct 29 - 31, 2008
 New York
Nov 19 - 21, 2008
 Los Angeles
Nov 19 - 21, 2008
 Ottawa
Dec 3 - 5, 2008
 Toronto
Feb 18 - 20, 2009
 Ottawa
Mar 11 - 13, 2009
 Toronto
Apr 15 - 17, 2009
 Washington, DC (Reston, VA)
Apr 29 - May 1, 2009
 New York

Agile Programming: Principles and Practices for Software Success
Bring Learning Tree On-Site

Course Tuition
$ 2,250 Standard Tuition
Tuition with a Savings Plan
$ 1,580 10-Day Pass
$ 1,665 Training Passport
$ 1,830 Flex-Pass
$ 2,095 Voucher 10-Pack
$ 2,025 Alumni Gold Discount
$ 2,000 Government Discount
 

 

Agile Programming: Principles and Practices for Software Success
The most recent 100 evaluations scored this course at:

  (3.74/4.00)


RealityPlus: Increasing Value Through Performance-Based Training


CPE 17 Credits ISPI logo 1 Hour(s) College Credit
Customer Service or Enroll: 1-800-843-8733