GitLabでの経験
- 2015年10月から2021年12月までの約6年間、GitLabで勤務した。
- GitLabを離れてInkoの作業に専念することを決めたが、GitLabでの経験について共有したことはなかった。
- NDA(秘密保持契約)が満了し、GitLabで過ごした時間を振り返るだけの気力が出てきた。
GitLab以前
- アムステルダムを拠点とする小さなスタートアップで働きながら、RubiniusとOgaというXML/HTMLパーシングライブラリの開発も並行して進めていた。
- 資金不足と技術的な問題により、Rubiniusの採用をこれ以上進めなくなった。
- GitLabで週に1日をRubiniusの作業に充てられるかを確認したうえで、GitLabに入社した。
2015-2017
- GitLabでの初日は前職での最終勤務日の翌日で、そこでリモートワークへ移行した。
- GitLabはリモート企業だったが、交流の多い会社でもあり、さまざまな集まりやイベントがあった。
- GitLabは性能問題、頻発するサーバーダウン、運用上の問題などに苦しんでいた。
- 性能監視インフラが不足していたため、性能改善は難しかった。
- GitLabの文化や姿勢を変えようと努めたが、性能改善に対する会社側の不満もあって苦労した。
2017-2018
- 性能は大きく向上し、GitLabも性能をより真剣に受け止めるようになった。
- データベース性能に焦点を当てた「データベースチーム」へと変わった。
- GitLabのデータベースロードバランサーを構築し、性能に良い影響を与えた。
- データベースシャーディングに関するGitLabの要望に対し、データに基づいて反対した。
2019-2021
- 「デリバリー」チームへ移り、GitLabのリリースプロセスとツールの改善に注力した。
- コミットがメインブランチに入ってからGitLab.comにデプロイされるまで、平均で数日、最悪の場合は3週間かかった。
- GitLab Community EditionとGitLab Enterprise Editionを1つに統合する作業を主導した。
- ノートPC管理に関する問題や文化的変化により、モチベーションと生産性が低下した。
- 新しいマネージャーとの対立により、「成果改善計画」を作成することになった。
学んだこと
- スケーラビリティは企業文化の一部であるべき: GitLabはスケーラビリティに十分な注意を払っていなかった。
- チームはよりデータ重視・開発者重視にすべき: GitLabはプロダクトマネージャー中心の構造を持っていた。
- データなしでは「最小機能製品」を決められない: GitLabは「最小機能変更」を中核原則としていたが、実際には有用でない機能を多く作っていた。
- SaaSとセルフホスティングは相性がよくない: GitLabはセルフホスティング版の提供とSaaS提供を同時に行っていたが、これは効果的ではなかった。
- 人が増えればより良い結果になるわけではない: GitLabは長年にわたり多くの人を採用したが、開発者が増えること自体が生産性向上を意味するわけではなかった。
- Ruby on Railsの採用をめぐる葛藤: GitLabはRubyとRuby on Railsで成功を収めたが、大規模プロジェクトでは課題にもなった。
- コードデプロイ時間は組織の成功に極めて重要: GitLabではコードのデプロイ時間を短縮することが重要な目標だった。
- 地域ベースの給与は差別的である: GitLabは地域によって給与を変えていたが、これは差別的な行為である。
GN⁺の見解
- GitLabでの経験は、リモートワーク環境の長所と短所、そしてスタートアップの成長過程で直面するさまざまな問題を理解する助けになる。
- 性能向上とスケーラビリティの重要性、そしてそれらを文化として定着させることの重要性を強調している。
- 地域ベース給与の問題を指摘しており、これはリモートワーク環境における公正な報酬体系を議論するうえで重要な事例である。
1件のコメント
Hacker Newsの意見