Here you will find ideas and code straight from the Software Development Team at SportsEngine. Our focus is on building great software products for the world of youth and amateur sports. We are fortunate to be able to combine our love of sports with our passion for writing code.
The SportsEngine application originated in 2006 as a single Ruby on Rails 1.2 application. Today the SportsEngine Platform is composed of more than 20 applications built on Rails and Node.js, forming a service oriented architecture that is poised to scale for the future.
At SportsEngine, we understand that organizational culture heavily impacts the way we engineer our systems. We believe that improving the culture of our sociotechnical system must be a part of our day to day work. "Culture is a Team Sport" is our way of sharing how we are redesigning the system at SportsEngine to generate culture that positively impacts our work and lives.
This is part 1 of 3 of our sub-series on mentoring at SportsEngine.
Over my years at SportsEngine I’ve held four distinctly different positions. When I was hired, I was a Software Engineer working on a product team, building new features, fixing bugs. Then I moved onto our Platform Operations team, working on infrastructure, performance, availability, and scalability of our platform. I was then promoted to Senior Engineer, before being promoted to manager of the team (my current role). When I was promoted to Senior Engineer, my manager and I discussed at length what that meant - most of which boils down to the way John Allspaw describes it in his 2012 blog post On Being a Senior Engineer. The short takeaway is that as a Senior Engineer your role is to pull the people around you up.
Pulling people up around you is done in a few different ways. The two most impactful ways are through mentorship and sponsorship. This post is about the former, but often people need sponsorship more than they need mentorship. The difference is really about opening doors for people, especially underrepresented groups who aren’t welcomed through the door as easily as people with privilege. But this blog post is about the Mentorship Program at SportsEngine. If you want to learn more about sponsorship (and you should) stop reading this post and go read Lara Hogan’s awesome post on the topic What Sponsorship Looks Like.
Informal mentorship happens everywhere. A healthy engineering organization will be in a constant state of sharing skills they’ve learned, patterns they recognize, designs they have used, and the tradeoffs they’re willing to make and not make. It happens in nearly every technical conversation in your organization. A formal mentorship on the other hand can have mixed results. There is very real value in creating a community, where people are genuinely invested in each other. A formal program creates a space for this to take shape, it signals to the organization that personal development is a thing we value here. But there are plenty of bad ways to implement a formal mentorship program, like focusing on ceremony, requiring homework, or pushing anyone into it who’s even slightly disengaged by it. These are very real risks that can create a culture of gatekeeping, hero worship, and cultural toxicity.
When we decided to create a “formal program” at SportsEngine, we took a very experimental approach. The program started with just one mentor - mentee pair. The requirements were simple:
Mentorships can work in many different ways. They can be focused on career advice, personal growth, or even navigating the organization. We decided to put an emphasis on personal growth. When someone decides they want to search for a “mentor” they often have a goal in mind, something they want to learn, skills they want to acquire, or career progression. Choosing the right mentor can be difficult, but the basic requirement is that they can provide guidance in how to achieve the goal laid out by the person looking for a mentor, and that they genuinely want to help them get there. The engagement of the mentor is critically important. An engaged mentor will learn just as much during this process as the mentee.
Since the initial pilot in the spring of 2016, we have added two more pairs in the spring of 2018, and five more this year. The first one came to an end when I transitioned from being a Senior Engineer to a Manager. But a year later, the first mentee became the second mentor, and we have been steadily adjusting our experiment over time as we add new people with different perspectives and needs.
With this latest round of new mentorships we realized we needed to make a few adjustments. One adjustment we made, was requiring the mentor to come from the same team as the mentee. This happened naturally to start out with, but after trying a cross team mentorship, we found that the goals weren’t aligned enough to be effective. It was difficult to decide what to work on, and the cognitive load of switching to a different team’s context was too high. Another adjustment that we made recently that has proven to be super effective is in the way we use our calendar. Within SportsEngine Engineering, we have 2 afternoons a week, Tuesdays and Thursdays, where we have a block of time, 2-5 PM, that you can not schedule meetings. Initially, I was recommending scheduling weekly pairing on one of those days, to mitigate some risk of it getting canceled. Naturally, most people chose Thursday, because later in the week is easier to plan for. But the consequence of a Thursday cancelation means you may not meet for the week. So I’ve officially started recommending Tuesdays, if something comes up on Tuesday you can always push it back to Thursday. It’s these systematic approaches to focusing on the value of mentorship that have really made it a success for us.
At this point my role within the program has shifted to facilitation. The second round of mentorships were all people who reported to me, again something that happened naturally. But as we have expanded the program out to other teams, it’s become clear there needs to be a consistent thread that can tie the program together. This facilitation role consists of helping to pair a prospective mentee with a mentor, facilitating the Quarterly retro meetings, and leading a Mentors Guild.
I’m really not sure how this program will grow from here, but it’s a clear example of how building a learning culture is playing the long game. What started as an experiment three years ago has turned into a feature of our Engineering Culture here at SportsEngine. Culture is a team sport.
Thanks to Josh Zimmerman, Chris Trotter, and Luke Ludwig for their edits and feedback.