Using a Community Support Model
It’s tough to find an organization that is not leveraging a public cloud platform. With all the SaaS, PaaS, and IaaS providers out there, chances are you’ve used cloud services in some manner. As public cloud utilization continues to ramp up in many industries (e.g., insurance, financial, business), organizations are encountering a new challenge: how to correctly consume these new platforms and technologies. It’s a workforce challenge more so than it is a technical challenge.
This article was originally published in the State Farm Engineering Blog. Link to the original blog can be found here.
It’s a workforce challenge because, at the end of the day, it comes down to technical education and experience. Organizations with a workforce skilled in cloud technologies will have a smoother cloud consumption experience compared to one lacking a workforce with cloud experience. Every organization is competing for talent - we all want that DevSecOps engineer and/or Cloud Architect that can do it all (CI/CD, Programming, Security, Architecting, Data, Test, etc.) - but truth to be told, those individuals are rare to come by, let alone retain. Ideally, placing these individuals among inexperienced teams would be the best approach. They could act as a mentor and guide colleagues through successful application deployments. However, this option is not really scalable for large enterprises that are starting out their cloud journey. So what is the alternative? The Community Support model!
What is the Community Support model?
At State Farm® our public cloud team embraces and continuously invests in the Community Support model. Our belief is that in order to succeed as an organization and at scale, we have to come together as a community and help one another. A big contributor to this mentality is our organization’s shared values of helping those in need.
State Farm is only three years into its public cloud journey and already has observed positive results from this model.
At State Farm, we define the Community Support model as the following:
The promotion of - and reliance on - knowledge sharing for both failures and successes, so that teams may learn from the past in order to succeed at scale in technical endeavors.
There is a lot packed into this definition, but the main takeaway is that individuals and teams need to help each other by leveraging their expertise and sharing their failures and successes. This not only aids in preventing unnecessary duplication and resource waste (time and money), but it also prevents teams downstream that might find themselves in a similar position from having to start over. Other teams can leverage the lessons learned and reapply architectures and reusable code configurations (more on this later).
This is not a novel concept, as history can attest. The Community Support model provides great results time and again. Groups of individuals are a much more potent force when united.
Some of you might be asking: “Where is your Cloud Center of Excellence (CCoE)?” State Farm has a public cloud platform enablement team that fulfills most of the traditional CCoE duties and responsibilities required to support a platform. However, we don’t believe that reliance on one team to solve all of the technical challenges platform consumers might experience is the best approach. Instead, we leverage the platform team for the following (not limited to):
Platform (Cloud Service Providers) ownership and support
- Tackle platform level challenges (technical and non-technical)
- Enable shared services
- Provide technical patterns
- Improve process and reduce friction encountered by product teams
- Mitigate risk
- Foster a technical community
- Provide guidance and technical expertise (limited by team bandwidth)
The last bullet and the text in bold “limited by team bandwidth” is why State Farm is an adopter of the Community Support model. We believe in empowering teams to identify the best technical solution for their needs. By empowering teams to create innovative solutions, and not being prescriptive in terms of architecture, our early adopters have created amazing results. Architectural patterns are provided by the platform enablement team and the community of public cloud platform consumers, and lessons learned from the “boots on the ground” are harnessed and distributed through different mediums such as presentations and wiki entries.
Building the Community
Building and fostering a community is hard work! Some ideas will work, others will fail. The key is to remember that this is a long-term solution and to not dwell on the short-term wins and losses.
As a preface to the discussion below, the above statement highlights the fact that, there is no set path to creating a community. Every organization is different and its culture must be taken into consideration. Allow State Farm to share its journey.
At State Farm, the public cloud community started out in our internal technical forum (similar to Slack). As the public cloud platform was being stood up, we immediately established a strong presence in various internal State Farm communication channels. This was done by creating public cloud specific forums for technical employees to ask questions. In the early days of this channel, the platform team was the main responder to questions. However, as time progressed and people started to gain experience with the platform, others started to chime in and help answer questions from various platform consumers. We took note of those individuals outside of the platform team that were constantly helping others and being positive role models. In addition, we allowed people to have fun in these channels to incorporate a positive spirit where possible. Taking the time to have fun is important. When you see others outside of your team starting to help on a regular basis, that’s a good indication of the community seed growing.
To celebrate our regular participants, we created a “Builder of the Month” award. Every month the platform team nominates an outstanding community member that was helping other platform consumers. The Builder of the Month’s name is displayed on a banner in the internal public cloud forum. In addition, a thank you note is sent to the nominee’s leadership, with a small monetary award presented to the employee as a bonus. The “thank you” note goes a long way, especially when it’s sent to the receipient’s leadership so that they are aware of their employee’s positive contribution, even if they are not active in the technical forums.
In parallel, as the technical forum community was kicking off, another grassroots effort began under the leadership of a motivated analyst - a certification study group. This study group started out with about five individuals meeting every week to study for an AWS certification. Each member would present on a topic they were studying for, such as EC2, IAM, etc. As people caught word of this study group, others started to join, to the point where it’s now a group composed of 1100+ members.
State Farm supported the public cloud enablement team and their public cloud adoption efforts from day one. After witnessing how the public cloud community was supporting each other via a distributed knowledge model, the decision to stand up a new team was made, along with the addition of a technical leader who was passionate in supporting the community. At this point, State Farm had officially acknowledged the Community Support model, which started out as a grassroots effort. Two talented Software Developers were added to this team and assigned the role of Developer Evangelist/Cloud Evangelist. Their primary role is to support the community (technical and non-technical) and address issues encountered by the platform consumers.
Several efforts were kicked off after the official support for the community model:
Those individuals noticed by the platform enablement team for constantly helping others and being positive role models were now officially acknowledged (both leaders and analysts). The formal recognition was announced to a large audience of more than 600+ people during the monthly scheduled public cloud platform showcase event. These individuals are continually engaged for consultation, and are critical to help sustain the community. Their voices also carry weight when raising concerns to the platform enablement team. These community leaders are the key to expanding the Community Support model.
Public Cloud Summits
A State Farm internal mini-conference for public cloud platform consumers within a geographical location, the public cloud summit event lasts for two days and introduces various topics, such as security, data, application, ci/cd, data, community, and infrastructure. The main goal is to share knowledge with one another, but it also allows the platform enablement team to meet with internal platform customers and build relationships. Brain storming sessions and action items to improve the platform, process, and the community, are takeaways from these summits. Only two summits are being targeted a year.
Public Cloud Community Challenges
The Public Cloud Community Challenge is a monthly event hosted by the State Farm public cloud platform enablement team. The goal is to promote community participation and help the community invest in itself. Challenges range from technical to non-technical, with the intention of solving common community experience pain points. Those who earn 1st, 2nd, or 3rd place receive small monetary awards.
Amazing products have resulted from these challenges. To mention a few:
S3 Storage Lifecycle Calculator - A UI tool that helps users understand the cost of S3 and which storage lifecycle class to apply for cost optimization.
Public Cloud CLI - A command line interface tool that removes the burden of configuring common tools used for public cloud work (Terraform, AWS CLI, credentials configuration, etc). This tool reduces the time spent configuring workstations from the upwards of 2hrs down to minutes. The ROI on this solution easily outweighs the small amount invested in the monetary award. It also solved a critical pain point experienced by the platform consumers thus improving the customer experience.
AWS News - A tool that fetches daily updates/releases from AWS and sends notifications to social sites. This allows our platform consumers to stay aware of new functionality.
Training Labs - Labs that platform consumers can execute in training environments to further their technical education with a hands-on approach.
Terraform Module for S3 - A module that simplifies the complexity of deploying S3 with all required tags and lifecycle policies required by platform controls.
Public Cloud Guild
The Public Cloud Guild is for State Farm public cloud platform users that want to dive deeper into technical topics, share development experiences, and provide a certain level of oversight for infrastructure patterns. This is a scheduled monthly event that is open to all employees and that lasts an hour. The time is leveraged to share lessons learned, new architectures, and new tools. Attendance is usually upwards of 250 participants.
This is a git repository where platform consumers can open up issues that they want the platform enablement team to investigate/address. This allows the public cloud platform enablement team to prioritize work while remaining transparent with platform consumers. A lot of great discussion occur under the various issues comment sections, which helps the team steer towards an optimal solution.
As mentioned earlier, some ideas will work better than others. It’s important to conduct review sessions to identify why something didn’t work, and what different choices could had been made. Here are some lessons learned:
Community Challenges - The community challenges have generated some amazing resources, but despite these successes we are still encountering low participation among our platform consumers. The non-technical challenges have the greatest participation. Having a monthly challenge tied with monetary awards is not sufficient to incentivize enough participation. The Community Challenge might be better used as a tactical tool to address technical challenges, as witnessed by the generated solutions. A reevaluation of the community challenges is currently underway.
Certification Study Group - The certification study group is a success story. The volunteer presentation approach works well and the group does a great job celebrating the success of its members when they pass an exam. In addition, the certification study group now has a mentor/mentee program where a mentor meets with its mentees once a week to help them with their certification exam preparation. The certification study group has received positive praises from State Farm executive leadership.
Changing Culture - If you want to see change you have to start with yourself, eventually others will follow, and before you know it, you have a community. Knowledge sharing practices are still not at the point to where they need to be. The goal is for this to become muscle memory amongst the workforce. As a platform enablement team, it’s our responsibility to ensure that there are channels available for knowledge sharing. Once those channels are present, the challenge shifts to identifying presenters and content. Monitoring the technical forums aids greatly in identifying presenters for the Public Cloud Guild.
We are now entering the third year of the Community Support model. The following efforts are currently underway:
Marketing - Increased focus on raising awareness about the community and the resources generated by it. The following marketing materials were created: community posters outlining resources available, certification study group stickers, community champions stickers, and stickers for those delivering internal public cloud related presentations.
AWS DeepRacer Event - This community event challenges teams to compete against one another using AWS DeepRacer. This event was postponed to a later date due to COVID-19.
Cloud My App - An informal interview style of walking through an architecture that is in production. This is inspired by Amazon’s This is My Architecture.
Public Cloud Resource Website - A digital experience that will act as the starting point for onboarding, but also as a reference point for platform consumers, targeting the following topics: education, patterns, community resources, process guidance and more. The goal is to address the challenges encountered with hundreds of internal wiki pages.
Analytics/Metrics - Efforts are currently underway to better understand the patterns of participation among our community members. This includes gathering metrics for technical forums (visits, comments, views, and replies), page views for community resources, and download counts for community tools. The goal is to generate a mathematical model for calculating ROI pertaining to community efforts.
External Knowledge Sharing - In order to help other organizations that might encounter the same challenges we have tackled in the past, we are also promoting external knowledge sharing. It’s our way of paying it forward and contributing back to the technology community. Recent examples of external knowledge sharing from State Farm include:
- TechWell Conference
- THINK Conference
- DevOps Enterprise Summit
- Cloud Foundry Summit
- Gitlab Commit Conference
- Financial Services Exchange
The idea of creating a community can be daunting, especially if you look at the mountain of work ahead of you. Our advice is to start small, ignore the mountain, and focus on taking things one step at a time. You, the reader, have the power to start a community. All that is required is for someone to start. We mentioned earlier that if you want to see change, start with yourself. Once you have a follower, the rest will take care of itself (think rolling snowball effect). Try a few things and see what works.