Inspiring Collaboration with Software Engineering Guilds
As Usabilla grows, we’re far from unique in facing the many challenges of a scaling software company. In order for us to continue our fast pace of innovation, we’ve borrowed many of the strategies outlined by Spotify back in 2014 when they were at a similar stage. One such concept is that of “guilds”.
The idea is that when you have effective, autonomous teams driven by product delivery goals, you need a healthy tension between that and a drive for technical excellence and quality. That drive comes from a guild – in our case, a cross-team and department group of people centered on a particular technical area.
Img src: Henrik Kniberg
Guilds inspire collaboration and learning through regular knowledge sharing sessions, interacting with the wider community, and working on cross-team technical debt and other projects.
To kick off the creation of the front-end development guild, many of us were lucky enough to attend the fantastic JSConfEU 2017. There were a few themes that stood out over the two days.
It was really awesome to see so many people talking about the speed of the web – from both a human perspective and a technical one.
For instance, Ben Schwarz from Calibre raised some really good points about the www as we know it – what he called the “wealthy western web”. So many of the world’s websites are built by teams on expensive computers connected to high-speed internet, which creates a terrible experience for those who do not have access to these privileges – like the majority of the 108 million people that became new internet users in India in 2016. The reason that the internet had such a transformational impact on the world was that it was opened to everyone, and it’s so essential that we continue to honor that concept.
There were also several talks on accessibility – referring to the technical and design strategies that allow people with disabilities or changing abilities (for instance someone with a broken arm who has to use a keyboard) to access the web.
Laura Carvajal from the Financial Times shared with us her story about making their website accessible, including a really eye-opening video from the Digital Accessibility Centre in London of their experts reviewing the site. They implemented some great tools such as Pa11y but she also emphasized that this will only get you part of the way and that there’s a difference between something that meets the Web Content Accessibility Guidelines and something that actually provides a fair and enjoyable experience for those with disabilities.
Laura’s talk also featured a fantastic one-liner – “Diversity improves your product, your team, you”. She was, of course, referring to diversity from a perspective of accessibility, but this was a thread that ran throughout the conference.
The organizers did such a fantastic job of having diverse speakers, gender-neutral bathrooms, an inclusive photo policy, live transcription, childcare/nursing rooms, and (delicious) vegetarian, healthy meals. This really stood out to us as our team prides itself on our diversity – every one of us at JSConf came from a different country or cultural background, and almost half of us were female which is rare on a technical team.
There are always ways in which we can improve but the effect that this has on our team is noticeable – we have an amazing supportive culture which, in the end, also improves our product for our end users.
For our feedback solution to be effective, it needs to work for as many diverse users as possible. In fact, the more diverse feedback our customers get, the better informed they are about their websites and businesses. Therefore it only makes sense for our team to be as diverse as our users.
Our first guild session
We continued the momentum of JSConf with a day-long, off-site session where we shared what we had learned at the conference, as well as general topics that we wanted to focus on and improve.
We ran a number of lightning talks, presented by our fellow team members, which were all followed by discussions of how we could implement different ideas at Usabilla. The quality of these talks was incredibly impressive and gave a lot of us greater confidence in public speaking – which we hope to see develop into speaking at more meetups and conferences!
We also ran a number of pair programming exercises to practice and upskill in a few areas that we’d prepared in advance. Topics included test driven development, functional programming, promises, and gitflow. The goal here was to a) learn something, b) teach something, and c) work with someone new.
When we reviewed the session at the end of the day, everyone walked away having achieved these goals. We also left as a closer and more effective team.
Continuing momentum: The next steps
Our workshop session together raised so many juicy ideas that we can’t wait to start implementing them. However, it can be easy for these to fall by the wayside when faced with the everyday work of the team.
So, there are two things that we’ve implemented to keep us on track:
- One is to assign someone the responsibility for organizing each of the guilds – what Spotify calls a guild lead or coordinator.
- The other is assigning a certain amount of time each sprint to holding a guild session.
For us, this is an afternoon at the end of each sprint where we will get together and share knowledge through lightning talks, presentations, pairing exercises, and brainstorming ways in which we can improve the quality of what we do every day.
Wish us luck!