Wingman Software - Self-Paced Learning

Our Acclaimed Training -- Delivered at Your Pace

If you are interested in our training, we are no longer hosting on teachable.com

visit wingman-sw.com


Our Mission

To help you learn iterative and incremental engineering techniques so you can deliver working products with long useful lives. We accomplish this by offering training, coaching, and workshops delivered to thousands since 2008.

This site is dedicated to self-paced learning, focusing on these critical technical skills:

  • Test-Driven Development
  • Refactoring
  • SOLID Design
  • Evolutionary Design
  • Adding Tests to Legacy Code
  • Evolving Legacy Code

Wingman Software can help you grow your development skills. Our main focus is embedded systems development written in C and C++. While our examples are geared toward embedded systems, the techniques can be used by any developers working in C and C++. You'll be able to apply the knowledge and skill gained from our courses in whatever language and environment you find yourself in.

Do you answer "yes" to any of these questions?

Are Scrum and Agile painful for you?+ Yes

Scrum and agile have quickly become the status quo in many companies. Agile’s short delivery cycles can seem disruptive and chaotic, particularly for those of us who grew up on waterfall. Many companies ramped up by training a few scrum masters, leaving the developers to just "figure it out" on their own.

Adopting iterative management, planning, and delivery -- and not investing in iterative engineering -- is a recipe for pain.

What is your pain level?



Can you spot these common symptoms of agile-done-poorly?

  • Iteration / sprint deliveries are more often missed than completed.
  • Developers feel rushed and micromanaged.
  • Developers feel pressured to deliver a poorly engineered product.
  • Code quality suffers.
  • Morale is low.
  • Releases are missing key features.

Want to stop the pain? The road to recovery can begin by attending our training. As you grow your iterative engineering skills you'll move the pain needle toward the green end of the spectrum. Adding iterative development to your skills can do more than just relieve pain, you'll enjoy developing even more.

With Wingman Software, you’ll learn the engineering techniques needed to deliver working products with long useful lives. You’ll start on a path to a more enjoyable career doing the things you like most: solving problems, programming, and delivering useful products. You’ll also avoid the pain of delivering defects, debugging, and low morale.


Are you tired of chasing bugs? + Yes

Test-Driven Development (TDD) helps you prevent defects by putting mistakes in your face as you work. It's humbling and worth it. TDD will save you hours and days of aggravation. With TDD you work in a tight feedback loop, adding a failing test, then writing just enough code to pass the test. This cycle continues as you exercise and confirm each path through the code.

This probably sounds backwards or crazy. You will find it is an effective and natural way to work. As a bonus it's rewarding and fun too!

With TDD, development and test automation are part of every day. Each iteration you add new features and capabilities. The tests form a safety net that notifies you when your code no longer meets the specification designed into each test.

For more information about how TDD can save you from the defect chase, read The Physics of TDD.


Are you frustrated with deteriorating code? + Yes

Code change is inevitable. But how do you make changes to code that ensure the design stays clean? The test safety net, woven with TDD, allows you to safely refactor your code and keep your system from deteriorating. You will learn to identify code and design problems, envision better solutions, and keep your code working during the transformation.


Did you know it is easier to keep a system working, than to fix it after your break it!



Our courses will help you learn the critical skills needed confidently evolve existing code without introducing new problems. Read more about these critical skills here.


Is your schedule tight and you don't have hardware to test your code? + Yes

It is so natural for embedded developers to live with this pain. When hardware and software are concurrently developed, too often hardware is delivered late in the development cycle. A miracle is expected when the two come together. But there are no miracles in this line of work. If you rely on your target as the sole vehicle to test your code, get ready for pain and delays.



James first saw Test-Driven Development in 1999 and saw that TDD could help relieve the target-hardware bottleneck by first getting his code to behave in an off-target test environment. James lived with the pain for the first twenty years of his career. No more though, and you don,t have to either.

Our courses will help you learn to design for test (and consequently a long and useful life). You'll see how TDD and off-target test can help you break the target hardware bottleneck.

Read more about progress before hardware here.


Did you answer yes one or more times?

Many developers before you have had those pains releived by learning and practicing TDD.

+ Our Time-Tested Learning Model

