Working Together to Perfect the Art of Software
A Place to Learn, Certify and Teach

Agile Software Development Essentials

Who Should Attend/Prerequisites

This training is for software developers, testers, designers, architects, technical leads and mangers of development teams. Attendees should be familiar with basic Object-Oriented (OO) concepts and terminology.


Class Size Limit: 30 (Minimum 6)


COURSE CALENDAR
date location trainer
To be announced

Course Overview

In this unique training we cover the critical skills needed to build software that can easily change. We identify and give names to the qualities that make software flexible so all team members can get on the same page and communicate with high fidelity. We then look at specific principles and practices which support the development of quality software.

In addition to covering a core set of patterns every developer should know we also examine the forces that underlie patterns and make them valuable to agility. This expanded view of patterns gives attendees a powerful framework to allow them to encapsulate and abstract virtually any problem for maximum flexibility without overcomplicating the solution. These techniques apply equally well to new development as they do to maintaining or extending existing systems.

Attendees learn how to find elegant solutions by understanding the forces of problems which lead to discovering the right abstractions that make software less complex and more manageable. Using advanced techniques like commonality-variability analysis, “refactoring to the open-closed”, encapsulating construction and pattern-oriented design, participants learn how to emerge designs just-in-time and with minimal waste.

There are no “magic bullets” in software development but we will make better choices if we understand the tradeoffs of our decisions. This training helps attendees evaluate tradeoffs in design that can then be immediately applied to virtually any problem. This practical approach will impact the way attendees create software on a day to day basis. Participants leave this training confident and empowered to improve the quality of the software they produce.

This is a lecture-style course with a group exercise done at whiteboards.

Agenda

Day 1
Introduction
Architecture and Design
CREATE Software Quality
Software Patterns
Encapsulating Varying Behavior

Day 2
Review
Paradigms, Principles and Perspectives
Encapsulating Foreignness
Group Exercise
Group Exercise Debrief

Day 3
Review
Core Practices
Encapsulating Sequence and Cardinality
Encapsulating Construction
Refactoring and Emerging Systems

 

After completing this training attendees will be able to:
• Identify six code qualities that make software easier to maintain
• Build a common vocabulary for evaluating and communicating designs
• Understand how applying key principles lead to easily extendible designs
• Evaluate the tradeoffs of alternate designs without having to code them
• Learn twelve core patterns that every developer should know and use
• See how to apply patterns just-in-time and avoid up-front overdesign
• Employ proven techniques to dramatically reduce defects
• Recognize pathologies of poor code and how to fix them
• Discover how to refactor code without breaking callers
• Master an easy way to find patterns in any problem

 For more information please visit:
hppt://www.techniquesofdesign.com

Cost:

$2,495 per attendee.