How I Delivered a “Hands-On” Training in Maxcode

By Sergiu Ibanescu

I think that being a trainer is something you need to do at some point in your professional career because it will imply more than a technical topic to explain to your trainees. You’ll have the spotlights on you, which might not be very difficult to endure for some, but I am pretty sure for most of us is not something comfortable. And pushing yourself out of your comfort zone is a good thing in our field.

I’ve always loved to attend “hands-on” trainings as a trainee. However, I’ve also explored in my mind the other side, questioning myself: “How will it be if I am the trainer?”.

This spring, I’ve finally prepared and delivered a 4 hours “hands-on” training split into 2 sessions – each of them of 2 hours – to a group of 10 colleagues. I also repeated the same training with another group after one month.

If you want to know how it went, here are my takeaways.

The preparation phase

Almost all technical trainings can be delivered as “hands-on” but you need to consider and make clear the technical requirements. Sometimes, you might have a cool topic – but you don’t have the appropriate training infrastructure. For example, you might prepare something about Azure Cloud, but you must be sure that your trainees have access to a subscription to perform your guided steps. You also need to understand if the differences in operating systems (Windows/Mac) are not going to punish you in your endeavor.

Luckily, I chose to deliver a Terraform training in an Azure cloud environment – and Terraform is pretty agnostic about the operating system itself. But Azure subscriptions posed some challenges and we also encountered some deployment issues related to Mac systems as well – when we tried to deploy our dummy .NET application to check our Terraform infrastructure.

I think that the trainings should be also open for everybody who wants to attend. However, a “hands-on” training might come with some pre-assumptions which are sometimes not valid for everybody. The main challenge is to choose the right rhythm – to not bore some of your audience and not leave behind others. Make it clear from the start if some previous knowledge is needed or, even better, be prepared with additional things which might be picked up by the faster-paced attendees (additional steps, for example). In my case, I chose the hands-on to be at a basic level – we started with deploying one resource in Azure and gradually added more – so everybody was welcome.

Determining the length was a challenge by itself since we didn’t want to go with a full training day from the very beginning, and this type of training requires that the participants really do execute some of the steps under guidance – so time is not fully under your control. Also, the material needs to be adapted – you always need to have more material ready compared with the estimated training length. Additionally, delivering the training in 2 sessions added some extra pressure.

To mitigate this, we decided to go with a 4-hours length and have some additional material just in case. I tried to split the material among the sessions using my personal experience, to make each session self-contained.

Usually, you’ll share a repo with some steps to be followed in these types of trainings. Even if you are very careful and rehearse it a lot, I think having another pair of eyes is important. You are biased when rehearsing – so your partner can bring useful things to the table. Personally, I benefit from a great help coming from a very skilled colleague which helped me a lot in the preparation phase.

Please bear in mind that rehearsing is quite time-consuming. If you need to follow multiple steps, you need to start fresh every time when you are discovering that something is not correct in your solutions. For me, this meant that I needed to destroy everything (I mean…terraform destroy, not something else) and rerun the steps to make sure that those are actually usable if somebody wants to play them in succession.

Let’s see how it went and the lessons I’ve learned when delivering the training.

The delivery phase

In the post-COVID era, you should ask yourself if the training should be delivered in person, online or both. In the last period of time, in-person trainings have gradually returned to what they used to be – however, we choose to have a mixed (or hybrid) participation. Unfortunately, a “hand-on” training is not appropriate for mixed/online, at least in the form I choose to deliver.

In my mind, providing the solutions should have been enough – but for the online audience this was probably not the case. A better way is to always show your implementation at the end – if you can afford the price to lengthen the training itself. Additionally, you should have somebody else to help with the online audience when you are moving around the room where the in-person training is taking place. Third, the online experience is very limited since you cannot benefit from the collaboration and energy which, in this type of trainings, is very high in the physical room.

My perfect split in 2 sessions didn’t go smoothly either. I needed to skip some planned steps, rush some others, or even complete the purpose of the first session in the time allocated for the second session. In the end, my feelings were mixed – on one side I was proud that I was able to deliver almost everything I wanted and prepared, on the other I was not happy about rushing some parts.

Lastly, even if rehearsal is a must-do preparation step, bear in mind that things will not look as perfect as in the simulation. In my case, people were curious not only about the topic itself but also about some aspects I considered not important at the time of rehearsal. For example, I got a lot of questions around Azure and the setup itself. Just be prepared for that and try to not derail and transform your training into something else. Go forward if you don’t know the answer to a question – you can also save them for later. Anyway, having an engaged audience is something every trainer wishes for – it is a sign you are doing it fine.

The post-delivery phase

I received good feedback both “on-site” and later through a feedback form. For me, was surprising to see that 40% of attendees provided feedback – I expected much less in honesty. I also fixed whatever I found broken in my code and addressed all missing questions.

Personally, I felt it was very rewarding. But I also realized this is not a one-shot thing – you do it once and then you master it – it is something you need to do often to be better and better. But I was glad to start doing it and I look forward to the next one!

A final thought before you leave

I am not a personal fan of just visual slide presentations – don’t get me wrong, visual presentations play an important role when they are used right – but I don’t think somebody can be 100% there when watching a long slide presentation. On the other side, a “hands-on” training is very engaging, and hours go by very fast. I would always choose the hands-on training – but only when I can deliver it the right way.

About Sergiu Ibanescu

Sergiu is an Expert Software Developer and a Tech Lead at Maxcode, with over 10 years of experience working with .NET and Azure. In his role, Sergiu is constantly looking for new trends and ideas that can help the products he works on and his team, as well as sharing his knowledge to create and maintain the right mix of technical skills for the project.


Share this article