“Alone we can do so little. Together we can do so much” - Helen Keller
This quote came to be very true for five of us when we put together “DevOps 101” Workshop for vodQA Bangalore’s “Push the Envelope” edition.
Why did we need a team?
When I started thinking about conducting a DevOps workshop, a major challenge before me was driving home a set of complex topics (DevOps Intro, Infrastructure as code, Vagrant, Puppet) to a varied range of audience. If there was a team that can handle the different parts of the workshop, it might make the task easier. Also since DevOps is applicable to developers and testers alike, I was looking forward to work with a team across different roles to bring about different perspectives.
The team that we formed had Abu (a senior developer), Mukund (a young developer), Shraddha (a young tester), KK (a senior tester / manager) and me (a senior tester). To my happiness, the team had good role, experience and gender diversity. We had two weeks to prepare for the workshop and the clock started ticking already.
I had a vague idea in my mind how I would like to go about the workshop, but the details had to be figured out. As a team, we started off with huddles to get an initial workflow planning and broke down tasks that each could own. We gave ourselves time to explore which apps to use for the workshop and got back together with the results and zeroed in on the apps. We had periodic huddles to update on the tasks owned by each of us.
The team had complementing personalities that helped in bringing out a successful workshop. Some of us were adamant with the quality of the workshop, while others were accommodative of failures. Some of us were great team players, while others were task-masters. All of us being from different roles and ages brought about unique perspectives that helped in refining the content, the presentation and the delivery.
Orchestration - Sacrificing Evenings
The workshop was broken down mainly into
- Intro to DevOps and Infrastructure As Code
- Virtualization and Vagrant
- Configuration Management
- Hands-on Configuration Management with Puppet.
The theory had three speakers who took care of different topics to break the monotony and the presentation was to be orchestrated well to look like one flow. For this, we had to sacrifice our evenings every day for a week to get together a continuous flow with logical breaks. The presentation, though created by multiple people needed to be themed similarly. We went ahead with using a lot of images and made all the slides accordingly.
The handson required building the configuration management code for the ToDo frontend and backend apps that we used for demonstration. The different tasks for the handson were divided and achieved.
The Challenges with Hands-On
Then came a tough challenge as to how to go about the hands-on. We had a lot of brainstorming around this, but could not easily arrive at a solution.
We tried a couple of things
- to ask the participants to try out Puppet hands-on and help where blocked
- to have pre-worked stages in github so the participants can walk through the code
Since we had only 90 minutes for the workshop, if we went down Option 1, we figured we would have the participants do only a basic Puppet example. But if we went down Option 2, we would get time to explain concepts like Idempotence, Dependencies, Cross-Platform compatibility. And the participants would have access to the repo to try their hands-on at a later point. We decided to go with Option 2.
Response from Audience
To our delight, the “five in a box” model was taken very positively by the audience and the workshop received a 5 star rating as feedback. The audience appreciated different aspects of the workshop, like the theory, presentation, orchestration and hands-on work. Without having different people take ownership of different parts of the workshop, I am sure this could not have been easily achieved.
If a workshop has different and complex topics to touch upon, it is a good idea to get a team together because of the different perspectives the team can offer and various aspects that each can own individually.