GitLab'daki deneyim
- Ekim 2015'ten Aralık 2021'e kadar yaklaşık 6 yıl GitLab'da çalıştı.
- GitLab'dan ayrılıp tamamen Inko üzerinde çalışmaya karar verdi, ancak GitLab'daki deneyimini daha önce hiç paylaşmadı.
- NDA'nın (gizlilik sözleşmesi) süresi dolunca, GitLab'da geçirdiği zamanı dönüp değerlendirecek enerjiyi buldu.
GitLab öncesi
- Amsterdam merkezli küçük bir startup'ta çalışırken Rubinius ve Oga adlı XML/HTML ayrıştırma kütüphaneleri üzerinde çalıştı.
- Finansman eksikliği ve teknik sorunlar nedeniyle Rubinius kullanımını daha fazla sürdürmedi.
- GitLab'a, haftada bir gününü Rubinius üzerinde çalışmaya ayırıp ayıramayacağını sorarak katıldı.
2015-2017
- GitLab'daki ilk günü, önceki şirketindeki son çalışma gününün hemen ertesi günüydü ve bu, uzaktan çalışmaya geçişi anlamına geliyordu.
- GitLab uzaktan çalışan bir şirketti ama aynı zamanda sosyal bir şirketti; çeşitli buluşmalar ve etkinlikler düzenleniyordu.
- GitLab; performans sorunları, sık yaşanan sunucu kesintileri ve yönetim problemleri nedeniyle zorlanıyordu.
- Performans izleme altyapısı yetersiz olduğu için performansı iyileştirmek zordu.
- GitLab'ın kültürünü ve yaklaşımını değiştirmeye çalıştı, ancak şirketin performans iyileştirmelerinden memnun kalmaması nedeniyle zorlandı.
2017-2018
- Performans büyük ölçüde iyileşti ve GitLab performansı daha ciddiye almaya başladı.
- Veritabanı performansına odaklanan bir "veritabanı ekibi"ne geçildi.
- GitLab'ın veritabanı yük dengeleyicisini geliştirerek performans üzerinde olumlu etki yarattı.
- GitLab'ın veritabanı sharding ihtiyacına verilere dayanarak karşı çıktı.
2019-2021
- "Delivery" ekibine geçerek GitLab'ın release sürecini ve araçlarını iyileştirmeye odaklandı.
- Bir commit'in ana branch'e ulaşmasından sonra GitLab.com'a deploy edilmesine kadar geçen süre ortalama birkaç gündü, en kötü durumda ise 3 haftayı buluyordu.
- GitLab Community Edition ile GitLab Enterprise Edition'ı tek yapıda birleştirme çalışmasına liderlik etti.
- Dizüstü bilgisayar yönetimiyle ilgili sorunlar ve kültürel değişimler nedeniyle motivasyonu ve üretkenliği azaldı.
- Yeni yöneticisiyle yaşadığı anlaşmazlık nedeniyle bir "performance improvement plan" oluşturuldu.
Öğrendikleri
- Ölçeklenebilirlik şirket kültürünün bir parçası olmalı: GitLab ölçeklenebilirliğe yeterince önem vermedi.
- Ekipler daha veri ve geliştirici odaklı olmalı: GitLab ürün yöneticisi merkezli bir yapıya sahipti.
- Veri olmadan 'minimum uygulanabilir ürün' belirlenemez: GitLab, "minimum uygulanabilir değişiklik" ilkesini benimsiyordu, ancak pratikte çoğu zaman faydasız özellikler geliştirdi.
- SaaS ile self-hosted yaklaşım birbiriyle iyi uyuşmuyor: GitLab hem self-hosted kurulum hem de SaaS hizmeti sundu, ancak bu etkili olmadı.
- Daha fazla insan her zaman daha iyi sonuç anlamına gelmez: GitLab yıllar içinde çok sayıda kişiyi işe aldı, ancak daha fazla geliştirici üretkenliği otomatik olarak artırmadı.
- Ruby on Rails kullanımı etrafındaki gerilim: GitLab Ruby ve Ruby on Rails ile başarı yakaladı, ancak büyük projelerde bu bir zorluk haline geldi.
- Kodun deploy süresi organizasyonun başarısı için kritik önemde: GitLab'da kodu deploy etme süresini kısaltmak önemli bir hedefti.
- Konum bazlı maaş ayrımcıdır: GitLab maaşları konuma göre değiştiriyordu, ancak bu ayrımcı bir uygulamaydı.
GN⁺ görüşü
- GitLab'daki deneyim, uzaktan çalışma ortamının artılarını ve eksilerini ve bir startup'ın büyüme sürecinde yaşanan çeşitli sorunları anlamaya yardımcı oluyor.
- Performans iyileştirmenin ve ölçeklenebilirliğin önemini, ayrıca bunların kültürün bir parçası haline getirilmesinin gerekliliğini vurguluyor.
- Konum bazlı maaş sorununa dikkat çekerek, bunun uzaktan çalışma ortamında adil ücretlendirme sistemlerini tartışmak için önemli bir örnek olduğunu belirtiyor.
1 yorum
Hacker News yorumu