Bramble Values
Bramble’s core values are
About our values
We take inspiration from other companies, and we always go for the boring solutions. Just like the rest of our work, we continually adjust our values and strive to make them better. Bramble values are a living document. In many instances, they have been documented, refined, and revised based on lessons learned (and scars earned) in the course of doing business.
We used to have more values, but it was difficult to remember them all, so we condensed them and gave sub-values and created an acronym.
Everyone is welcome to suggest improvements. Please assign MRs to update these values to our CEO Dan and @mention him in Slack.
Sub-values as substantiators
The “sub” in sub-value is not in reference to “subordinate,” but rather, “substantiate the core values.”
Sub-values clarify what a given core value means and looks like at Bramble. Understanding this distinction is critical to thriving at Bramble, particularly for newer team members who may be familiar with a prior organization’s interpretation of iteration or collaboration (as examples).
Collaboration
Helping others is a priority, even when it is not immediately related to the goals that you are trying to achieve. Similarly, you can rely on others for help and advice—in fact, you’re expected to do so. Anyone can chime in on any subject, including people who don’t work at Bramble. The person who’s responsible for the work decides how to do it, but they should always take each suggestion seriously and try to respond and explain why it may or may not have been implemented.
Share
There are aspects of Bramble culture, such as intentional transparency, that are unintuitive to outsiders and new team members. Be willing to invest in people and engage in open dialogue. For example, consider making private issues public wherever possible so that we can all learn from the experience. Don’t be afraid of judgement or scrutiny when sharing publicly, we all understand it’s impossible to know everything.
Everyone can remind anyone in the company about our values. If there is a disagreement about the interpretations, the discussion can be escalated to more people within the company without repercussions.
Share problems you run into, ask for help, be forthcoming with information and speak up.
Negative feedback is 1-1
Give negative feedback in the smallest setting possible. One-on-one video calls are preferred. If you are unhappy with anything (your duties, your colleague, your boss, your salary, your location, your computer), please let your boss, or the CEO, know as soon as you realize it. We want to solve problems while they are small.
Negative feedback is distinct from negativity and disagreement. If there is no direct feedback involved, strive to discuss disagreement in a public channel, respectfully and transparently.
Say thanks
Recognize the people that helped you publicly, for example in our #thanks chat channel.
Give feedback effectively
Giving feedback is challenging, but it’s important to deliver it effectively. When providing feedback, always make it about the work itself; focus on the business impact and not the person. Make sure to provide at least one clear and recent example. If a person is going through a hard time in their personal life, then take that into account. An example of giving positive feedback is our thanks chat channel. For managers, it’s important to realize that team members react to a negative incident with their managers six times more strongly than they do to a positive one. Keeping that in mind, if an error is so inconsequential that the value gained from providing criticism is low, it might make sense to keep that feedback to yourself. In the situations where negative feedback must be given, focus on the purpose for that feedback: to improve the team member’s performance going forward. Give recognition generously, in the open, and often to generate more engagement from your team.
Get to know each other
We use a lot of text-based communication, and if you know the person behind the text, it will be easier to prevent conflicts. So we encourage people to get to know each other on a personal level through our Take A Break Call, virtual coffee chats, and during Bramble Contribute.
Don’t pull rank
If you have to remind someone of the position you have in the company, you’re doing something wrong. People already know our decision-making process. Explain why you’re making the decision, and respect everyone irrespective of their function. This includes using the rank of another person to sell an idea or decision.
Assume positive intent
We naturally have a double standard when it comes to the actions of others. We blame circumstances for our own mistakes, but individuals for theirs. This double standard is called the Fundamental Attribution Error. In order to mitigate this bias, you should always assume positive intent in your interactions with others, respecting their expertise and giving them grace in the face of what you might perceive as mistakes. When disagreeing, folks sometimes argue against the weakest points of argument, or sometimes argue against a “straw man”. Assume the points are presented in good faith, and instead try to argue the “steel man” (or the “strong man”):
That’s when you articulate the absolute strongest version of your opponent’s position—potentially even stronger than the one they presented. A good steel-man argument is one where the other person feels you’ve represented their argument well, even if they still disagree with your assumptions or conclusion.
Say sorry
If you made a mistake, apologize as soon as possible. Saying sorry is not a sign of weakness but one of strength. The people that do the most work will likely make the most mistakes. Additionally, when we share our mistakes and bring attention to them, others can learn from us, and the same mistake is less likely to be repeated by someone else. Mistakes can include when you have not been kind to someone. In order to reinforce our values, it is important, and takes more courage, to apologize publicly when you have been unkind publicly (e.g., when you have said something unkind or unprofessional to an individual or group in a Slack channel).
Do it yourself
Our collaboration value is about helping each other when we have questions, need critique, or need help. No need to brainstorm, wait for consensus, or do with two what you can do yourself.
Blameless problem solving
Investigate mistakes in a way that focuses on the situational aspects of a failure’s mechanism and the decision-making process that led to the failure, rather than cast blame on a person or team. We hold blameless root cause analyses and retrospectives for stakeholders to speak up without fear of punishment or retribution.
It’s impossible to know everything
We know we must rely on others for the expertise they have that we don’t. It’s OK to admit you don’t know something and to ask for help, even if doing so makes you feel vulnerable. It is never too late to ask a question, and by doing so, you can get the information you need to produce results and to strengthen your own skills as well as Bramble as a whole. After your question is answered, please document the answer so that it can be shared.
Don’t display surprise when people say they don’t know something, as it is important that everyone feels comfortable saying “I don’t know” and “I don’t understand.” (As inspired by Recurse.)
Collaboration is not consensus
When collaborating, it is always important to stay above radar and work transparently, but collaboration is not consensus. You don’t need to ask people for their input, and they shouldn’t ask you “Why didn’t you ask me?” You don’t have to wait for people to provide input, if you did ask them. We believe in permissionless innovation—you don’t need to involve people, but everyone can contribute. This is core to how we iterate, since we want smaller teams moving quickly rather than large teams achieving consensus slowly.
Collaboration is not playing politics
We don’t want people to play politics at Bramble. One way to spot when this is happening is when people discussing a proposal focus overly on whose proposal it is. This is a manifestation of the Belief Bias, where we judge an argument’s strength not by how strongly it supports the conclusion but by how strongly we support the conclusion. Proposals should be weighed on their merits and not on who proposed them. The other thing to observe is whether people are being promoted based on others liking them or having a lot of alliances. We want people to be promoted based on their results. We do value collaboration, but that’s different than being promoted just because people like you.
Results
We do what we promised to each other, customers, users, and investors.
Measure results not hours
We care about what you achieve: the code you shipped, the user you made happy, and the team member you helped. Someone who took the afternoon off shouldn’t feel like they did something wrong. You don’t have to defend how you spend your day. We trust team members to do the right thing instead of having rigid rules. Do not incite competition by proclaiming how many hours you worked yesterday. If you are working too many hours, talk to your manager to discuss solutions.
Give agency
We give people agency to focus on what they think is most beneficial. If a meeting doesn’t seem interesting and someone’s active participation is not critical to the outcome of the meeting, they can always opt to not attend, or during a video call they can work on other things if they want. Staying in the call may still make sense even if you are working on other tasks, so other peers can ping you and get fast answers when needed. This is particularly useful in multi-purpose meetings where you may be involved for just a few minutes.
Growth mindset
You don’t always get results and this will lead to criticism from yourself and/or others. We believe our talents can be developed through hard work, targeted training, learning from others, on-the-job experience, and receiving input from others. It is in our DNA as a company and individuals to look for opportunity, stay humble, and never settle. We try to hire people based on their trajectory, not their pedigree. We also strive to foster a culture of curiosity and continuous learning where team members are provided and proactively seek out opportunities to grow themselves and their careers.
Global optimization
This name comes from the quick guide to Stripe’s culture. Our definition of global optimization is that you do what is best for the organization as a whole. Don’t optimize for the goals of your team when it negatively impacts the goals of other teams, our users, and/or the company. Those goals are also your problem and your job. Keep your team as lean as possible, and help other teams achieve their goals. In the context of collaboration, this means that if anyone is blocked by you on a question, your approval, or a merge request review, your top priority is always to unblock them, either directly or through helping them find someone else who can, even if this takes time away from your own or your team’s priorities.
Tenacity
We refer to this as “persistence of purpose”. As talked about in The Influence Blog, tenacity is the ability to display commitment to what you believe in. You keep picking yourself up, dusting yourself off, and quickly get going again having learned a little more.
Ownership
We expect team members to complete tasks that they are assigned. Having a task means you are responsible for anticipating and solving problems. As an owner, you are responsible for overcoming challenges, not suppliers or other team members. Take initiative and proactively inform stakeholders when there is something you might not be able to solve.
Sense of urgency
At an exponentially-scaling startup, time gained or lost has compounding effects. Try to get the results as fast as possible, but without compromising our other values and ways we communicate, so the compounding of results can begin and we can focus on the next improvement.
Ambitious
While we iterate with small changes, we strive for large, ambitious results.
Perseverance
Working at Bramble will expose you to situations of various levels of difficulty and complexity. This requires focus and the ability to defer gratification. We value the ability to maintain focus and motivation when work is tough and asking for help when needed.
Bias for Action
It’s important that we keep our focus on action, and don’t fall into the trap of analysis paralysis or sticking to a slow, quiet path without risk. Decisions should be thoughtful, but delivering fast results requires the fearless acceptance of occasionally making mistakes; our bias for action also allows us to course correct quickly. Everyone will make mistakes, but it’s the relative number of mistakes against all decisions made (i.e. percentage of mistakes), and the swift correction or resolution of that mistake, which is important. A key to success with transparency is to always combine an observation with questions to ensure understanding and suggestions for solutions / improvement to the group that can take action. We don’t take the easy path of general complaints without including and supporting the groups that can affect change. Success with transparency almost always requires effective collaboration.
Accepting Uncertainty
We should strive to accept that there are things that we don’t know about the work we’re trying to do, and that the best way to drive out that uncertainty is not by layering analysis and conjecture over it, but rather accepting it and moving forward, driving it out as we go along. Wrong solutions can be fixed, but non-existent ones aren’t adjustable at all. The Clever PM Blog
Customer results
Our focus is to improve the results that customers achieve, which requires being aware of the Concur effect, see the Hacker News discussion for a specific UX example. Customer results are more important than:
- What we plan to make.
- Large customers. This leads to the innovator’s dilemma, so we should also focus on small customers and future customers (users).
- What customers ask for. This means we don’t use the phrase “customer focus”, because it tempts us to prioritize what the customer says they want over what we discover they actually need through our product development process. Often, it’s easier for a customer to think in terms of a specific solution than to think about the core problem that needs to be solved. But a solution that works well for one customer isn’t always relevant to other customers, and it may not align with our overall product strategy. When a customer asks for something specific, we should strive to understand why, work to understand the broader impact, and then create a solution that scales.
- Our existing scope.
- Our assumptions. Every company works differently, so we can’t assume that what works well for us will support our customers’ needs. When we have an idea, we must directly validate our assumptions with customers to ensure we create scalable, highly relevant solutions.
- What we control. We should take responsibility for what the customer experiences, even when it isn’t entirely in our control. We aim to treat every customer-managed instance downtime as a $1M a day problem.
⏱️ Efficiency
We care about working on the right things, not doing more than needed, and not duplicating work. This enables us to achieve more progress, which makes our work more fulfilling.
Write things down
We document everything: in the handbook, in meeting notes, in issues. We do that because “the faintest pencil is better than the sharpest memory.” It is far more efficient to read a document at your convenience than to have to ask and explain. Having something in version control also lets everyone contribute suggestions to improve it.
Boring solutions
Use the simplest and most boring solution for a problem, and remember that “boring” should not be conflated with “bad” or “technical debt.” The speed of innovation for our organization and product is constrained by the total complexity we have added so far, so every little reduction in complexity helps. Don’t pick an interesting technology just to make your work more fun; using established, popular tech will ensure a more stable and more familiar experience for you and other contributors.
Make a conscious effort to recognize the constraints of others within the team. For example, sales is hard because you are dependent on another organization, and development is hard because you have to preserve the ability to quickly improve the product in the future.
Self-service and self-learning
Team members should first search for their own answers and, if an answer is not readily found or the answer is not clear, ask in public as we all should have a low level of shame. Write down any new information discovered and pay it forward so that those coming after will have better efficiency built on top of practicing collaboration, inclusion, and documenting the results.
Efficiency for the right group
Optimize solutions globally for the broader Brmbl.iomunity. Making a process efficient for one person or a small group may not be the efficient outcome for the whole Brmbl.iomunity. As an example, it may be best to discard a renewal process that requires thousands of customers to each spend two hours in favor of one that only takes sixty seconds, even when it may make a monthly report less efficient internally! In a decision, ask yourself “For whom does this need to be most efficient?” Quite often, the answer may be your users, contributors, customers, or team members that are dependent upon your decision.
It is easy to prioritize consistency over efficiency because consistency is often more efficient initially. We should slow down when optimizing for consistency. Taking a company-wide lens when evaluating changes will help ensure that new processes will improve efficiency for Bramble as a whole.
Be respectful of others' time
Consider the time investment you are asking others to make with meetings and a permission process. Try to avoid meetings, and if one is necessary, try to make attendance optional for as many people as possible. Any meeting should have an agenda linked from the invite, and you should document the outcome. Instead of having people ask permission, trust their judgment and offer a consultation process if they have questions.
Spend company money like it’s your own
Every dollar we spend will have to be earned back; be as frugal with company money as you are with your own.
Frugality
Amazon states it best with: “Accomplish more with less. Constraints breed resourcefulness, self-sufficiency, and invention. There are no extra points for growing headcount, budget size, or fixed expense.”
ConvDev
We work according to the principles of conversational development.
Short verbal answers
Give short answers to verbal questions so the other party has the opportunity to ask more or move on.
Keep broadcasts short
Keep one-to-many written communication short, as mentioned in this HBR study: “A majority say that what they read is frequently ineffective because it’s too long, poorly organized, unclear, filled with jargon, and imprecise.”
Managers of one
We want each team member to be a manager of one who doesn’t need daily check-ins to achieve their goals.
Freedom and responsibility over rigidity
When possible, we give people the responsibility to make a decision and hold them accountable for that, instead of imposing rules and approval processes. You should have clear objectives and the freedom to work on them as you see fit. Freedom and responsibility are more efficient than rigidly following a process, or creating interdependencies, because they enable faster decision velocity and higher rates of iteration.
Accept mistakes
Not every problem should lead to a new process to prevent them. Additional processes make all actions more inefficient; a mistake only affects one.
Move fast by shipping the minimal viable change
We value constant improvement by iterating quickly, month after month. If a task is not the smallest thing possible, cut the scope.
Embrace Change
Adoption of features, user requirements, and the competitive landscape change frequently and rapidly. The most successful companies adapt their roadmap and their organization quickly to keep pace. One of the things that makes the challenging is the impact on our team. People may need to change teams, subject matter, or even who manages them. This can rightly feel disruptive. If we coach ourselves to embrace the positive aspects of change, such as increased opportunity and new things to learn, we can move faster as a company and increase our odds of success. It is important to hold management accountable for being deliberate.
Iteration
We do the smallest thing possible and get it out as quickly as possible. If you make suggestions that can be excluded from the first iteration, turn them into a separate issue that you link. Don’t write a large plan; only write the first step. Trust that you’ll know better how to proceed after something is released. You’re doing it right if you’re slightly embarrassed by the minimal feature set shipped in the first iteration. This value is the one people most underestimate when they join Bramble. The impact both on your work process and on how much you achieve is greater than anticipated. In the beginning, it hurts to make decisions fast and to see that things are changed with less consultation. But frequently, the simplest version turns out to be the best one.
People that join Bramble all say they already practice this iteration. But this is the value that they have the hardest time adopting. People are trained that if you don’t deliver a perfect or polished thing, you get dinged for it. If you do just one piece of something, you have to come back to it. Doing the whole thing seems more efficient, even though it isn’t. If the complete picture is not clear, your work might not be perceived as you want it to be perceived. It seems better to make a comprehensive product. They see other people in the Bramble organization being really effective with iteration but don’t know how to make the transition, and it’s hard to shake the fear that constant iteration can lead to shipping lower-quality work or a worse product.
The way to resolve this is to write down only what you can do with the time you have for this project right now. That might be 5 minutes or 2 hours. Think of what you can complete in that time that would improve the current situation. Iteration can be uncomfortable, even painful. If you’re doing iteration correctly, it should be. Reverting work back to a previous state is positive, not negative. We’re quickly getting feedback and learning from it. Making a small change prevented a bigger revert and made it easier to revert.
However, if we take smaller steps and ship smaller, simpler features, we get feedback sooner. Instead of spending time working on the wrong feature or going in the wrong direction, we can ship the smallest product, receive fast feedback, and course correct. People might ask why something was not perfect. In that case, mention that it was an iteration, you spent only “x” amount of time on it, and that the next iteration will contain “y” and be ready on “z”.
Don’t wait
Don’t wait. When you have something of value like a potential blog post or a small fix, implement it straight away. Right now, everything is fresh in your head and you have the motivation. Inspiration is perishable. Don’t wait until you have a better version. Don’t wait until you record a better video. Don’t wait for an event (like Contribute). Inventory that isn’t released is a liability since it has to be managed, becomes outdated, and you miss out on the feedback you would have received had you implemented it straight away.
Set a due date
We always try to set a due date. If needed, we cut scope. If we have something planned for a specific date, we make that date. If we planned an announcement for a certain date, we might announce less or indicate what is still uncertain. But we set a due date because having something out there builds trust and gives us better feedback.
Cleanup over sign-off
Waiting for approval can slow things down. We can prevent this with automation (e.g. tests of database migration performance) or clean-up after the fact (refactor if something was added that isn’t coherent), but we try to ensure that people don’t need to wait for signoff.
Reduce cycle time
Short iterations reduce our cycle time.
Minimal Viable Change (MVC)
We encourage MVCs to be as small as possible. Always look to make the quickest change possible to improve the user’s outcome. If you validate that the change adds more value than what is there now, then do it. No need to wait for something more robust. More information is in the product handbook, but this applies to everything we do in all functions. Specifically for product MVCs, there is additional responsibility to validate with customers that we’re adding useful functionality without obvious bugs or usability issues.
Make a proposal
If you need to decide something as a team, make a concrete proposal instead of calling a meeting to get everyone’s input. Having a proposal will be a much more effective use of everyone’s time. Every meeting should be a review of a proposal. We should be brainwriting on our own instead of brainstorming out loud. State the underlying problem so that people have enough context to propose reasonable alternatives. The people that receive the proposal should not feel left out and the person making it should not feel bad if a completely different proposal is implemented. Don’t let your desire to be involved early or to see your solution implemented stand in the way of getting to the best outcome. If you don’t have a proposal, don’t let that stop you from highlighting a problem, but please state that you couldn’t think of a good solution and list any solutions you considered.
Everything is in draft
At Bramble, we rarely mark any content or proposals as drafts. Everything is always in draft and subject to change.
Under construction
As we get more users, they will ask for stability, especially in our UX. We should always optimize for the long term. This means that users will be inconvenienced in the short term, but current and future users will enjoy a better product in the end.
Low level of shame
When we talked to Nat Friedman, he said: “A low level of shame is intrinsic to your culture.” This captures the pain we feel by shipping something that isn’t where we want it to be yet.
Focus on Improvement
We believe great companies sound negative because they focus on what they can improve, not on what is working. Our first question in every conversation with someone outside the company should be: What do you think we can improve? This doesn’t mean we don’t recognize our successes; for example, see our Say Thanks value. We are positive about the future of the company; we are present-day pessimists and long-term optimists.
Do things that don’t scale
First, optimize for speed and results; when it is a success, figure out how to scale it. Great examples are in this article by Paul Graham.
Make two-way door decisions
Most decisions are easy to reverse. In these cases, the directly responsible individual should go ahead and make them without approval. As Jeff Bezos describes only when you can’t reverse them should there be a more thorough discussion.
Changing proposals isn’t iteration
Changing something without shipping it is a revision, not iteration. Only when the change is rolled out to users can you learn from feedback. When you’re changing a proposal based on different opinions, you’re frequently wasting time; it would be better to roll out a small change quickly and get real world feedback. Never call a revision an iteration because it almost the opposite.
A few challenges have arisen with how we approach iteration. The best example may be the proposal of a two-month release cycle. The argument was that a longer release cycle would buy us time for bug fixes and feature development, but we don’t believe that is the case. As detailed above, we aim to make the absolute smallest thing possible, and that doing otherwise will only slow us down.
That said, we would love to work on a two-week release cycle, but that should be another conversation.
Embracing Iteration
In order to embrace iteration, the quality of your first iteration should not matter and it shouldn’t discourage you from starting. We should have the attitude that we are trying to achieve as much as possible in a small amount of time; it’s where we are at the end state of an iteration, that counts. The benefit of iteration is to get feedback from the end-user. Focus on sharing context on the end of the first iteration rather than a hypothetical future state requiring multiple iterations.
Make small merge requests
When you are submitting a merge request for a code change, or a process change in the handbook, keep it as small as possible. If you are adding a new page to the handbook, create the new page with a small amount of initial content, get it merged quickly via Handbook Usage guidelines, and then add additional sections iteratively with subsequent merge requests. Similarly, when adding features to Bramble, consider ways to reduce the scope of the feature before creating the merge request to ensure your merge request is as small as possible.
Always Iterate Deliberately
Rapid iteration can get in the way of results if it’s not thought out; for example, when adjusting our marketing messaging (where consistency is key), product categories (where we’ve set development plans), organizational structure or product scope alignment (where real human stresses and team stability are involved), sales methodologies (where we’ve trained our teams) and this values page (where we use the values to guide all Bramble team members). In those instances, we add additional review to the approval process; not to prohibit, but to be more deliberate in our iteration. The change process is documented in the Bramble Handbook Usage page and takes place via merge request approvals.
Transparency
Be open about as many things as possible. By making information public, we can reduce the threshold to contribution and make collaboration easier. Use public issue trackers, projects, and repositories when possible.
Transparency creates awareness for Bramble, allows us to recruit people that care about our values, gets us more and faster feedback from people outside the company, and makes it easier to collaborate with them. It is also about sharing great software, documentation, examples, lessons, and processes with the whole community and the world in the spirit of open source, which we believe creates more value than it captures.
There are exceptions. Material that is not public by default is documented. We are above average at keeping things confidential that need to be. On a personal level, you should tell it like it is instead of putting up a poker face. Don’t be afraid to admit you made a mistake or were wrong. When something goes wrong, it is a great opportunity to say “What’s the kaizen moment here?” and find a better way without hurt feelings.
Often, company values get diluted as they grow, most likely because they do not write anything down. But we will make sure our values scale with the company. Everything else that can be transparent will continue to be so.
Public by default
Everything at Bramble is public by default. If something is not public, there should be a reference in the handbook that states a confidential decision was taken with a link to our Not Public guidelines, unless legal feels it carries undue risk. The public process does two things: allows others to benefit from the conversation and acts as a filter. Since there is only a limited amount of time, we prioritize conversations that a wider audience can benefit from.
In line with our value of transparency and being public by default, all Bramble team member GitLab profiles should be public. Public profiles also enable broader collaboration and efficiencies between teams. To do so, please make sure that the checkbox under the Private profile option is unchecked in your profile settings. If you do not feel comfortable with your full name or location on your profile, please change it to what feels appropriate to you as these are displayed even on private profiles.
If you believe something shouldn’t be public that currently is (or vice versa), then make a merge request to the relevant page(s) suggesting the change so that you can collaborate with others and discuss with the DRI.
Not public
We make information public by default because transparency is one of our values. However it is most important to focus on results. Therefore, a category of information is public unless there is a reason for it not to be.
When information is not public, it may also be treated as limited access, only shared with certain Bramble roles, teams, or team members due to privacy considerations, contractual obligation, or other reasons that the author or DRI can specify. Certain kinds of information default to limited access, including details about team members or customers who did not give permission to share the information.
We document what is not public by default on our communication page.
Directness
Being direct is about being transparent with each other. We try to channel our inner Ben Horowitz by being both straightforward and kind, an uncommon cocktail of no-bullshit and no-asshole. Feedback is always about your work and not your person. That doesn’t mean it will be easy to give or receive it.
Articulate when you change your mind
If you state one thing, and then change course and support a different direction, point, or outcome, articulate this. It is OK to have your position changed by new data. Articulating that an earlier stance is not your current stance provides clarity to others and encourages data-driven decision making.
Surface issues constructively
Be transparent to the right people (up) at the right time (when still actionable). If you make a mistake, don’t worry; correct it and proactively let the affected party, your team, and the CEO know what happened, how you corrected it, and how—if needed—you changed the process to prevent future mistakes.
Anyone and anything can be questioned
Any past decisions and guidelines are open to questioning as long as you act in accordance with them until they are changed.
Disagree, commit, and disagree
Everything can be questioned, but as long as a decision is in place, we expect people to commit to executing it, which is a common principle. Every decision can be changed; our best decision was one that changed an earlier one. In a manager-report circumstance, usually the report is the DRI. The manager may disagree with the final decision, but they still commit to the decision of the DRI.
When you want to reopen the conversation on something, show that your argument is informed by previous conversations and assume the decision was made with the best intent. You have to achieve results on every decision while it stands, even when you are trying to have it changed. You should communicate with the DRI who can change the decision instead of someone who can’t.
Transparency is only a value if you do it when it is hard
We practice transparency even when hiding the facts would be easier. For example, many companies do not give you the real reason why they declined your application because it increases the chance of legal action. We want to only reject people for the right reasons and we want to give them the opportunity to grow by getting this feedback.
Therefore, we’ll accept the increased risk of holding ourselves to a high standard of making decisions and do the right thing by telling them what we thought. Other examples are being transparent about security incidents.
Single Source of Truth
By having most company communications and work artifacts be public to the Internet, we have one single source of truth for all Bramble team members, users, customers, and other community members. We don‘t need separate artifacts with different permissions for different people.
Findability
Our transparency value means more than just making information accessible to all. In order to improve performance it’s important that we not only ensure information is accessible, but also ensure it flows to the correct places and is findable by those who need it. Focusing on information flow will ensure you, for example, utilize multi-modal communication, or that you keep your stakeholders informed of changes by posting links to MRs in Slack.
Find the Limit
We accept that we occasionally make mistakes in the direction of transparency. In other words, we accept it if we’re sometimes publicizing information that should have remained confidential in retrospect. Most companies become non-transparent over time because they don’t accept any mistakes. Making mistakes and reflecting on them means we know where the limit of transparency is.
Say why, not just what
Transparent changes have the reasons for the change laid out clearly along with the change itself. This leads to fewer questions later on because people already have some understanding. A change with no public explanation can lead to a lot of extra rounds of questioning, which is less efficient.
This also helps with institutional memory: a year from now when you want to know why a decision was made, or not, the issue or MR that has the decision also shares why the decision was made. This is related to Chesterton’s fence - it’s much easier to suggest removing or changing something if you know why it exists in the first place.
Avoid using terms such as “industry standard” or “best practices” as they are vague, opaque, and don’t provide enough context as a reason for a change.
Similarly, merely stating a single value isn’t a great explanation for why we are making a particular decision. Many things could be considered “iteration” or “efficiency” that don’t match our definition of those values. Try to link to a sub-value of the value or provide more context, instead of just saying a single value’s name.
Saying why and not just what enables discussion around topics that may impact more than one value; for instance, when weighing the efficiency of boring solutions with the focus on customer results. When decisions align with all of our values, they are easy to discuss and decide. When there are multiple values involved, using our values hierarchy and directly discussing the tradeoffs is easier with more context.
Articulating why also helps people understand how something changed when you articulate that you changed your mind.
Saying why does not mean justifying a decision against all other suggestions. The DRI is responsible for their decision. The DRI is not responsible for convincing other people, but they should be able to articulate their reasoning for the change.
When a Bramble Team Member comes across an ask or material (MR, handbook, etc.) that does not provide a “why” with sufficient context, the Team Member is responsible for getting the why and, if needed, working with the DRI to ensure that it is adequately documented and communicated to give context to other team members. In the absence of a why, team members may speculate the why. This is something that can lead to disruption and inefficiency.
Reproducibility
Enable everybody involved to come to the same conclusion as you. This not only involves reasoning, but also providing, for example: raw data and not just plots; scripts to automate tasks and not just the work they have done; and documenting steps while analyzing a problem. Do your best to make the line of thinking transparent to others, even if they may disagree.
Accountability
Increases accountability when making decisions and difficult choices.
Five dysfunctions
Our values help us to prevent the five dysfunctions:
- Absence of trust Unwilling to be vulnerable within the group => prevented by collaboration, specifically kindness
- Fear of conflict Seeking artificial harmony over constructive passionate debate => prevented by transparency, specifically directness and collaboration, specifically short toes
- Lack of commitment Feigning buy-in for group decisions creates ambiguity throughout the organization => prevented by transparency, specifically directness
- Avoidance of accountability Ducking the responsibility to call peers on counterproductive behavior which sets low standards => prevented by results, iteration, and transparency
- Inattention to results Focusing on personal success, status, and ego before team success => prevented by results
Some dysfunctions are not addressed directly by our values; for example, trust is not one of our values. Similar to happiness, trust is something that is an outcome, not something you can strive for directly. We hope that the way we work and our values will instill trust, instead of mandating it from people; trust is earned, not given.
Why have values
Our values should give guidelines on how to behave and must be actionable. They help us describe the type of behavior that we expect from people we hire. They help us to know how to behave in the organization and what to expect from others. Values are a framework for distributed decision making; they allow you to determine what to do without asking your manager.
How to scale the business while preserving Bramble values?
For certain business decisions or projects (such as compensation and end-point management), Bramble team members may have a lot of opinions and interest, and they want to provide their feedback and comments. On the other hand, it might be challenging for the project DRI to digest and respond to all these inputs. What should you do in this scenario?
Everyone can contribute at Bramble. We encourage team members to share feedback and leave comments on issues. Leaving feedback and comments shows that team members care about a topic and about Bramble as a company. These perspectives may also uncover potential risks and problems in the project.
There shouldn’t be a “Don’t they have their job to do?” type of response. Furthermore, we shouldn’t judge team members who are perceived as being the “squeaky wheel.” At Bramble, we measure results, not hours. As long as a team member is producing required results, they are empowered to decide how to spend their time.
On the other hand, as Bramble grows in size, we need to make decisions and the decisions may not be agreed to by everyone. If a decision or project is sensitive or controversial, and receives large amounts of feedback, it can be challenging for the project DRI to handle. In these cases, it’s best to have time-boxed feedback built into timelines.
In a hypothetical example where a DRI needs to decide between red and gold potatoes for a stew, they would create an issue with the following sentiment:
We’re deciding between red potatoes and gold potatoes to go into the soup. We have to decide by Tuesday 2020-07-14 so that we can get our order to the grocery store on Wednesday 2020-07-15. We’ll be collecting input and feedback until that point. Jane is the DRI and will make the decision on 2020-07-14 with all the information we have at that point. Here is the framework we’re using for the decision:
- are there allergies to consider?
- cost per pound
- team member preferences
Once the decision is made, it will be what is going into the stew.
This method has shown itself to be effective at soliciting productive feedback that doesn’t derail a timeline while ensuring team members feel heard.
Hierarchy
Occasionally, values can contradict each other. For instance, transparency would dictate we publish all security vulnerabilities the moment they are found, but this would jeopardize our users. It’s useful to keep in mind this hierarchy to resolve confusion about what to do in a specific circumstance, while remaining consistent with our core values.
Think of the hierarchy as a weighting system. Values higher in the hierarchy do not automatically override values lower in the hierarchy. Here are some examples:
- If a change impacts Transparency positively but impacts Efficiency negatively in roughly the same amount, we would move ahead since Transparency is higher in the hierarchy than Efficiency.
- If a change has a massive positive impact on Diversity but negatively impacts Iteration, we would move ahead even though Diversity is lower in the hierarchy than Iteration because the overall impact is more positive than negative.
Updating our values
Our values are updated frequently and as needed. Everyone is welcome to make a
suggestion to improve them. To update: make a merge request and assign it to the
CEO. If you’re a team member or in the core
team please post a link to the MR in the #values
Slack
channel. If you’re not part of those groups, please send a direct Twitter
message to @sytses.
How do we reinforce our values
Whatever behavior you reward will become your values. We reinforce our values by:
- What we expect from all team members, as ambassadors for our values.
- What we refer to when making decisions.
- The example the E-group sets for the company since a fish rots from the head down.
- What we select for during hiring.
- What we include in our offer letters Offer letters
- What we emphasize during on-boarding.
- Behavior we give each other 360 feedback on.
- Behavior we compliment.
- Criteria we use for promotions.
- Criteria we use to manage underperformance.
- What we do when we let people go.
- Giving value awards during Contribute.
- Keeping them up to date with a stream of commits that add details
The most important moments to reinforce our values are decisions which affect individual team members most: hiring, promotions, and bonuses, which is why every promotion document at Bramble is shared with the entire company and uses the values as its core structure.
In negative feedback, we should be specific about what the problem is. For example, saying someone is “not living the values” isn’t helpful.
What to do if values aren’t being lived out
Value erosion can occur when indifference and apathy are tolerated. It can also occur when individuals justify undesired behaviors by interpreting values as “me values” rather than “company values.” For example, a team member may speak to the importance of personal efficiency in order to justify not collaborating professionally with peers. This is not what we expect from team members in terms of efficiency and collaboration.
If you feel that values are not being lived out in a given scenario, speak up
and ask for context in a respectful manner. Navigating value conflicts starts
with assuming positive intent from
other team members. Offer links to relevant values and/or sub-values when
discussing the issue. If there is confusion or disagreement about the
interpretation of a value, please surface the discussion in Bramble’s #values
Slack channel (for Bramble team members) or @-mentioning
@brmbl_io on Twitter (for those who do not work at
Bramble).
Permission to play
From our values we excluded some behaviors that are obvious; we call them our permission to play behavior:
- Be truthful and honest.
- Be dependable, reliable, fair, and respectful.
- Be committed, creative, inspiring, and passionate.
- Be deserving of the trust of our team members, users and customers.
- Act in the best interest of the company, our team members, our customers, users, and investors.
- Act in accordance with the law.
- Don’t show favoritism as it breeds resentment, destroys employee morale, and creates disincentives for good performance. Seek out ways to be fair to everyone.
What is not a value
All-remote isn’t a value. It is something we do because it helps to practice our values of transparency, efficiency, results, inclusion & belonging.
Questions from new team members
We document the questions and answers to Frequently Asked Questions about the Bramble Culture.
New team members should read Bramble’s guide to starting a new remote role.
Mission
Our mission is that everyone can contribute. This mission guides our path, and we live our values along that path.
Biggest risks
We have a page which documents our biggest risks. Many of our values help to mitigate some of these risks.