As we launch into the New Year, it’s a time of reflection and resolutions. One of our long-time desires at Stuart Engineering was to maintain a technical blog, including topics ranging from opinions on coding patterns, tales from the production battle-front, team cultural initiatives, and musings on the more obscurer aspects of mechanical keyboards. So the New Year seems like the perfect time to come good on the blog-promise we made to ourselves in 2017.
One of the topics that was voted to lead the launch of this blog was our experience introducing greater transparency into the Stuart Engineering team. This post reviews the steps we took at Stuart Engineering to achieve that goal.
As CTO of Stuart one of my principal concerns is ensuring that the team dynamic in the Engineering department is as conducive to productivity as possible. It doesn’t matter how technically strong the team is, without a healthy team dynamic it will always underachieve. For example, having a team of rock-star developers who don’t work well together will never deliver as much as a team that has less technical prowess but works well together. In short, team work is key. While this sounds obvious, my experience is that it is too often over-looked.
Transparency is a desirable trait in an Engineering team because it encourages objectivity, fairness and consequently trust. It can also be implemented relatively quickly, easily, and can have a significant impact on trust both horizontally and vertically within the team. Trust is something that is hard to earn, and easy to loose. So setting a solid foundation to build trust upon is critical.
It should be acknowledged that transparency is by no means a silver-bullet to achieving a healthy team dynamic, and there are other much more important aspects; like positivity, empathy and phycological safety (more on those topics in future posts!). Nevertheless, it does provide a very good starting point.
So based on this desire to start with transparency, we settled on the following 2 initiatives:
- An open Stock Options plan
- Open team Salary Ranges
The following sections look at each of these initiatives in detail.
Stock Options at Stuart had previously been attributed in a ad-hoc fashion, and some team-members had disproportionately more/less than others. Not only did this seem intrinsically unfair it was also the source of some discontent and friction within the team.
With the purchase of Stuart by Geopost in March 2017, a new Stock Option plan was put in place. This presented itself as the perfect opportunity to revise the attribution system and make it transparent, objective and fair.
The challenge then was how to make the Stock Option assignment process fair. The goal was to have 2 simple yet objectively measurable variables that represent the key contributors to the decision process. In other words; we wanted the question of “who gets more and who gets less” to be clear and intuitive. We settled on the following:
A team member’s join-date became the principal variable. The number of months a team member has been with the team is an indisputable variable, and easy to determine. It meant that those who have been with Stuart the longest are rewarded more. Those who joined in the very beginning took a greater risk with a younger less proven company than those who joined much later on, so it seemed fair to use a team member’s join date as the principal value.
Moreover, the risk associated with joining early does not have a linear relation to time. Those who joined very early on took a much bigger risk than those who 6 months later, and the same for the those who join 6 months after that. To help with this we created an exponential Employment duration weighting curve that is shown below.
Each individual’s impact on the team’s output was chosen as the other variable. This variable is a mix of the individual’s responsibility and their contribution to the team. Although, this is a less objective variable as it is harder to quantify, it ensures that an early-joining junior member would not be more rewarded than a senior team lead who had joined 6 months later.
To aid in making this variable more objective we applied the following rules to it:
- The variable is between 1.0 and 5.0
- A manager responsible for >7 team members receives 5.0
- A manager responsible for <7 team members receives 3.0 ~ 4.0
- Non managers receives points associated with the impact their contributions have on the team’s output.
Finally, we wanted to achieve a final equation that is simple like: x + y = z. This required that the Impact variable was weighted enough so that we could sum it with the Employment Duration variable. To achieve this we settled on a weighting factor of 3. This brought the Impact variable within a range of the Employment Duration variable that felt equitable.
So the final equation is simply:
Stocks = Weighted Impact + Weighted Employment Duration
See this extract of the calculator the Stuart Engineering team uses today to check how many shares they have.
The second subject for a transparency overhaul were salaries. In the same fashion that Stock Options had been allocated in a seemingly ad-hoc basis, team member salaries were much the same. Publishing a table of team roles and equivalent salaries allowed all the team to confirm that they are valued fairly and equitably within the team. Most importantly it responds to the concern of: X should not be paid more than me for contributing less.
Interestingly, as an unexpected by-product, this initiative helped us significantly with our recruitment efforts. Letting candidates know that we have open transparent salary ranges removes much of the uncertainty around negotiating salary by setting clear boundaries. It helped us filter out candidates early on who were seeking salaries way above our ranges. It also reassures current team members that new recruits are payed equally to them.
See this extract of the 2019, 2018 & 2017 salary ranges we published internally and use for recruiting.
Throughout 2017 we also implemented a number of smaller initiatives that continue this trend towards greater transparency. Some of those include:
- Public slack channels: We keep all Engineering slack channels public, so that anyone can join, review and search our discussions. To tackle the problem of having channels polluted with unwanted noise from outside team members we implemented a convention of having core channel user-groups and a slack bot that politely removes all non-core members nightly.
- Team/Squad Stand-ups: All Squad stand-ups are published in Slack channels accessible by anyone at Stuart.
- Sprint Retrospectives: All our Squads publish their sprint retrospectives in our wiki so that anyone can learn from them.
- Weekly Management Reporting: The weekly report that I as CTO publish to the Management team is also published in our wiki for anyone to read.
- Tech Lunches: Whilst slightly different, we began having tech-lunches with Engineering teams from other companies (like our friends from JobTeaser Dev Team, Vodeclic Engineering and MonBanquet) where we share our experiences. These are suprisingly helpful in validating ideas or alerting us to potential pitfalls we had not considered. The end result of these are always positive.
Whilst these initiatives have been big positive steps for us, we still feel like transparency is not something that can be only partly implemented. As such we need to continue implementing more and more transparency within the team. Some of the future initiative being considered for 2018 are:
- Mail: All mail sent within the team should be CC’d to a group mailing list so that they can be accessible by anyone in the company.
- Management Weekly Meeting Minutes: In our weekly management meetings important decisions are made each week. This would be beneficial if shared with the whole company.
- Team/Individual Objectives: From 2018 onwards we have begun implementing OKRs at Stuart. Making each team and individual’s OKRs accessible to the whole company would be beneficial.
- Team/Individual Professional Growth: From 2018 we also plan to implement a slightly modified version of Medium’s Snowflake Engineering Growth Framework which will also be open for all to see each others progress.
We are always keen to know more about how other Engineering teams implement transparency initiatives. If you have any others that you found worked well please do share them with us!
Like what you see? Join us, we’re hiring. 🚀