Breaking out of silos
Authors: Stephanie Pirman and Kellie Spears
What we’ve learned by building products on multiple platforms in the same squad
A squad is comprised of multiple roles at Procore including software engineers, quality assurance engineers, UX engineers and product managers. We (Stephanie and Kellie) work on the Field Productivity Squad at Procore and sat down together to write this post with the intention of sharing what we’ve learned by developing a key feature set on multiple platforms within the same squad. Our squad also includes experts who code on multiple platforms including Web, iOS and Android.
We didn’t always work on multiple platforms within squads. This was a change that we made in the past year in order to improve our customer experience by working on the same problem at the same time across different platforms. This has removed delays in our process and has helped us to build a more inclusive and collaborative team. It’s also reinvented how we go about our API development, the key component that we leverage for sharing between our platforms.
Here are 5 of our key learnings of multiple platform development:
1. Sitting together across platforms, with open communication builds more collaborative APIs.
One of our values at Procore is #Openness. You can see the openness in action through how we have two-way communication to shape our API. Our multi-platform squad sits together in the same open area and our communication mirrors this openness. Going even further, our API development is based on open, two-way communication between our API developers and our platform developers. This is very significant for us because unlike in the past, it’s not a one-way flow between IOS, Android, backend and API. As an IOS developer I get to shape the API to meet the needs of my platform. It’s very proactive. This is an example of Conway’s Law in action—the office space and two-way communication are shaping the code. And it feels great, because we all have more ownership (another Procore value) of the API code and we proactively know that the API is going to meet all of our platforms’ needs.
2. Sitting together across platforms also increases opportunities for cross-platform learning.
We have an openness on our teams for people to work on different languages. We teach each other—we have broken down through silos.
3. Short retrospectives and recognition at the beginning of our planning meetings have gone a long way.
The team feels appreciated by our Product Manager and we’ve seen this effectively increase productivity in the team.
4. We are building out a future, which is exciting. It helps us feel more engaged and take more ownership—creating a strong sense of purpose.
Every quarter our team talks about OKRs—we have a direct tie in. We know that this feature is connected to the bottom line of the company. We discuss and openly have a conversation of how we are going to contribute to the company OKRs. And the directive is not dictated down to us, but an open collaborative discussion. We have monthly all hands where everyone weighs in. Employees' ideas and thoughts are shared within the team and when you feel your voice is heard you can really take greater ownership.
5. We are a part of discovery and we understand the importance of a connection to the customer.
The development team (which includes Product, UX and developers) sit on calls all the time and do user testing with customers. We are able to test out new ideas we have and get input from customers on how they expect a new feature to work. Since we are part of the discovery process, we are aware of the “why” of what we are building and it really anchors us to a greater sense of purpose. After we deploy the feature, we know it’s going to make a difference because we did discovery as a team.
One of the most important things we've learned in this process is, just because you are on the same team, does not mean you are on the same “team”. Addressing the same problem at the same time across different platforms has given us a united goal, a goal that we all want and strive to achieve—which is what we believe defines a team. Being on the same “team” has been rewarding and has become the driving force behind our continued success.