We learn new skills by doing, not just reading, listening, and thinking great thoughts. We learn new skills when we are motivated to fix real problems. In this course, you will practice the skills needed for successful iterative development. We’ve found this learning cycle to be invaluable to attendees of our courses.

Our time-tested learning cycle:

  • Identify a problem. Problems motivate change.
  • Offer a potential solution. Explain the idea that may help.
  • Demonstrate part of the solution. Instructor removes exercise ambiguity.
  • Complete the solution as an exercise. Participants learn by doing.
  • Review the experience. Discuss both positive and negative reactions.
  • Review the solution. Provide a step-by-step explanation of the thought process as James completes the exercise.

We’ve helped thousands of developers ingrain their TDD skills with this learning cycle. In this course, we repeat this learning cycle, growing skills with each iteration. Our goal is to help you build new skills on top of your existing skills.

+ Prerequisites
  • Programming experience in C or C++
  • Desire to improve

Programming exercises are run in our custom cyber-dojo server. No tools need to be set up. All you need is a modern browser.

+ Detailed Reviews of our Training

These reviews are from our >Live Remote Delivered TDD Training. You get the same content and more in this self-paced course.


+ Attendee Feedback

Thousands of embedded engineers have taken our courses

See what they have >to say.

Here are a couple samples of attendee feedback

James was there when the Big Bang of TDD, XP, and Scrum happened. He has an incredibly deep and broad insight into TDD and loves to pass on this knowledge. I especially enjoyed his reviews of my exercise solutions. James let me participate in his thinking. He has a good reason and explanation for very small step and decision. Even when James was not there, the exercises felt like pair programming with him.

Later he added

With TDD, James taught me a super power. TDD lets me cut through complex problems much faster than debug-later programming. And bonus: I get high-quality unit tests for free to maintain a steady development pace. I have reaped the investment for James’ courses many, many times.

Burkhard Stubert
Live-via-web attendee, 2019
>embeddeduse.com


Outstanding instructor! This guy really knows his stuff not just from theory but also from years and years of real-life experience! Very impressive also how well the instructor managed a huge class online. I had all kinds of problems the first couple of days (including microphone problems) to wrap my head around the concepts and the instructor worked through all of this remotely with me, which was awesome. After the second day and watching the supporting videos, I finally got the concepts. Very patient, knowledgeable, and professional instructor, probably one of THE BEST instructors I've ever had!

Thanks, Name Withheld

About James Grenning and Wingman Software

James Grenning trains, coaches, and consults worldwide. James’ mission is to bring modern technical and management practices to product development teams, especially embedded systems development.

James got involved in applying Extreme Programming to embedded software in 1999, twenty years into his career. Immediately, he saw the potential that the practices and principles could really help with embedded software development. He put the techniques into action with his client in 1999, confirming the applicability of Extreme Programming practices for embedded software development. That also makes him one of the first XP coaches, before there was Agile.

James was fortunate to have been invited to the meeting where the Manifesto for Agile Software Development was written. He was part of the XP contingent. He invented Planning Poker, an Agile estimating technique used around the world.

James' experience led him to write Test-Driven Development for Embedded C (http://wingman-sw.com/tddec). Over 17,000 copies sold!

He is a co-author of CppUTest, a popular unit test harness for embedded C and C++.

Live instructor-led training and coaching since 2008.

  • TDD team training
  • SOLID Design and Refactoring team training
  • Mob programming
  • Individual coaching
  • Legacy code workshop
  • Design workshop
  • Agile startup workshop

Are you training a large organization?

Let's make a plan for you to make iterative engineering skills accessible to your organization. We should start with your leaders so they can see the possibilities and help deploy to their teams.

James has been around the world fulfilling Wingman's mission

James has trained thousands of embedded and non-embedded developers in TDD, refactoring, and SOLID design.

