During the monthly GitLab 101 call with new hires and the CEO where we talk about the following topics. This is a zoom call (please make sure there is no Google Hangout link in the invite). The agenda is below, urls are expanded so you can click on them when we paste this in the calendar invite:
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.
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.
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.
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.