Software Practices

TH16 Classic Software Design Principles and Why They Are Still Important


2:15pm - 3:30pm

Level: Intermediate to Advanced

David Corbin

Microsoft MVP, Microsoft ALM Ranger

President / Chief Architect

Dynamic Concepts Development Corp.

Current software development efforts are typically built on complex libraries that encapsulate many details. In these situations, attention to core design principles often get lost. The focus becomes moving towards just getting the pieces to work together.

There is significant evidence that many of today's developers aren't even aware of core principles that have had a major influence on creating effective and robust systems. Even developers who once regularly considered these elements now only have a dim memory. As a result, many systems currently being developed are experiencing a category of problems largely addressed many years ago.

This session will review a number of items, including the set known as SOLID (originated by "Uncle Bob" Martin nearly 15 years ago) along with items that originated with Object Oriented Design. Common problems in today's software development will correlate with the relevant underlying principles. Bringing these principles to the forefront will demonstrate and correlate how a lack of attention to the foundational principles relates to common defects. NOTE: All code examples will be in C#, but may be applied to many languages/platforms/environments.

You will learn:

  • About the costs incurred when Design Principles are neglected during development in the hopes of expediting delivery
  • How to apply these Design Principles to current work effort
  • About developing an effective focus on the elements which have the most significant impact on achieving desired goals