Guilds: Get Stuff Done Together

Hootsuite Engineering
Hootsuite Engineering
6 min readDec 17, 2014

Collective action is a wonderful thing. Meetups and open source projects are two examples of people getting together to have a conversation about the things they care about, with the aim to do something positive for themselves and their community. How can this collective action happen inside your organization? At Hootsuite, the answer is Guilds.

Guilds are a self-organizing group of people with common interests. It is a natural forum for social interactions that build relationships that, in turn, promote cooperation, cohesion, and productivity. [1]

Guilds provide a horizontal communication layer across our Product Engineering teams. Our engineers, testers, and other staff use them to set their own missions, to establish technical roadmaps, to take on joint tasks for their grassroots initiatives, and to promote education through experiential learning. This collective action benefits their members, their craft, and our organization.

guilds-at-hootsuite

Thanks Spotify

Spotify is a uniquely structured organization. In November 2012, Henrik Kniberg and Anders Ivarsson published details of Spotify’s organizational model [2] and included helpful visuals defining a guild as “a group of people that want to share knowledge, tools, code, and practices.”. Spotify’s description of their guilds resonated with me, because I saw guilds as a model for social education, technical roadmaps, and source of bottom-up initiatives; a light-weight formalization of discussions already happening ad hoc amongst our technical staff.

Proof is in the Pudding

Our guilds added a postscript to Spotify’s definition: …to get something done. That postscript clarifies that guilds focus on outcomes and not simply discussion. Our guilds strive to measure outcomes by their impact on the guild’s mission, their benefit to our organization, and their benefit to the community.

Scala Guild

  • Defined common standards and best practices for our Scala teams and projects
  • Eased the transition between training and day-to-day coding for new Scala engineers
  • Held a series of study sessions to grow our local community of Scala enthusiasts

PHP Guild

  • Formatted entire codebase to PSR2
  • Wrote a technical roadmap for our use of PHP
  • Introduced Mockery and AspectMock for testing and a dependency injection container for composable and maintainable code
  • Introduced security training, technical presentations and code katas to guild meetings

Javascript Guild

  • Reduced our jshint warnings from 5700 to zero
  • Added RequireJS for dependency tracking
  • Introduced CasperJS as a faster functional testing framework (relative to Selenium)
  • Run training workshops on our front-end javascript frameworks

HTML/CSS Guild

  • Standardized on LESS as a CSS preprocessor
  • Built and scaled our internal styleguide
  • Adopted HTML and CSS coding standards and linting tools
  • More on CSS at Hootsuite

API Guild

  • Identified a set of core values that drive our design choices when building APIs
  • Published (internally) API design standards for our internal and external APIs to help keep interfaces consistent across our ever-expanding list of services.

Other proposed guilds include an onboarding guild, SEO guild, web analytics guild, copywriters guild, and a UX & web design guild.

design-guild-comic

Characteristics of our Guilds

  • Membership and participation is voluntary. Membership ranges from 3 to 20+ people.
  • Membership is not restricted to any department, role, seniority or skill set
  • Guilds are self-organizing: they set their own mission and take on joint tasks to fulfil it
  • Self-governing groups like guilds still require someone to curate, coordinate, and administer, so each guild has at least one person that leads these activities
  • Employ an agile practice of retrospectives
  • Frequency of meetings ranges from bi-weekly, monthly, to intermittent
  • Each has a Yammer group (a public place where they work out loud)
  • Co-located

Hootsuite has an engineering office in Bucharest, and it remains to be seen whether guilds will work effectively across geographies and unfriendly time zones.

15337369395_04cb5dc51c_o

Scala Guild members mentoring at a Vancouver Scala Study Group

Why does it work?

  • Endorsement from our senior leadership and authority for the guild to self-manage [4]
  • Clear boundaries in terms of alignment with other guilds and stable teams [4]
  • Members takes stewardship of their craft, functions and interests seriously (those with a passion tend to initiate and lead Guilds)
  • A working environment that supports scratching itches: encouraging people to work on something bigger than themselves, that they care about personally, with people that have a similar interest but diversity of experience, and the autonomy to make this happen.

An Example

PHP Guild

It’s a bi-weekly 1 hour meeting of PHP developers at Hootsuite. Its goal is to empower developers to write better PHP through discussion and knowledge sharing. We meet in the Great room from 4pm-5pm every other Tuesday. We alternate between workshops where we spend the hour learning a skill/hacking on something and regular guild meetings where developers present on what they’ve been building and we discuss ideas to make our code better.

Mission

Empower developers to write better PHP

Objectives

  • Share knowledge about new PHP features, technology, and best practices
  • Provide visibility into what each team is building in PHP and what they’ve learned
  • Adopt standards and best practices
  • Propose and implement solutions to make our code better and development easier

Metrics

  • There is an educational presentation at least once a month
  • The PHP guild representative from each team gives an update each meeting
  • Our backlog of action items is being worked through and updated

A Blueprint for You

I’m sure you can make this work at your organization. Taking two weeks to try an experiment is a small investment for a potentially big pay off. Some characteristics that will help your guilds succeed:

  • Encourage a culture of self-governance and continuous improvement
  • Recognize that people take stewardship of their craft, functions and interests seriously
  • Seek endorsement from your senior leadership and the authority to self-manage (at least enough to try a guild experiment)
  • Nominate someone to curate, coordinate, and administrate the guild
  • Begin with a retrospective and use the pain points as a starting point for a roadmap
  • Establish a frequency of meetings — err on the side of more frequent
  • A public place where the guild members work out loud: Yammer is a tool that helps us.

Modern Guilds. Make It Happen.

Historically guilds were an association of artisans or merchants who control the practice of their craft … their purpose was protectionism: restricting competition, controlling membership, and trade secrets [3]; the opposite of Spotify’s re-imagined guilds.

I encourage people to embrace this social shift. Volunteer your time to share information, debate ideas, promote cooperation, bring people together to educate one another and get stuff done. Use this modern guild blueprint to excite some collective action where you work.

Sources and citations

  1. Wikipedia entry on Social Capital
  2. Scaling Agile at Spotify by Henrik Kniberg and Anders Ivarsson
  3. Wikipedia entry on Guilds
  4. What Are Self-Organising Teams by Sigi Kaltenecker and Peter Hundermark

Thanks to Gabriel Gosselin, Luke Kysow, Daina Lightfoot, Bill Monkman, Steve Mynett, Lindsay Staniforth, Edd Steel, Kimli Welsh for reading and contributing to drafts of this blog post. Thanks to everyone at Hootsuite that has participated in a guild and especially those who initiated them, lead them and will lead them.

Drawings by Daina Lightfoot

Noel Smiley 200x200

About the Author: Noel focuses on culture, employee engagement, community involvement, and training for Hootsuite’s technical groups. He loves to exchange ideas and would like to hear how you do these things at your organization. Get in touch via LinkedIn.

--

--