Announcing James Grenning fall conferences and training offerings in Denmark, Sweden, Norway, Netherlands, and San Francisco.
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
- 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.
James Grenning will deliver the keynote talk and a technical talk at Agile on the Beach in lovely Cornwall, UK. July 6-7, 2017
James Grenning will deliver the keynote talk and a two-day public TDD for Embedded C/C++ training course at the Oslo Continuous Delivery and DevOps Conference.
James Grenning will be giving the keynote talk at Agile Saturday in Tallin Estonia, May 6, 2017. A public training course is scheduled for May 8-9, 2017.more...
James is the author of Test-Driven Development for Embedded C.