บทเรียนวิศวกรรม 10 บทเรียนจาก 6 ปีที่ Intercom
เผยแพร่แล้ว: 2024-02-03หลังจากใช้เวลานานกว่าหกปีอันเหลือเชื่อ ในสามบทบาทในสามกลุ่มผลิตภัณฑ์ที่แตกต่างกัน ฉันกำลังออกจาก Intercom เพื่อรับโอกาสใหม่โดยสิ้นเชิง
ดังที่เราได้เขียนไว้มากมายในอดีต Intercom มีวัฒนธรรมทางวิศวกรรมและผลิตภัณฑ์ที่เป็นเอกลักษณ์ ดังนั้นนี่คือความพยายามของฉันที่จะสะท้อนถึงวัฒนธรรมและสรุปบทเรียนหลักจากเวลาที่ฉันอยู่ที่นี่ ฉันหวังว่าข้อมูลเชิงลึกเหล่านี้จะเป็นประโยชน์สำหรับวิศวกรและผู้จัดการฝ่ายวิศวกรรมคนอื่นๆ
และหากคุณสนใจที่จะแก้ไขปัญหาหนักๆ กับคนเก่งๆ อย่าลืมเข้าไปดูหน้าอาชีพของอินเตอร์คอมเพื่อดูว่ามีบทบาทสำหรับคุณหรือไม่ คุณจะไม่เสียใจ
1. การเดิมพันเฉพาะอนาคตก็เหมือนกับการตัดปัจจุบันและมีค่าเสียโอกาส
อินเตอร์คอมเป็นบริษัทที่มีนวัตกรรมล้ำสมัย และผู้นำระดับสูงของเราก็ยอดเยี่ยมในการมีความเข้าใจอย่างถ่องแท้ว่าแนวโน้มใดจะสร้างกระแสในตลาด แต่การเดิมพันเฉพาะสิ่งนั้น การสร้างเพื่ออนาคตเท่านั้น ก็เหมือนกับการตัดปัจจุบันและทำให้เกิดค่าเสียโอกาส ที่ Intercom เราอาจประสบปัญหาดังกล่าวกับอีเมลและโทรศัพท์ เรามั่นใจมาหลายปีแล้วว่าช่องทางเหล่านี้กำลังจะตาย และตระหนักได้ว่าช่องทางเหล่านี้ไม่ได้หดตัวลงเลยในแต่ละปี ฉันพบว่ามันเป็นแบบจำลองทางจิตที่มีประโยชน์เมื่อคุณคิดถึงแนวโน้มในอนาคต คุณจะทำให้ปัจจุบันสั้นลงและยินดีจ่ายเบี้ยประกันภัยหากคุณยังคงทำผิดต่อไป
2. นักพัฒนาทุกคนจำเป็นต้องมี AI ในกล่องเครื่องมือของพวกเขา
เมื่อเราทำงานกับ Fin ทีม AI ของเราเป็นพื้นฐานของการทำงาน เราจะไม่สามารถทำได้ในฐานะทีมผลิตภัณฑ์ อย่างไรก็ตาม เมื่อเวลาผ่านไป คุณลักษณะที่ยอดเยี่ยมจำนวนมากได้ถูกสร้างขึ้นในระบบนั้นโดยทีมผลิตภัณฑ์ของเราโดยตรง การผลักดันครั้งแรกอาจต้องอาศัยความเชี่ยวชาญ แต่สิ่งสำคัญคือต้องเปิดเผย AI ให้กับองค์กรของคุณโดยเร็วที่สุด วิศวกรอีกคนเล่าเรื่องราวเล็ก ๆ น้อย ๆ นี้ให้ฉันฟัง ย้อนกลับไปในปี 2008 บริษัทต่าง ๆ ต่างก็มีทีมงานที่ทำ "การออกแบบมือถือ" เพียงไม่กี่ปีต่อมามันก็เป็นส่วนหนึ่งของงานของทุกคน
3. Monoliths สามารถปรับขนาดได้ดีมาก ให้ความปลอดภัยในการใช้งานที่มั่นคง และยกระดับประสบการณ์และความสามารถในการสังเกตของนักพัฒนาซอฟต์แวร์ได้สูง
ฉันยังคงประหลาดใจอย่างต่อเนื่องว่าขนาดเสาหิน Intercom Rails ขยายตัวได้ดีเพียงใดในช่วงหลายปีที่ผ่านมา การตัดสินใจทางวิศวกรรมที่ยอดเยี่ยม ทำให้เรียบง่าย และใช้ประโยชน์ได้มหาศาลจากทีมนักพัฒนาที่มีประสบการณ์เพียงทีมเดียวของเรา และการยึดมั่นในเทคโนโลยีคลาวด์ที่ได้รับการพิสูจน์แล้วช่วยให้เราขับเคลื่อนการเติบโตได้เป็นอย่างดี
“Monolith เป็นสิ่งที่ช่วยให้เราสามารถจัดส่งได้เร็วมากบ่อยครั้งมาก”
Monolith ยังเป็นสิ่งที่ช่วยให้เราสามารถจัดส่งได้เร็วมากบ่อยครั้งมาก (โดยการทำงานหนัก เช่น การย้อนกลับอย่างรวดเร็วหรือ CI ที่รวดเร็ว) เมื่อเปรียบเทียบกันแล้ว เราพบว่าบริการบางอย่างที่เราเป็นเจ้าของเป็นเรื่องยากลำบากเมื่อเปรียบเทียบกัน ทีมต่างๆ จะต้องชะลอตัวลงโดยการรักษาการขึ้นต่อกัน ช่องทางการปรับใช้ หรือการอัปเดตโครงสร้างพื้นฐานของตนเอง ฉันไม่เคยทำงานในสถาปัตยกรรมไมโครเซอร์วิสระดับสูงระดับมืออาชีพ แต่แทบรอไม่ไหวที่จะเรียนรู้เกี่ยวกับข้อดีข้อเสียที่นั่น
4. ความถี่ในการจัดส่งเป็นสิ่งสำคัญ มันเป็นจังหวะการเต้นของหัวใจของคุณ
คุณอาจไม่จัดส่งให้กับลูกค้า แต่มีวิธีจัดส่งไปยังการผลิตอย่างปลอดภัยอยู่เสมอ ถ้าหาไม่เจอก็หาต่อไป มันสร้างกล้ามเนื้อเพื่อการเร่งความเร็วมากขึ้นเมื่อจำเป็น และช่วยให้คุณไม่สูญเสียความอดทนทางวัฒนธรรม อวดความก้าวหน้า เป็นการดีอย่างยิ่งในการสาธิตทั่วทั้งบริษัท
5. สร้างแบบจำลองระบบและแบบจำลองทางจิตจำนวนมาก และใช้เลเยอร์นามธรรมที่แตกต่างกัน
การมองปัญหาเดียวกันจากมุมที่ต่างกันจะช่วยเพิ่มขอบเขตอันไกลโพ้นและสร้างแนวร่วมได้อย่างแท้จริง ที่อินเตอร์คอม ฉันได้เรียนรู้ว่าการประชุมที่ดีที่สุดเริ่มต้นเมื่อมีคนรับสาย โมเดลของระบบที่ประกอบขึ้นตรงจุด ปรับเปลี่ยน พัฒนาในขณะที่คุณพูดคุย ทั้งหมดนี้ช่วยให้คุณเข้าใจปัญหา ความซับซ้อน และการพึ่งพาได้อย่างแท้จริง
“แบบจำลองทางจิตที่ใช้ร่วมกันมีประโยชน์มากสำหรับการเคลื่อนไหวที่รวดเร็ว”
จดบันทึกไว้ แสดงไว้ในบทสนทนาครั้งถัดไป ถามถึงแบบจำลองทางจิตของคนอื่น การทำงานร่วมกันนี้ร่วมกับคู่ค้าและผู้มีส่วนได้ส่วนเสียจะช่วยเร่งความรวดเร็วในการทำงานร่วมกันและกำจัดความไม่สอดคล้องกัน โมเดลทางจิตที่ใช้ร่วมกันมีประโยชน์มากสำหรับการเคลื่อนไหวที่รวดเร็ว
6. เป็นเจ้าของและทราบข้อมูลของคุณโดยไม่มีข้อแก้ตัว
ในอดีตฉันมีข้อแก้ตัวมากมายในการทำความเข้าใจข้อมูลผลิตภัณฑ์โดยไม่ได้รับความช่วยเหลือจากนักวิเคราะห์ข้อมูลในการประดิษฐ์คำสั่งและเทคนิคการวิเคราะห์ ฉันไม่มีความเมตตาต่อตัวเองตั้งแต่ ChatGPT คุณภาพและความมั่นใจที่ฉันสามารถสำรวจพื้นที่ผลิตภัณฑ์ของฉันโดยไม่ต้องมีนักวิเคราะห์เฉพาะได้เพิ่มขึ้นอย่างมาก และฉันคาดหวังว่าทุกคนอย่างน้อยก็ทางเทคนิคเล็กน้อยก็สามารถทำได้ในตอนนี้
7. การจัดการข้อมูลมีการพัฒนา เจ็บปวด และเป็นการยากที่จะหาสิ่งที่ดี
เราเป็นเจ้าของแพลตฟอร์มข้อมูลที่ค่อนข้างยืดหยุ่นและใช้กันอย่างแพร่หลาย เป็นผลิตภัณฑ์ที่ได้รับการตอบรับมากที่สุด แต่การสร้างผลกระทบในพื้นที่นี้เป็นเรื่องยากมาก ตลาดมีการพัฒนาอย่างรวดเร็วด้วยแนวทางใหม่ๆ เช่น ETL, Reverse-ETLs, Point-Integrations, CDP ฐานลูกค้าของคุณจะกระจายไปตาม "วิธีที่ดีที่สุดในการจัดการข้อมูลของคุณ" ที่แตกต่างกันมากมาย
“เพื่อดูการเปลี่ยนแปลงและการปรับปรุงที่สำคัญในการจัดการข้อมูล ทุกอย่างขึ้นอยู่กับกลยุทธ์และความสม่ำเสมอ”
และด้วยเหตุนี้ ไม่เคยมีปัญหาแม้แต่ครั้งเดียว จึงมีรายการปัญหายาวเหยียดอยู่เสมอ มีลักษณะคล้ายกันในบางรูปแบบแต่แตกต่างกัน หากต้องการเห็นการเปลี่ยนแปลงและการปรับปรุงการจัดการข้อมูลที่มีความหมาย สิ่งสำคัญคือต้องอาศัยกลยุทธ์และความสม่ำเสมอ ลงทุนน้อยที่นี่และที่นั่นไม่ค่อยได้ผล
8. การบูรณาการข้อมูลเริ่มซับซ้อนมากขึ้นเมื่อคุณเจาะลึกข้อมูลเหล่านี้มากขึ้น
ฉันเรียนรู้ที่จะไม่ประมาทการบูรณาการข้ามระบบ เมื่อมองจากระยะไกล ฟังดูค่อนข้างง่ายเสมอ หากเป็นเช่นนั้น ให้ซิงค์วัตถุในระบบ A กับวัตถุเดียวกันในระบบ B แต่ยิ่งคุณเข้าใกล้จุดนั้นมากเท่าไร คุณก็จะค้นพบความแตกต่างมากขึ้นเท่านั้น ความแตกต่างเล็กๆ น้อยๆ ขีดจำกัดอัตรา API สภาพการแข่งขัน การลองใหม่และการไม่มีค่าเดิม และมุมอื่นๆ อีกมากมาย ปีศาจอยู่ในรายละเอียดเสมอ และงานที่ลูกค้าของคุณพยายามทำให้สำเร็จด้วยการบูรณาการเหล่านี้มักจะคล้ายกันแต่โดยพื้นฐานแล้วมีเอกลักษณ์เฉพาะตัว การบูรณาการจะซับซ้อนมากเมื่อคุณเข้าใจได้ลึกซึ้งยิ่งขึ้น และอย่าประมาทมัน
9. การสร้างการบูรณาการที่ปรับใช้ได้ง่ายช่วยขจัดอุปสรรค แต่จะลด TAM
การบูรณาการที่ใช้งานง่ายที่สุดคือเลเยอร์ของนามธรรมที่อยู่ด้านบนของความสามารถหลัก (เช่น บล็อก API หรือ iPaaS) พวกมันขจัดแรงเสียดทานได้มาก ซึ่งมักจะทำงานนอกกรอบ สิ่งที่ฉันตระหนักตลอดหลายปีที่ผ่านมาก็คือ การสร้างการผสานรวมที่ปรับใช้ในวงกว้างนั้นเป็นเรื่องยากมาก เนื่องจากทุกบริษัทมีความต้องการ การตั้งค่า และความยุ่งยากด้านไอทีภายในที่แตกต่างกันออกไป
การสร้างนามธรรมเหล่านี้ทำให้ง่ายต่อการนำไปใช้ แต่จะลด TAM ลงอย่างมาก ซึ่งจะทำให้ลูกค้าใช้สิ่งเหล่านี้น้อยลง เมื่อเทียบกับเวอร์ชันที่ซับซ้อนกว่าแต่ทรงพลัง
10. AI จะเปลี่ยนวิธีการสร้างการบูรณาการโดยพื้นฐาน
อย่างไรก็ตาม ฉันเชื่อว่ามันจะแตกต่างออกไปสำหรับการบูรณาการเชิงกำหนด ปริมาณสูง และการบูรณาการแบบไดนามิกที่ไม่สามารถคาดเดาได้ ประสบการณ์นักบินร่วมจะเร่งความเร็วผู้ใช้ในเครื่องมือ iPaaS เช่น Zapier หรือ Workato ได้อย่างมาก ในขณะเดียวกันก็สร้างกระบวนการอัตโนมัติที่ทำซ้ำได้ ปริมาณสูง และคาดการณ์ได้
“ตัวแทน AI จะขจัดความจำเป็นในการสร้างการบูรณาการในกิจกรรมที่มนุษย์กระตุ้น”
สิ่งนี้จะช่วยเร่งความเร็วดังกล่าว ขณะเดียวกันก็รักษาความน่าเชื่อถือในปัจจุบันและพฤติกรรมที่กำหนดได้ของการบูรณาการเหล่านี้ในท้ายที่สุด ตัวแทน AI ที่สามารถให้เหตุผลว่าเครื่องมือใดที่จะใช้และปรับให้เข้ากับอินพุตแบบไดนามิกและคาดเดาไม่ได้ จะขจัดความจำเป็นในการสร้างการบูรณาการใดๆ (นอกเหนือจากความสามารถของ API) ในกิจกรรมที่กระตุ้นโดยมนุษย์ เช่น การรายงาน การสำรวจข้อมูล หรือการขอความช่วยเหลือ
บทเรียนสำหรับชีวิต
ประสบการณ์การทำงานที่ Intercom จะเป็นตัวกำหนดวิธีการทำงานด้านวิศวกรรมและการจัดการตลอดอาชีพการงานของฉันเสมอ ฉันอยากจะกล่าวขอบคุณมากสำหรับทุกคนที่ฉันร่วมงานด้วย และนั่นช่วยฉันสร้างบทเรียนเหล่านี้ตลอดหลายปีที่ผ่านมา อินเตอร์คอมเป็นบริษัทที่พิเศษอย่างแท้จริง
หากคุณต้องการติดตามงานเขียนของ Kuba คุณสามารถชมภาพสะท้อนของเขาเกี่ยวกับการจัดการด้านวิศวกรรมเพิ่มเติมได้ที่นี่