There is a monthly GitLab 101 call with new hires and the CEO. Here we talk about the following topics. This is a zoom call. Please read the history and values links provided below and come prepared with questions. The call will be driven by questions asked by new employees.
All questions and answers during the call are added to the FAQ on https://about.gitlab.com/culture/gitlab-101/. This is done by a people-ops person who also joins the call.
The calendar invite will say: "You need to prepare for this call, please see https://about.gitlab.com/culture/gitlab-101/ for details."
We feel that there are definitely some parts that companies can take home from our handbook, but a handbook should be specific on what you do, not on what you wanna be. Every company will be able to fill out their own handbook over time.
Losing the interest of the open source community. If someone wants to make a contribution for CE and decides not to merge it because it’s an EE feature for example. Saas will be very important; it will be the largest part of revenue in 2019 A great example of this is Netflix. Everyone knew that video on demand was the future. Netflix however started shipping dvds over mail. They knew that it would get them a database of content that people would want to watch on demand. Timing is everything. GitHub is longer around, but we feel it’s still early. Tools don’t collaborate and we can try to do a better job than our competition.
It’s great someone wants to pay to have a feature built, it means they really need it. However, we will not make a custom version of GitLab, even gitlab.com is running on EE, we move faster that way. Working this was minimizes technical complexity to determine features to follow after, it’s a trade off to make. This doesn’t mean that no is always going to stay no. Dmitriy was against open projects. We keep an open mind for improvements.
A few things have come up, and we feel the best example is proposing 2 month release cycle. The argument was that we have a lot of bug fixes every time and it would give us more time to make a feature. We don’t feel that is the case. We aim to make the absolute smallest thing possible other wise it will slow you down. We would love to work on a 2 week release cycle but that should be another conversation.
It’s hard to be open about financials; it’s easy when everything is going well but very hard when it’s not. We try to be open to our team as we go along but it will hurt being open to the outside world about this in the future.
Gogs has a similarity with the core function of GitLab. Many times with competitors, we feel we can do the same, we can make that feature, we can add it to GitLab. What Gogs does is similar to GitLab but with less CPU and memory which is very difficult for us. Since it can host repositories for personal projects of a few people we feel it’s complementary to GitLab since we don’t service that target audience. There is still a place in the market for this tool and it’s genuinely useful so let’s make sure it’s a great tool for people to use. If you’re using GitLab and want to downgrade or are using Gogs and need more, the integration is simple and easy.
Basically you can do an IPO when you have $100 million in Annual Recurring Revenue (ARR). After we cross that threshold we can start thinking about IPO, before that we’re too small.
It's aggressive, it's possible, and it's realistic. Having a goal gives us clarity on what we need to achieve. Our ambition is clear, and we want to be a growing and independent company. We are in an enormous market, and we're winning that market.
If we can make a product that is strong with all features from idea to production, and it works well, then you have a chance. It should have benefits that you can only have with an integrated product, such as Cycle Analytics.
Our plan is to start with becoming the most popular tool for people’s own git hosting service; we’ve managed that so far. Secondly we want to get to be the one with the most revenue. Thirdly we want to become the most popular tool for hosting private repos. Once we’ve reached that we want to be the most popular tool for hosting public repos and lastly we want to be the number one tool for people to host not code but books, tech papers, visual models. movies etc. More info on this is on our strategy page
We know that iteration is painful. If you're doing iteration correctly, it should be painful. 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.
It was iterative. The first time was when Sid saw GitLab and how easy it was to collaborate. The second time was when he first made a post about it on Hacker News, and it didn't trend at first, so he left his computer to go make pancakes. But he had his phone with him, and his post started to get tons of comments and was featured on the home page. He asked his wife to take over making the pancakes for a few minutes, but he never came back because he spent the rest of the day answering questions about GitLab. Another time was when GitLab got into Y Combinator.
We became much more comfortable with a much faster pace. This changed the way we thought about what we can achieve in a short timeframe. If we think something takes too long, we need to change our idea of what we can accomplish. There is always an opportunity to do something smaller and imperfect but that still makes a difference.
It was essential to the trajectory we're at. We never thought we could beat our competitors, but we had big ambitions and knew we had a great product and would continue to iterate and improve on that product, which we still do today. We keep in touch with a lot of the people we met at Y Combinator, and we help other start-ups with their applications and interview training, and we spread the word that it's a great place to join and develop your company.
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 try to always make them better. 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 on how to improve them.
Yes. Often company cultures get diluted as they grow, most likely because they do not write anything down. But we will make sure our culture scales with the company. When we go public, we can declare everyone in the company as an insider, which will allow us to remain transparent internally about our numbers, etc. Everything else that can be transparent will continue to be so.
The handbook started when there were only 10 people, to make sharing information efficient and easy. People won't see emails about process changes that were sent before the joined, and most of the people who will eventually join GitLab have not joined yet, so we need to have the information accessible to everyone.
There's a trade-off between speed and breadth when making decisions. A lot of companies try to find the ideal trade-off between speed and breadth. But you can keep trying this since every time you move towards one side you move away from the other. At GitLab we solve this trade-off by distinguishing between two phases in the decision making process, the data gathering phase and the conclusion phase. During the data gathering phase we allow everyone to give their data and point of view. We are on the extreme side since we not only ask people in the hierarchy to contribute, as well as the rest of the company, but we also open it up to people outside of the company to contribute as well. In other companies a wide breadth of opinions causes a problem during the conclusion phase. This because there are many opinions and it takes a long time to reach consensus. At GitLab, we give authority to the person who has to do the work and their chain of command. They are experts and they make the decisions and will have to live with them. If they make a mistake, at least it's something they chose and will be motivated to fix. This way we have the best of both worlds, we get a huge breadth while also having a speedy process. Everyone can contribute, but at the same time we want results and encourage ownership.
We do not have an entity in each country. We are expanding entities slowly and based among other factors on how many people are contractors in the country.
By the end of the year, GitLab.com should be ready for mission critical workloads. We are currently making changes in the company and working with developers/infrastructure to ensure it becomes a viable competitor to other SaaS services.
We have tried different business models and many didn’t work. As a company, we realized we need recurring revenue. To obtain that, we introduced Enterprise Edition. Initially, everyone was worried innovation would stop on the Community Edition. Within six months the Enterprise Edition was under the MIT license. The community saw we were building both products, which helped to build trust. Customers became confused, so after six months the arrangement stopped. Response was positive about the shift. We should keep improving both and keep our stewardship promises.
It's ambiguous and difficult to get right. We listened to the community to find a good balance, and we were willing to iterate and make changes in order to make the community happy. The value needs to be there in order for people to pay for premium, and we think we provide that.
We will adopt it and keep an open mind, and hopefully we will be big enough at that point that people will consider us an integrated DevOps product. If not, we can always change our name, but we are investing to make git better for everyone.