บริษัทเทคโนโลยี แน่นอนว่าต้องมีเทคโนโลยีเป็นแกนกลาง ทำให้ Tech Stack หรือชุดของเทคโนโลยี มีความสำคัญต่อธุรกิจและนวัตกรรม รวมไปถึงความรู้ความสามารถของคนในทีมด้วย
สตาร์ตอัพมักเริ่มพัฒนาระบบใหม่ทั้งหมดเอง ทำให้มีโอกาสเลือกใช้เทคโนโลยีโดยไม่ต้องคำนึงถึงระบบเดิมที่เคยใช้มา สามารถเลือกใช้ตามความเหมาะสมเพื่อเน้นการขับเคลื่อนธุรกิจ สร้างนวัตกรรมอย่างมีประสิทธิภาพมากที่สุด
ในบทความนี้ คุณพศวีร์ เวชพาณิชย์ CTO ของ RentSpree สตาร์ตอัพคนไทยด้านอสังหาริมทรัพย์ในสหรัฐอเมริกา เล่าถึง Tech Stack ที่บริษัทเลือกใช้งานมาและความสำคัญของกระบวนการตัดสินใจว่าควรเลือกเทคโนโลยีอย่างไร
RentSpree เป็นสตาร์ตอัพที่สร้างแพลตฟอร์มอสังหาริมทรัพย์ เชื่อมต่อระหว่างเจ้าของอสังหา, ตัวแทนให้เช่า, และผู้เช่า โดยให้บริการยืนยันตัวตน และตรวจสอบประวัติผู้เช่าบ้าน หรือที่อยู่อาศัยในสหรัฐฯ บริษัทได้รับเงินลงทุนจากกลุ่มนักลงทุนนำโดย 645 Ventures มูลค่า 2.3 ล้านดอลลาร์เมื่อเดือนตุลาคมปีที่ผ่านมา
คุณพศวีร์ เล่าว่า Tech Stack ถือว่าเป็นส่วนสำคัญต่อการขับเคลื่อนธุรกิจ เพราะเป็นเครื่องมือที่จะช่วยให้บริษัทสร้างสินค้าออกมาได้ แต่ในความเป็นจริงแล้วสตาร์ตอัพแต่ละแห่งไม่จำเป็นต้องมี Tech Stack ชุดเดียว สามารถเปลี่ยนชุดเทคโนโลยีเมื่อเวลาเปลี่ยนไป ตามความเหมาะสมของ product ที่เปลี่ยนแปลงไป ตัวอย่างที่เห็นได้ชัดคือเฟซบุ๊กที่ตอนเริ่มต้นก็ใช้ PHP ที่ใช้กันทั่วไป แต่หลังจากนั้นก็มีการย้ายไปใช้ Big Data เมื่อมีฐานผู้ใช้งานมากขึ้นจนเทคโนโลยีแบบเดิม ไม่สามารถรองรับได้อีกต่อไป
เงื่อนไขอื่นๆ ของการเลือก Tech Stack มีอีกหลายปัจจัย ไม่ว่าจะเป็นเป้าหมายทางธุรกิจในช่วงเวลาที่เลือก, กลุ่มเป้าหมายของทีมงานที่กำลังสร้าง, วัฒนธรรมองค์กร, และตัวสินค้าหลักเป็นอะไร
คำแนะนำสำหรับสตาร์ตอัพช่วงตั้งบริษัทแรกๆ คือเลือกในสิ่งที่ทีมงานมั่นใจว่าจะสร้าง Product ออกมาให้เร็วที่สุด ทำ Product เพื่อสร้างคุณค่าให้กับผู้ใช้ได้ก่อน แต่ในระยะหลังจากนั้น เงื่อนไขสำคัญอย่างหนึ่งที่ควรนำมาพิจารณาคือการขยายทีม การเลือก Tech Stack ที่มีความนิยมอยู่แล้วในตลาด ทำให้หาทีมงานได้ง่ายขึ้น
RentSpree เลือกใช้ frontend เป็น React และ backend เป็น Node.js/Express เพื่อให้เป็นจาวาสคริปต์ทั้งสองฝั่ง ไม่ต้องแยกทีมโปรแกรมเมอร์ตามภาษาที่ใช้ โดยตอนที่เริ่มเลือกก็มีความเสี่ยง เพราะยังมีคนใช้ไม่มากนัก แต่ RentSpree เชื่อว่าเทคโนโลยีทั้งสองตัวมีแนวโน้มจะได้รับความนิยมในอนาคต จึงตัดสินใจเลือกสองตัวนี้
แต่ช่วงหลัง เริ่มมีงานที่เป็น microservice มากขึ้น มีความต้องการฟีเจอร์อื่นๆ เช่น logging, authentication, หรือ tracing ทีมงานก็เตรียมจะเปลี่ยนไปใช้งาน KrakenD ที่ประสิทธิภาพดีกว่า
ส่วนกระบวนการพัฒนา RentSpree ใช้แนวทาง Agile เพราะซอฟต์แวร์ที่พัฒนามีความเปลี่ยนแปลงบ่อยครั้ง กระบวนการควบคุมคุณภาพโค้ดอาศัยการทำ TDD และ code review ภายในทีม รวมไปถึงใช้เครื่องมืออย่าง GitLab CI สำหรับ build/test/code quality เพื่อเพิ่มความเร็วและทำให้ process เป็นไปอย่างอัตโนมัติ โดยมี Code Climate มาควบคุมคุณภาพโค้ดไว้อีกขั้น แนวทางนี้ทำให้กระบวนการทำงานมีประสิทธิภาพ Build โค้ดออกมาได้อย่างรวดเร็วและมีคุณภาพ
สำหรับการจัดการ deployment ทาง RentSpree ระบุว่าตอนนี้ระบบยังไม่ซับซ้อนนัก จึงใช้ Helm สำหรับจัดการ โดยมีเทมเพลตสองชุดสำหรับ frontend และ backend จากนั้นจัดการ GitOps ด้วย ArgoCD ที่จะคอยดู Helm Chart ว่ามีอัพเดตหรือไม่ ระบบเหล่านี้อาศัย Kubernetes เป็นพื้นฐานซึ่งก็น่าจะเป็นมาตรฐานใหม่ในอุตสาหกรรมทุกวันนี้ไปแล้ว
หากใครสนใจรายละเอียด Tech Stack ที่ RentSpree ใช้งาน สามารถอ่านบล็อกบน medium หรือหากสนใจทำงานร่วมกับ RentSpree อ่านรายละเอียดตำแหน่งที่เปิดรับอยู่ได้ที่ Career at RentSpree