Implement HashiCorp's Tao and Principles
The Core of HashiCorp
HashiCorp's Tao and Principles underlie and guide our vision, communication, and workflows. We follow these tenants in our internal and external interactions, our products, and our systems. Our Tao, (in Japanese, “way”) and Principles help us develop our products and vision, and grow a workforce that prioritizes open communication, kindness, and integrity. This post provides ways you can implement HashiCorp's Tao and Principles at your own company to build better workflows, products, and relationships.
For infrastructure and technical products, we will highlight how to incorporate:
- Simple, modular, and composable systems
- Versioning through codification
- Product immutability
- Workflows, not technologies
For building projects and interactions with one another, we will highlight how to incorporate:
- Communication in project vision, execution, and reflection
- Culture that prioritizes kindness, integrity, and humility
HashiCorp Tao: Simple, Modular, Composable
When building and implementing HashiCorp products, we infuse our Tao in product design and engineering. Our Tao encourages simple, modular, and composable systems. Rather than expanding one tool to adapt to new use cases, we believe that smaller parts create a whole. When faced with a large project, we break it down into digestible parts.
When creating new features or working on new projects, try to understand the wider vision, and break up the project into digestible bits. Questions to consider include:
- What is required to get to the finish line?
- What documentation should you write to support the new feature?
- What stakeholders should get involved?
- Who within your team should work on certain parts of the project?
These questions will help you figure out the blocks that form the complete solution.
HashiCorp Tao: Versioning through Codification
Simple, modular, composable approaches enable another aspect of HashiCorp's Tao, codification. To codify a process, it has to follow defined and predictable rules, and the rules that any given component follows get easier to define when you break each component out into its own modular piece. Write your processes, codify them, and version them. This lets you store and share data, and it creates a more inclusive environment, because new employees can learn about existing processes. Codifying information lets you reuse it when you create new processes for the future. To share knowledge and information at your company, we recommend embracing infrastructure as code and versioning. Store a versioned change history so you can learn from previous decisions.
HashiCorp Tao: Immutability
When versioning codified processes, immutability is crucial. Once we create infrastructure, we try not to modify it without incrementing the version. When we need a new version or upgrade, rather than changing the existing infrastructure, we create a new version. Version control systems keep a history of previous versions and lets you create new versions with improvements in mind. To learn more about immutability, watch a video of HashiCorp's co-founder and CTO Armon Dadgar explaining the difference between mutability and immutability, and the benefits that immutability provides, in What is Mutable vs. Immutable Infrastructure.
HashiCorp Tao: Workflows, not Technologies
Our Tao advocates that we prioritize workflows before technologies. As we innovate, our technologies may change, but our workflows provide a foundation across systems. As a result of focusing on workflows before technologies, even if we develop new technology, our way of doing things is not radically modified. Instead, it is updated and encompasses new features and products. As co-founders Armon Dadgar and Mitchell Hashimoto explain in What is the Tao of HashiCorp?, the idea is “that we don't build tools that work just really well with one specific technology, we're trying to build really great workflows to solve a problem… We're trying to build that workflow and be pretty agnostic to what technologies are underneath.”
HashiCorp Tao: Pragmatism
Our Tao highlights that while our ideals include immutability, versioning through codification, workflows rather than technologies, and simple, modular, composable approaches, we should not blindly follow them. Pragmatism, humility, and the concept that ideals may not be applicable to every situation, make room for new ideas and improvements. An example of this is as we build our HCP platform, we might end up sacrificing something about the internal workflows to run our products on HCP if it means that all the products can share an underlying technological backbone. Our Tao is our core, but pragmatism and humility allow us to stay open to new ideas, and accept if there are other views to keep in mind.
HashiCorp Principles: Vision, Communication, Execution, and Reflection
Before starting any new project or improvement, openly communicate on vision and execution, and plan for reflection, not just at the project end, but throughout the process.
At HashiCorp, vision is intertwined deeply with communication. It is crucial to hear all team members' and collaborators' voices and consider their ideas. We must communicate accessibly: while we use real-time meetings, we also embrace a written culture.
A written culture lets team members collaborate, share ideas, give feedback, and refine information across time zones. At HashiCorp, Problem Requirement Documents (PRDs) help us outline proposals, goals, and solutions, and our Request for Comment (RFCs) template provides more in-depth ways to process feedback. Anyone can create, read, and comment on documents asynchronously. By embracing a written culture and multimodal communication at your company, you include more team members. Regardless of if your teammate is in Japan, Mexico, the United States, or somewhere else, anyone can be involved in important discussions through the documentation process. A written culture provides information that is accessible at any moment. New hires can get up to speed, other teams can collaborate and get a perspective on work being done elsewhere in the company, and individuals can reference information throughout time.
After this we define project vision. We can build good vision by:
- Using codified processes such as PRDs and RFCs to outline a project's background and objectives
- Create explicit goals and acceptance criteria for project success
- Consider hurdles and drawbacks and how to tackle them if they appear
- Openly communicate with all team members when forming ideas
- Considering and incorporating suggestions and feedback from one another
Once we define vision and communicate with all team members, it is time for execution. We recommend action over inaction. Even if we feel uncertain about an idea, it's better to move forward and execute than to stand still. With action comes improvement, and this process fosters reflection, where we analyze ways of doing. Is there a better way to go about a situation? What could have gone better? What should we replicate? We must encourage reflection, and celebrate growth mindsets.
HashiCorp Principles: Kindness, Integrity, and Humility
We believe that underlying all communication, vision, execution, and reflection should come kindness, integrity, and humility. As Maya Angelou highlights, “I've learned that people will forget what you said, people will forget what you did, but people will never forget how you made them feel.” Within teams, be kind by:
- Appreciating work team members contribute to their projects
- Celebrating any wins
- Embracing a growth mindset for improvements
We show kindness, too, when emphasizing that all voices are important to hear out, regardless of if someone is an intern, junior, senior, or manager.
At HashiCorp, during meetings, we incorporate all voices by 'going around the room' when possible. This prevents meetings from being dominated by few voices, and allows team members to keep one another updated in projects.
Having integrity on a personal and corporate level fosters trust. When you commit to a task, you should do it, and when you encounter hurdles, tell collaborators that you are blocked. Humility is a necessary aspect of integrity. With humility, we acknowledge that learning is lifelong, and perfection is unachievable. Kindness leads to a culture of humility. We infuse kindness to build a culture of humility by:
- Being compassionate in reaction and response
- Advocating for open communication when hurdles are present between team members
- Responding in ways that can be helpful when team members face hurdles
- Having humility within ourselves to understand we all have room to learn.
HashiCorp's Tao and Principles form the foundation for how we work in our teams and with customers, partners, and stakeholders. The Tao runs through our products and workflows. Concepts such as versioning through codification, a simple, modular, and composable approach, immutability, and workflows rather than technologies let us build products and processes that we improve by learning from our past. We recommend pragmatism, which lets us understand reality and the need for re-assessments and open-mindedness.
Underlying all interactions, our communication is connected to kindness, integrity, and humility. These principles flow into how work can be done, aiding and being core features to vision, execution, and reflection of products.
HashiCorp's Tao and Principles provide information that can help your company develop an environment where projects, ideas, and people thrive.
If you are interested in learning more about HashiCorp's Tao and Principles, you can check out the following resources: