"What happens if we invest in developing our people and they leave?"
"What happens if we don't and they stay?"
Welcome to the home of MSTS Workshops. Workshops is our internal learning, exploration, and cross-pollination program at MSTS. This site will describe what opportunities we saw, how they were addressed, how the plan was changed over time, and where to find our ten-week starter curriculum.
What we were seeing around the office
Like many other mature organizations, we had an uneven distribution of engineer experience. In one bucket we had people with more than a decade of experience at our company who brought with them a wealth of knowledge about our industry, our customers, and the history of our organization. In another bucket we had lots of engineers who had arrived in the last year with vast amounts of experience from external organizations and projects. As we were expanding the team we were also bringing in early career engineers who needed exposure to new technologies as well as our internal methodologies.
We also had the fairly typical issue of teams staying within themselves and not reaching out to other teams for help or to collaborate. The organization wasn’t intentionally encouraging those behaviors - they were simply caused by momentum and tribalism.
For these reasons and more we had gaps that we needed to bridge so that we could get the most out of our teams.
Our belief was that the engineers in our company were like most - they were curious and would engage in conversations if we could get them out of their day-to-day grind.
We're just as busy as any other organization. We have more than enough client work, internal projects, and new business opportunities to keep us hopping for years. We wanted this program to be an investment in the engineers so we worked with our leadership to get two thirty minute sessions per engineer per week to test our plan. These would be a part of the engineer's work day - not an addition to it.
To make the best use of that time we created a curriculum that covered twelve weeks that would be led and mentored. We came up with topics that we thought covered a wide range of technologies, that were approachable from all experience levels, and that would start conversations instead of being taught. The initial curriculum covered topics like Git branching models, code katas, refactoring practice, database types, and more. Once someone had gone through the curriculum they were free to find other alum and continue on their own - two sessions per week, thirty minutes per session.
Once we had a curriculum we created a skills self-assessment and sent it out to the engineering organization. We used the results of that to select our pilot groups. The pilot groups also took a mid-point survey and another after completion. Using these results and our observations we tweaked the curriculum, removing some subjects that weren’t good conversation starters, and adding some new ones, finally arriving at a ten-week course.
We've been doing Workshops since they were introduced in 2017. We found that it was difficult for teams to maintain momentum after the curriculum completed and we felt we were missing an opportunity to extend the cross-team interactions even further. After a few iterations we arrived at the following structure.
Every two weeks we randomize the list of people who have completed the curriculum, group them into teams of four or five, then randomly choose one person from each group to be the leader. For people who don't think they will have time we provide an opt-out mechanism each cycle. We provide a current tech article for the teams to read and discuss during the first session, then a suggested code kata for the last three sessions. It's the group leader's responsibility to schedule the four thirty minute sessions and keep everything on track that week.
This random selection has helped more people establish relationships outside of their teams. By exposing our engineers to more of their coworkers they now know who to ask when they have questions and they're more comfortable approaching those people because of their existing relationship. Randomly choosing the group leaders has given more people in our organization leadership opportunities in a low-risk and supportive environment.
You can find the starter curriculum on its GitHub project page.