+ See some of our clients
  • 8thLight
  • AOTB
  • APD Communications Ltd
  • ARD Technology
  • Aclara Technologies
  • Adobe
  • Alcatel Lucent
  • Allegion
  • Analox Sensor Technology Ltd
  • Aritha Consulting Services
  • Arthrex
  • Atlas Copco
  • Autodesk
  • Badger Meter
  • Barr Group
  • Baxter International
  • Beckman Coulter
  • Becton Dickinson
  • Bird Technologies
  • Blue Origin LLC
  • CSR, plc
  • Carbon Black
  • Carnegie Mellon Software Engineering Institute
  • Cirque
  • Cirrus Logic
  • Cisco International Limited (UK)
  • Cisco Systems
  • Cisco Systems Norway AS
  • Citrix Online Division
  • Citrix Systems
  • Clean Coders
  • Cobham Wireless
  • Coca-Cola
  • Continental - Commercial Vehicles & Aftermarket
  • Continental Corporation
  • Continental Guadalajara Services Mexico, S.A. de C
  • Cryptomathic
  • DataDirect Networks
  • Datacard
  • Dave Engineering
  • Deltanode Solutions AB
  • Dev Training
  • DevTraining OÜ
  • Drinkworks
  • Duke Manufacturing
  • Dummy Co.
  • Dynatronics AG
  • Dynon Avionics
  • ETA SA
  • Eckelmann AG
  • Elster
  • Enmet, LLC
  • Ericsson
  • Eurotherm Ltd
  • Evidente
  • FED WIRE CREDIT
  • Fossil
  • GE
  • GE Appliances and Lighting
  • GE Aviation
  • GE Energy
  • Garmin Canada Inc.
  • Gracenote
  • HP Inc
  • Hot Water
  • Hunter Industries
  • Hydro Flow Products
  • IATLab
  • IEEE
  • ITest Quality Partners
  • Impinj
  • Intel
  • Intelligent Mechatronic Systems Inc
  • Invensys
  • Jama Software
  • John Deere - APEX
  • John Deere IVS
  • Johns Hopkins Applied Physics Laboratory
  • KPIT Technologies Inc
  • King's Groceries
  • Kollmorgen Europe GmbH
  • LG Electronics, Inc
  • LG Software Capability Development Center
  • LeanDog Software
  • Legrand North America
  • Lithium Werks
  • Live Over the Web
  • Lockheed Martin
  • Logitech Canada, Inc
  • Logitech, Fremont, CA
  • Lucent - Shanghai
  • MESHNETWORKS
  • Malvern Instruments
  • Manufacture Horlogère Suisse
  • Marvin Test Solutions, Inc.
  • Mastervolt
  • McAfee
  • Medtronic Diabetes (Northridge, CA)
  • Micro Chip
  • Micron Technologies
  • Motorola Solutions
  • NDC
  • NDC Techtown 2017
  • Neato Robotics
  • Neato Robotics, Inc.
  • Neptune Technology Group
  • Nielsen
  • Nielson Labs, Slovenia
  • Nokia Siemens Networks Oy
  • OOP Conference
  • OOPSLA
  • OSRAM SpA LMS D/TV
  • Object Mentor, Inc
  • Osram
  • Panalytical
  • Panasonic
  • Panasonic Automotive
  • Pelco - Indianapolis
  • Pelco Finland Oy
  • Pillar
  • Planmeca Oy
  • Praqma
  • Qualcomm
  • Qualcomm - UK
  • Qualcomm, Inc. (Toronto)
  • SIGS-DATACOM GmbH
  • Schlumberger
  • Schlumberger Oilfield (UK) PLC
  • Schneider Electric
  • Schneider Electric Finland Oy
  • Scientific Drilling
  • Siemens Building Technologies (Buffalo Grove)
  • Siemens Healthcare Diagnostics
  • Siemens Industry, Inc. (Atlanta)
  • Siemens, s.r.o. (Czechia)
  • Smiths Medical North America
  • Solutions IQ
  • Steelcase
  • Strong Minds
  • Summit ESP
  • Synamedia
  • TTI
  • Technicolor
  • Telephonics
  • The Nielsen Company
  • Thoughtworks - China
  • Topcon Agriculture Americas, LLC
  • Trimble Nordic
  • UBM
  • US Army CCDC Ground Vehicle Systems Center
  • United Business Media - ESC
  • VIAVI Solutions
  • VIAVI Solutions – Wireles
  • VO Collect
  • Verifi LLC
  • Viavi Solutions
  • Viavi Solutions Inc.
  • Volvo
  • WEMA SYSTEM AS
  • Watch Guard
  • Wind River
  • Zebra Technologies Corporation
  • Zoox
  • Agilergo consulting GmbH
  • bioMerieux
  • iRobot
  • u-blox Cambridge Ltd.
  • For information contact us

    .