All clean code development trainings are delivered online and in person.
I’m a strong believer in the power of interaction between training participants and trainer, hence there are no “canned trainings”. I’m not into video courses. But I’ve also found, that many hours in front of a screen is not how online learning works best. That’s why I’m delivering all my trainings in a so called inverted classroom.
In the inverted classroom the participants and I only meet in person for what’s best done in person and synchronously: giving feedback and answering ad hoc questions. In addition in-person sessions promote focus: participants are reminded of the importance of the subject and have an easier time allotting time for it. So, essentially I’m not only a trainer but also an accountability partner.
Live sessions of 60-90min in the online classroom are one or two weeks apart to keep the energy high.
In the time between live sessions participants are working on the subject matter by themselves; that can be done alone or in small groups. They study the material I’ve provided them with after the previous session and they develop solutions to problems described in the lessons’ exercises. The amount of time spent on the training topic thus is about two to four times more than in usual trainings. That way learning can go deeper and influence habits more. With online trainings in an inverted classroom participants get considerably “more bang for the buck”.
I’m happy to customize my trainings or “go into coaching mode”. But in general the overall subject of high longterm productivity is naturally studied from three different perspectives matching the core phases of programming. I’ve written a comprehensive book on each of theses phases on which I’m basing my trainings; this trilogy is called 🌐 Programming with Ease.
Please note: All trainings based on my books currently require at least an understanding of German when reading. The training language can be English – but the books are in German only right now. Hence the below training descriptions will be in German, too.
There is no long term high productivity as long as code is lacking maturity and stability. Automated tests are of utmost importance for that. But how to ensure there are automated tests, not too few, and not too many?
Designing Software with Flow-Design
What clean code wants to achieve is not just a matter of code. Programming needs to start focussing on long term productivity before coding. To solve the problem at hand conceptually before coding helps to avoid wasteful refactoring cycles and is the prerequisite for a distribution of work.
Analyzing Requirements with Slicing
Garbage in, garbage out is of concern for the whole programming process. That’s why long term productivity needs to be very conscious about its input: the requirements. Developers should not be content with a user story when starting to code! A more developer-oriented analysis is needed prior to design and coding and needs to be embedded in a process geared towards high quality code delivery.