Our six values are Collaboration, Results, Efficiency, Diversity, Iteration, and Transparency (CREDIT). We are kind and collaborate to get results. Results enable us to do everything else. We get results efficiently, without wasting anyones time. We celebrate the diversity in our group. We are transparent and direct both inside and outside the company. Together these values spell the credit we give each other. Below each of the values is made actionable.
Helping others is a priority, even when it is not related to the goals that you are trying to achieve. You are expected to ask others for help and advice. Anyone can chime in on any subject, including people who don't work at GitLab. The person who has to do the work decides how to do it but you should always take the suggestions seriously and try to respond and explain.
Kindness We don't want jerks in our team. Some companies say Evaluate People Accurately, Not "Kindly". We're all for accurate assessment but we think it must be done in a kind way. Give as much positive feedback as you can and do it in a public way.
Negative is 1-1 Give negative feedback in the smallest setting possible, one-on-one video calls are preferred.
Say thanks recognize the people that helped you publicly, for example in our #thanks chat channel.
Feedback is always about the work Clearly make negative feedback about the work itself, not the person. When giving feedback always 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.
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 encourage people to get to know each other on a personal level through our team calls, virtual coffee breaks, and during our summit.
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 we have a hierarchical decision making process. Explain why you're making the decision and respect everyone irrespective of their function.
Say sorry if you made a mistake apologize. Saying sorry is not a sign of weakness but one of strength. The people that do the most will likely make the most mistakes.
No ego don't defend a point to win an argument or double-down on a mistake. You are not your work, you don't have to defend your point, you have to search for the right answer together.
See others succeed an applicant that talked to a lot of people inside GitLab mentioned that compared to other companies one thing stood out the most. Everyone at GitLab mentioned wanting to see each other succeed.
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. Do not compete by proclaiming how many hours you worked yesterday because we don't want someone who took the afternoon off to feel like they did something wrong. Instead, celebrate the achievements of yourself and your teammates. 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.
Write promises down agree in writing on measurable goals. Within the company we use OKRs for that, you can see our public OKR goal tree.
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.
Boring solutions: Use the most simple and boring solution for a problem. You can always make it more complex later if that is needed. 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 code that is popular will ensure many bugs are already solved and its familiarity makes it easier for others to contribute.
Be respectful of other's 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 needed make attendance optional by making the invite optional, by having a clear agenda linked from the invite, and by documenting 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.
Freedom You should have clear objectives and the freedom to work on them as you see fit.
FrugalityAmazon 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.".
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 And keep 1 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 team members to be a manager of one who doesn't need daily check-ins to achieve their goals.
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.
Accept mistakes not every problem should lead to a new process to prevent them. Additional process make all actions more inefficient, a mistake only affects one.
The community consists of people from all over the world, with different backgrounds and opinions. We hire globally and encourage hiring in a diverse set of countries. We work to make everyone feel welcome and to increase the participation of underrepresented minorities and nationalities in our community and company. An example is our sponsorship of diversity events.
Don't bring religion or politics to work We don't discuss religion or politics because it is easy to alienate people that have a minority opinion. Feel free to mention you attended a ceremony or rally, but don't mention the religion or party.
Quirkiness: Unexpected and unconventional things make life more interesting. Celebrate and encourage quirky gifts, habits, behavior, and points of view. An example is our team call where we spend most of our time talking about what we did in our private lives, from fire-throwing to knitting. Open source is a great way to interact with interesting people. We try to hire people who think work is a great way to express themselves.
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 underestimate when they join GitLab, 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.
Work as part of the community small iteration make it easier to work with the wider community. Their work looks more like our work and our work is quicker to give feedback too.
Minimum Viable Change (MVC) always look to make the quickest change possible to improve the outcome. If you think it is better than what is there now do it, no need to wait for something polished.
Make a proposal if you need to decide something as a team make a 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. The people that receive the proposal should not feel left out, the person making it should not feel bad if a completely different proposal is implemented. Don't let your ego to be involved early or to see your solution implemented stand in the way of getting to the best outcome.
Everything is in draft at GitLab we rarely put draft on any content or proposals. Everything is always in draft an 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.
Be open about as many things as possible. By making information public we can reduce the threshold to contribution and make collaboration easier. An example is the public repository of this website that also contains this company handbook. Everything we do is public by default, for example, the GitLab CE and GitLab EE issue trackers, but also marketing and infrastructure. Transparency creates awareness for GitLab, allows us to recruit people that care about our culture, it 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 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 in the general guidelines. 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 went wrong it is a great opportunity to say "What’s the kaizen moment here?" and find a better way without hurt feelings.
Public by default everything at GitLab is public by default.
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
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 and transparency
Inattention to results (focusing on personal success, status and ego before team success) => prevented by results
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 do we reinforce our values
Whatever behavior you reward will become your values. We reinforce our values through the following actions:
By what we do, especially what the leadership does.
By what we select for during hiring.
By what we emphasize during on-boarding.
By what criteria we use for promotions
By what criteria we use for bonuses.
By what behavior we compliment.
By what criteria we use to let people go.
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 users and customers.
Act in the best interest of the company, our team members, our customers, users, and investors.