Last week one of my dreams came true. It did.
Let's start at the beginning: The customer is a very big organization that we work with for a while now, they mostly use our training services and consult with us from time to time. About 6 months ago I got a call from one of the managers requesting to meet and plan a training for technical leaders in the company, as he explained, the goal of this training to widen the horizons of the people involved in both process and technical areas. I should mention that they mostly do “traditional” programming such as Java and C#.
When I met with him I described this dream that I have for a while now: “it is a hands on training in which the goal is to learn the value of innovation and agility, with a side goal of acquiring new technical skills. The people in the training will actually be building products using both the new technology and an agile process.” You can guess I was surprised to hear the words “I like it. Let's do this” come out of his mouth. I then reached out to Aviv Ben-Yosef to collaborate on this one. He agreed.
We agreed about that each day will be divided into two parts: Theory and practice.
In the theory part we learned, that's obvious, the practical part is more unique:
During the practical part, the teams implemented what they have learned in theory.
So here is the training outline:
Day 1 - Agile (Scrum) Process:
The theory part covered Agile, Scrum, User stories, Relative estimation and a bit more (All on an introductory level), just enough that they can get the basic concepts (probably not enough to start a full blown agile project from scratch). The practical part was dedicated to invent and plan the products that they are going to build, in the beginning, we had participants raise a bunch of ideas and explain them, using dot voting we narrowed the ideas to 3 and asked the participants to join whatever product they find interesting. Cool. We have teams!
The teams now went to brainstorm their ideas, create a backlog compiled of user stories, add acceptance criteria to the stories and estimate it. The day was over when each team had a prioritized backlog. To finish the day we did a retrospective.
Day 2 – Client side development:
On the second part of the day the teams started with planning the sprint by creating a sprint backlog composed of tasks that are 30 minutes max, and for the following 3 hours they “sprinted”, stopping every 30 minutes to do a pseudo daily meeting and update their information radiators (task boards \ burndown charts).
At the end of the sprint we held a joint sprint review and the teams got to show off what they have accomplished (And believe it or not, they actually had products to show). And of course we did a retrospective.
Day 3 – Server side development:
On the second part (just as day before) we had planning, sprint, review & retrospective.
Day 4 – NoSQL databases:
Well, it is almost natural when dealing with Node.js and AngularJS to throw in the mix some mongoDB , so we did.
On the second part (just like the previous 2 days) we had planning, sprint, review & retrospective.
Day 5 – Delivering
This day was different. The first part of the day was dedicated to sprinting and in the second part of the day we have a big sprint review with executives from the company coming to take a glimpse at what the teams did. Unfortunately, I am not at liberty to describe the products that they developed, but trust me when i say this: “WOW! Innovation was in the house :)”.
We finished with reflection about the learning a collected feedback.
Insights following this experience
Since this is the first time i have done such a thing i would like to share some insights, a mini-retrospective if you like:
It is an awesome idea, i do hope other companies will be willing to invest in this.
Next we need a better room layout, allowing team work and providing enough space.
It was a very good idea to prepare the development environments in advance.
Music during “the sprint” is a good idea.
More breaks during the theory part (we had only 2 breaks).
Consider avoiding the review with the managers. I felt it introduced too much pressure.
Want to consider having such a training in your organization? Contact us.