Customer Service or Enrol: 0800 282 353 or +44 1372 364610
 

Agile Programming: Principles and Practices for Software Success

Course: 931   Type: RealityPlus   Duration: 3 Days
Quick Enrol  

You Will Learn How To

  • Deliver adaptable software iterations based on Agile methodologies such as XP and Scrum
  • Minimise bugs and maximise 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 scrutinised 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.

RealityPlus
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 prioritising 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 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
  • Recognising 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
  • Recognising good user stories
Estimating and "The Planning Game"
  • Distinguishing between release and iteration
  • Prioritising and selecting user stories with the customer
  • Defining an estimation unit
  • Projecting team velocity for releases and iterations
The Agile coding process
  • Prioritising 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
Optimising 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
Recognising 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 behaviour
  • Preferring composition over inheritance
Simplifying Complex Architectural Problems Using Design Patterns
Defining design patterns
  • Creational, Structural and Behavioural patterns
  • Guaranteeing the correctness of an adaptable design
Integrating design patterns into the Agile process
  • Template Method, Adapter, Strategy, Singleton and Factory Method
  • Overriding behaviour 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

RealityPlus is a trademark of Learning Tree International.
 

request more info Salutation*:

First Name*:

Last Name*:

Job Title:

Company*:

Post Code*:

Country*:
   Codes
Office Telephone*:

Extension:

E-mail*:

* Required

A Learning Tree representative will contact you to follow up your request for information.

Save 55%
Agile Programming: Principles and Practices
17 - 19 Sep, 2008
London
19 - 21 Nov, 2008
London
28 - 30 Jan, 2009
London
15 - 17 Apr, 2009
London
1 - 3 Jul, 2009
London
 
RealityPlus
For more information, click here.
 
The most recent 100 evaluations scored this course at:

  (3.75/4.00)
 

£ 1,395 - Standard Tuition
Savings Plans
£ 735 - 10-Day Training Pass
£ 915 - Flex-Training Passport
£ 1,000 - Short Course Vouchers
£ 1,255 - Alumni Gold Tuition

 
ISPI logo
 
RealityPlus: Increasing Value Through Performance-Based Training
 
Customer Service or Enrol: 0800 282 353 or +44 1372 364610