13 June 2022
A major multinational manufacturing company wanted to improve the skills of their C++ programmers to enable them to update their existing legacy code to use the features offered by modern versions of C++ (C++11 up to C++17). They also wished to improve the testing and performance of their code. To do this, a group of courses was offered: a C++11/14 upgrade, a C++17 course, a test-driven development (TDD) course and a C++11 performance and optimisation course.
These courses have been given multiple times over the last two years and demand for them from the developers remains high, with some developers attending all four of the courses. This case study investigates the TDD course.
The main logistic challenges were that delegates were located throughout the EMEA region. This gave instructors a challenge to cope with:
Success was achieved by using experienced, technically competent instructors who were familiar with the new Libraries and features of C++, as well as TDD, and who were able to bring into the classroom “Real world” examples in Labs, stimulate discussion, use of practicals over notes, majority hands-on rather than passive theory. Furthermore, participants were paired up in order to help each other through the exercises if there was a problem with understanding language or technology. As delegates were all over EMEA, getting a uniform core formula for each course agreed and delivered successfully to suit everyone was rewarding for instructors and client.
In simple terms, success was measured by the ability of delegates to leave the course being able to develop C++ application which fully utilize the latest libraries and TDD techniques.
Delegates should be able to:
Course quality was measured by the manufacturing company. After each run of a training course, the delegates score the course instructor and delivery and this is analysed to ensure performance parameters are adhered to. These scores are always fed back to JBI so that we know if a course is well received and where improvements need to be made.
“I found the mocking very helpful, and liked that larger design concepts were discusses alongside the specific testing concepts. I've been convinced that the TDD process is valuable and look forward to giving it a try.” NS, Software Developer
“The course was very educational and enlightening! I especially enjoyed the boundary value analysis with the equivalence partitions, as well as the state machine method and all about mocking. Also, working on the hands-on exercises made the course very fun and engaging.” XK, Senior Software Developer
For further information on C++ courses:
Here are some more articles related to this case study: