ประสบการณ์ที่ GitLab
- ทำงานที่ GitLab ประมาณ 6 ปี ตั้งแต่เดือนตุลาคม 2015 ถึงธันวาคม 2021
- ตัดสินใจลาออกจาก GitLab เพื่อทุ่มเทให้กับการพัฒนา Inko แต่ไม่เคยแบ่งปันประสบการณ์ที่ GitLab มาก่อน
- เมื่อ NDA (ข้อตกลงไม่เปิดเผยข้อมูล) หมดอายุลง จึงมีพลังมากพอที่จะย้อนมองช่วงเวลาที่ GitLab ได้
ก่อน GitLab
- ทำงานที่สตาร์ทอัพขนาดเล็กในอัมสเตอร์ดัม และพัฒนาไลบรารี parsing XML/HTML ชื่อ Rubinius และ Oga ไปพร้อมกัน
- เลิกผลักดันการใช้งาน Rubinius ต่อเนื่องจากปัญหาด้านเงินทุนและปัญหาทางเทคนิค
- เข้าร่วม GitLab โดยสอบถามว่าสามารถใช้เวลาสัปดาห์ละหนึ่งวันไปกับงาน Rubinius ได้หรือไม่
2015-2017
- วันแรกที่ GitLab คือวันถัดจากวันทำงานวันสุดท้ายที่บริษัทก่อนหน้า และเปลี่ยนมาทำงานระยะไกล
- GitLab เป็นบริษัทที่ทำงานแบบรีโมต แต่ก็เป็นบริษัทที่มีความเป็นสังคม และมีการพบปะกับอีเวนต์ต่าง ๆ มากมาย
- GitLab เผชิญปัญหาหนักจากประสิทธิภาพ ระบบเซิร์ฟเวอร์ล่มบ่อย และปัญหาด้านการจัดการ
- ขาดโครงสร้างพื้นฐานสำหรับการมอนิเตอร์ประสิทธิภาพ ทำให้การปรับปรุงประสิทธิภาพเป็นเรื่องยาก
- พยายามเปลี่ยนวัฒนธรรมและทัศนคติของ GitLab แต่เจอความยากลำบากเพราะบริษัทไม่พอใจกับผลลัพธ์ด้านการปรับปรุงประสิทธิภาพ
2017-2018
- ประสิทธิภาพดีขึ้นอย่างมาก และ GitLab เริ่มให้ความสำคัญกับประสิทธิภาพอย่างจริงจังมากขึ้น
- เปลี่ยนไปอยู่ใน "ทีมฐานข้อมูล" ที่มุ่งเน้นเรื่องประสิทธิภาพของฐานข้อมูล
- สร้าง database load balancer ของ GitLab ซึ่งส่งผลเชิงบวกต่อประสิทธิภาพ
- คัดค้านความต้องการของ GitLab เรื่อง database sharding โดยอิงจากข้อมูล
2019-2021
- ย้ายไปทีม "Delivery" เพื่อโฟกัสกับการปรับปรุงกระบวนการรีลีสและเครื่องมือของ GitLab
- หลังจาก commit เข้าสู่เมนบรাঞ্চแล้ว กว่าจะ deploy ไปยัง GitLab.com ใช้เวลาเฉลี่ยหลายวัน และกรณีเลวร้ายที่สุดนานถึง 3 สัปดาห์
- เป็นผู้นำในการรวม GitLab Community Edition และ GitLab Enterprise Edition ให้เป็นหนึ่งเดียว
- ปัญหาที่เกี่ยวข้องกับการจัดการแล็ปท็อปและการเปลี่ยนแปลงทางวัฒนธรรมทำให้แรงจูงใจและผลิตภาพลดลง
- จากความขัดแย้งกับผู้จัดการคนใหม่ จึงมีการจัดทำ "แผนเร่งรัดผลงาน"
สิ่งที่ได้เรียนรู้
- ความสามารถในการขยายขนาดต้องเป็นส่วนหนึ่งของวัฒนธรรมบริษัท: GitLab ไม่ได้ใส่ใจกับ scalability มากพอ
- ทีมควรขับเคลื่อนด้วยข้อมูลและนักพัฒนามากกว่านี้: GitLab มีโครงสร้างที่ยึดผู้จัดการผลิตภัณฑ์เป็นศูนย์กลาง
- หากไม่มีข้อมูล ก็ไม่สามารถตัดสินได้ว่าอะไรคือ 'ผลิตภัณฑ์ขั้นต่ำที่ใช้งานได้': GitLab ยึด "การเปลี่ยนแปลงฟีเจอร์ขั้นต่ำ" เป็นหลักสำคัญ แต่ในทางปฏิบัติกลับสร้างฟีเจอร์ที่ไม่ค่อยมีประโยชน์จำนวนมาก
- SaaS กับการโฮสต์เองเข้ากันได้ไม่ดี: GitLab ให้บริการทั้งการติดตั้งแบบโฮสต์เองและ SaaS พร้อมกัน แต่แนวทางนี้ไม่ได้ผลนัก
- คนที่มากขึ้นไม่ได้แปลว่าจะได้ผลลัพธ์ที่ดีกว่าเสมอไป: GitLab จ้างคนจำนวนมากตลอดหลายปี แต่การมีนักพัฒนามากขึ้นไม่ได้ทำให้ผลิตภาพดีขึ้นเสมอ
- ความขัดแย้งจากการใช้ Ruby on Rails: GitLab ประสบความสำเร็จด้วย Ruby และ Ruby on Rails แต่เมื่อโครงการมีขนาดใหญ่ขึ้นก็กลายเป็นความท้าทาย
- เวลาในการ deploy โค้ดสำคัญอย่างยิ่งต่อความสำเร็จขององค์กร: ที่ GitLab การลดเวลา deploy โค้ดเป็นเป้าหมายสำคัญ
- เงินเดือนตามที่ตั้งเป็นการเลือกปฏิบัติ: GitLab จ่ายค่าตอบแทนต่างกันตามสถานที่ ซึ่งถือเป็นการเลือกปฏิบัติ
ความเห็นของ GN⁺
- ประสบการณ์ที่ GitLab ช่วยให้เข้าใจทั้งข้อดีและข้อเสียของสภาพแวดล้อมการทำงานแบบรีโมต รวมถึงปัญหาหลากหลายที่เกิดขึ้นระหว่างการเติบโตของสตาร์ทอัพ
- เน้นย้ำความสำคัญของการปรับปรุงประสิทธิภาพ ความสามารถในการขยายขนาด และการทำให้สิ่งเหล่านี้กลายเป็นส่วนหนึ่งของวัฒนธรรม
- ชี้ให้เห็นปัญหาของเงินเดือนตามที่ตั้ง ซึ่งเป็นกรณีสำคัญในการถกเถียงเรื่องระบบค่าตอบแทนที่เป็นธรรมในสภาพแวดล้อมการทำงานแบบรีโมต
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News