At NewsCred, our software teams are organized into teams composed of complete engineers, a product manager and a product designer. This structure has helped our team focus on just one part of the platform, obsess with customer issues and ship products autonomously to solve these problems.
However, as with any team structure, there were some gaps. In particular, the best practices of different teams have not always been effective and many cross-cutting concerns have not been addressed as a priority. To solve these problems, we decided to complement our teams by adding guilds of engineers.
How we use the guilds of engineers
We define a guild of engineers as a group of engineers with a common technical purpose and the purpose of sharing best practices with the rest of the team. The goal of a guild is to implement positive changes in one area of our platform. Guilds can also be considered as the link between squads, which allows engineers to:
Collaborate and communicate outside their team.
Discuss, evangelize and learn specific technical topics.
Share knowledge and best practices with the entire team of engineers.
Help NewsCred engineers develop reusable templates for cross-cutting issues.
Squads focus on products and guilds on specific technical topics covering multiple squads.
Among the guilds that we have put in place are the Design Library Guild, which is responsible for building reusable reactive components, the Performance Guild, which standardizes performance measurement on our platform, and the Testing Guild, which is responsible for to improve our tests.
Ingredients of a guild
Setting up guilds is one thing, but to make them really effective, you need to follow some good practices. Here are some of the items we took into account when creating guilds to increase their chances of success.
Defining a mission is the most important aspect and a basic requirement when creating a guild. Missions should be used to ensure:
The guild exists to meet the needs of the organization, and the focus is on learning emerging technologies, as well as (and perhaps more importantly) how to apply them to the technology stack.
The guild helps to solve a problem or a set of problems with which the team is struggling.
The work of the guild alleviates the concerns of many.
Since the overall guild mission is ongoing, there should be a list of smaller goals up to the overall goal of the guild. Here are some tips to keep in mind:
Goals should be set at a periodic pace (for example, our guilds set goals quarterly).
Goals can range from generating a pattern that solves a problem to applying an existing pattern to a use case.
Tactical goals can be set to make concrete changes to your platform (for example, upgrading a version of your app, improving the performance of a particular game, etc.).
All objectives must have a well-defined, measurable result (for example, improve performance by 5%).
Each guild must have a coordinator. The coordinator should ensure that:
The objectives of the guild are fixed.
The guild meets at a regular pace.
All members of the guild are held responsible.
The work of a guild is saved so that it can be shared with the rest of the team.
Any modification or update is communicated to all teams.
Members of the guild
Guild membership is not a long-term commitment, but a minimum period of time should be required for team members not to change tasks too quickly. Mapping members based on guild goals is a recommended practice to ensure that the guild can achieve its goals without worrying about fluctuations in numbers. If a guild has quarterly goals, members must then join the guild for at least a quarter of the time.
Some additional practices we follow at NewsCred include:
Everyone is encouraged to be part of at least one guild.
Since we have teams in New York and Dhaka, we are asking all guilds to have members from multiple geographic areas.
We emphasize and encourage members to share their knowledge through their guild.
How do you communicate and spread knowledge within guilds? Here are some examples of processes we use at NewsCred. You will notice that we rely on a combination of technologies and face-to-face meetings to ensure that all lines of communication are open. (Note: Some tools are specific to our technology stack, so please do not hesitate to use the tools available for your team.)
Public Slack channel : This allows others to ask questions to the guild, which is important because one of the main goals of the guild is to share knowledge.
Guild Meetings : These are organized by the guild coordinator at a predefined pace to:
Discuss topics related to a guild's interest and the latest trends and trends.
Provide updates on the work of a guild.
Plan and assign the work of a guild.
JIRA Board: This brings transparency to the guild's work and holds members accountable.
Page Confluence: This is an internal public page that documents the missions and goals of guilds and helps share best practices in engineering. team.
What did we learn from our guilds?
After six months of operation in guilds, here are some of the main lessons we have had since our first deployment:
Prepare for the failure of some guilds. As long as the failure rate is low, you should accept it as part of adding guilds to your team structure.
Not all guilds will have the same success. However, if you plan to launch strategic initiatives in guilds, make sure that they are on the right track to succeed.
The team must reserve time for all their work. (We devote a full day to each sprint for the team to focus on their guild work.)
Create early a mechanism of accountability between guilds. (We did not have this set in our early days, but since then we have put in place ways to promote accountability, for example, we have set up a "guild festival" where all the guilds present their work. neighborhood to the entire team.)
Be open to comments and be ready to change the process according to the culture and operations of your team.
Make sure that there is someone who manages the guilds. This person must be able to:
Sell the idea of guilds to the team and to the organization in general.
Master the guild process and guidelines.
Hold the guilds responsible and make sure they are not underperforming.
If your team's structure is not designed to effectively solve cross-cutting issues and if you have noticed that some things are not working, we strongly recommend giving guilds a chance. In addition, it will help your engineers to grow and give them additional ways to develop their expertise and pursue their technical interests. As with everything, you need to find a way to make it work for your team and for the entire organization.