Techniques of Design

Agile Architecture and Development—Essential Patterns and Practices

Techniques of Design – www.techniquesofdesign.com

Duration: 2-Days (9am-5pm)

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 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. This leads 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 developers can make better choices if they understand the tradeoffs of their 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. Examples and demonstrations are provided in Java using Eclipse. Issues specific to .NET, C# and C++ are discussed.

SKILLS TAUGHT

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 leads 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

AUDIENCE/ PREREQUISITES

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

FOR MORE INFORMATION OR TO ENROLL:

Contact: David Bernstein, Direct: (425) 562-2975 or Email: info (at the domain) techniquesofdesign.com

  1. No comments yet.

You must be logged in to post a comment.

  1. No trackbacks yet.