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:

AngulrJS, arguably the latest and greatest framework when it comes to web client side development was the main topic, we covered an intro this client development and quickly dived into Javascript and AngularJS.
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:

Node.js, defiantly one of the hottest trends in javascript sever development was the main topic, main concepts and code examples of developing web servers in general and Node.js specifically.
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:

  1. It is an awesome idea, i do hope other companies will be willing to invest in this.

  1. Next we need a better room layout, allowing team work and providing enough space.

  2. It was a very good idea to prepare the development environments in advance.

  3. Music during “the sprint” is a good idea.

  4. More breaks during the theory part (we had only 2 breaks).

  5. 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.