Engineering Practices Overview

Engineering software to have a long useful life requires know-how and skill. Three of the critical engineering skills needed to build great software are:

  • Test-Driven Development
  • Refactoring
  • SOLID Principles of Object Oriented Design

Test Driven Development is a powerful technique for building software, all kinds of software, even embedded software. In our TDD courses you will learn how TDD helps overcome many of the challenges faced by all developers including: buggy code, messy code, unpredictable schedules, and the problems that follow.

TDD helps you get the code working in the first place and then keep it working by making the cost of retest nearly zero. The tests become a safety-net that allows you to refactor your code without paralyzing fear so you can keep it clean for a long useful life.

In the skilled hands of an experienced test-driven engineer, TDD leads to better designs, towards more object oriented approaches even when programming in C. To help build your design sense, our courses teach some valuable design principles. The underpinning in SOLID principles helps guide engineers to better designs that are more modular and loosely coupled.

To get your team off to a good start, we recommend hands-on training courses followed by a legacy code workshop. You don't have legacy code yet? Great news! Then we recommend our walking skeleton workshop to follow the hands-on classroom training.