Create high performing teams
Implementing tools, workflows, processes, and applications requires collaboration and clear communication across teams and organizations. You can enable teams to operate efficiently with company-wide guiding principles, resources to develop specialized skill sets, efficient communication, and collaboration.
Create guiding principles
HashiCorp's guiding principles define our foundational characteristics and help us make decisions. They also enable us to have a shared understanding that we can use to act collectively and consistently. These shared principles help us align our project and deployment goals. After you have established your own set of guiding principles, use them to inform your decisions at the start of a project, at regular checkpoints, and during retrospectives.
Additionally, many of our individual, team, and company practices are available on our How HashiCorp Works site. These shared practices are concrete examples that also enable us to operate consistently across the organization.
HashiCorp resources:
Continuous learning
Technologies and tools change rapidly. Your team should encourage a learning mindset through regular training opportunities. Investing in your team's knowledge and skills not only improves individual performance but also enhances overall team productivity and the quality of your projects.
When you introduce a new tool to the team, the introduction should include training materials; either instructor-led or on-demand. Additionally, encourage your team to take certification when available, as they are an excellent opportunity to verify understanding. You should refresh both certification and training every two years for existing tools.
You should encourage your team to seek out training opportunities that they think will benefit their skills and careers. Offering a yearly education budget or a license to an online training provider is an excellent way to lower your team's barrier to additional training. You can also provide dedicated training time during work hours to encourage your team to learn these crucial skills. An example is allowing built-in training time to their weekly work hours, such as a daily or weekly allowance.
It is important to know that you can find valuable training material for free on the tool's provider's website. For example, many cloud providers like AWS, Azure, and GCP have free labs, tutorials, and documentation. HashiCorp has a library of free tutorials and documentation for each of our products, accessible to all skill levels.
HashiCorp resources
- HashiCorp tutorials for Terraform, Vault, Consul, and other products.
- HashiCorp certification
External resources:
- AWS Hands-on, Getting Started with AWS, tutorials, and certification.
- Azure training and certifications and Get started with Azure.
- Google Cloud Certification
Communication
Poor communication is a common cause of blockers within a team or organization. Poor communication leads to misalignment of goals, which can delay deployments and projects.
Communication tools serve two general purposes: decision-making and social interaction. Having a standard set of communication tools and protocols can help your team communicate efficiently and effectively. These ever-evolving tools each have strengths and excel when used correctly.
The following table lists communication tools and methods that we use at HashiCorp, and when we use them.
Tool | When to use it |
---|---|
Video chat (Zoom, Slack huddles, Google Meet, Microsoft Teams) | For real-time, high bandwidth discussions. Use for cultivating a discussion rather than transactional asks. |
Instant messenger (Slack, Teams) | For real-time, asynchronous discussions. Useful for when team members are online and to have a quick discussion that does not require depth. |
Documentation repository (Confluence, Google Docs) | For documenting decisions as the source of truth. |
Ticketing (Jira, Asana) | For project management after making plans. |
HashiCorp resources:
Collaboration
Collaboration amongst team members is important for the quality and quantity of work produced. Tools and processes can enable team collaboration.
Git and peer reviews
Version control tools like Git are key for team coding projects. Many teams use online platforms such as GitHub, GitLab, or BitBucket to manage their Git repositories. These services make it easy to share code and get feedback from colleagues. A main feature is the pull request (sometimes called a merge request), which lets developers propose changes to the codebase. When you create a pull request, team members can review your code, leave comments, suggest improvements, and test the changes before they're added to the main project. This process helps maintain code quality, spreads knowledge within the team, and keeps a record of how the code has evolved over time.
Planning as a team
Proper planning is important for developing and delivering your application and new features. If you are planning in a silo, where only management plans development cycles, you can miss important factors that affect the development of your application. When you plan as a team, you get more information to make accurate timelines on projects, along with everyone being on the same page.
It is important to capture the work you plan in the planning session. You can track work by using project management software such as JIRA, Asana, and Trello. These project management tools help ensure the team is on track and allow team members to see what others are working on. Work transparency can increase team collaboration by increasing shared knowledge. If an individual has experience with a tool or process that another team member is lacking, they can lend a hand with that team member's task.
External resources:
- GitHub about pull requests
- Git documentation
- Project management tools: JIRA, Asana, Trello
Writing
At HashiCorp, we're proud of our strong writing culture. Not only do we think that writing things down helps improve our ideas and process, we also believe a culture of writing is a necessity for a fast growing, global, remote-oriented organization.
It is important to have a way to manage non-code plans and documentation. You can use collaboration tools, such as Google Docs and Hermes, and processes, such as Problem Requirements Document (PRD) and Request for Comment (RFC). These tools and processes help promote conversations on solving problems and gather feedback from coworkers or customers.
Manage your documents
Google Docs is a good way to collaborate and share documents. Multiple users can comment, edit, and leave suggestions simultaneously, letting you work asynchronously across your team or stakeholders. In fact, this document started in Google Docs and received feedback from teams within HashiCorp.
As organizations grow, you will need to scale your document management approach. We built Hermes, a document management system designed to help HashiCorp employees author, review, approve, discover, and deprecate documents.
Use PRDs and RFCs
When you and your team are working through a problem and proposing solutions, we recommend a standard collaboration process. You can use a Problem Requirements Document (PRD) and Request for Comment (RFC) to collaborate with your team. A PRD is most helpful for working through an ambiguous challenge with many stakeholders. Generally, a PRD is the first step toward an RFC. The RFC process helps you to articulate and get feedback on the solution you'd like to propose. Your team has valuable experience in areas you may not have, and they can help you surface “unknown unknowns” early on.
At HashiCorp, we use PRDs and RFCs to collaborate on problems and solutions. These documents are an integral part of our shared language and core decision-making processes. Most large projects start with a PRD to define the problem and follow with an RFC to propose a solution.
HashiCorp resources:
- Writing Practices and Culture
- Hermes open source document management system
- HashiCorp's PRD template
- HashiCorp's RFC template
External resources:
Sense of ownership
Employees perform better when they clearly understand the "what" and "why" behind their roles within an organization. Knowing their responsibilities and why they matter to the company's mission helps them see the bigger picture. When employees understand how their tasks contribute to the company's overall success, they feel more valued and are likely to take greater ownership of their work.
The following are some of the ways you can help your employees have a sense of ownership:
- Giving recognition and appreciation can help employees know that leadership is paying attention to their work. You can improve this by giving regular feedback and awards and incentives.
- Involving employees in decision-making will give them a sense of ownership. They will feel more vested in the organization if the team considers their suggestions and opinions.
- Providing opportunities for growth, such as career paths, can help employees plan for their professional career, and give them a reason to stay at a company.
- Giving employees meaningful work that aligns with their skills and interests helps employees understand how their work contributes to the company's success and mission.
Recognition
Everyone appreciates recognition in different ways. It is important to understand how your team members appreciate it. If the method of recognition makes your employees uncomfortable, it could end up doing more harm than good.
We recommend talking with your employees and asking them about their recognition and reward preferences. You can provide them with options to make the process easier. The following are some examples of ways to give your employees recognition:
- Call out during a team meeting is a good way of letting the team know of an individual's success. Some people are okay with face to face recognition from others, but it can bring anxiety for others. Be aware of your teams preferences.
- A public message in the team's message channel is good if someone doesn't mind other people knowing of their success, but doesn't want it to be face to face.
- Some people just want leadership to recognize them, but don't want other team members to know they have been singled out for recognition.
- Team based recognition is best for those who don't want individual recognition, and prefer recognition for everyone on the team.
- Depending on your budget, monetary or gift rewards are a good option to show recognition. Some examples are a cash bonus, gift card, or items from your company store such as mugs or clothing with your company logo.
Next steps
In this guide, you learned best practices to enable your team for success. To learn more about building operational excellence in your team, visit our Implement HashiCorp's Tao and principles guide.