เคล็ดลับในการเลือก Technology Stack สำหรับคนเริ่มต้นทำ Startup ในไทย

การจะเริ่มต้นทำ Tech Startup หลังจากที่ได้ไอเดียแล้วว่าจะทำอะไร ก็จะมาถึงขั้นตอนว่าจะเลือกใช้ Technology ไหนทำ

การเลือก Technology สำหรับทำ Startup นั้น เป็นเรื่องที่ยากและใช้เวลาในการตัดสินใจนาน เหตุผลหลักๆ เป็นเรื่องของความกลัวครับ คือ

  1. กลัวว่า ถ้าเลือกไปเส้นทางไหนแล้ว จะย้อนกลับมาไม่ได้อีก
  2. กลัวว่า ถ้าเลือกผิด จะต้องรื้อทำระบบใหม่ตั้งแต่ต้น
  3. กลัวว่า ถ้าไม่ใช้ technology ที่ดังๆ จะดูไม่ดี
  4. กลัวว่า จะต้องใช้เทคโนโลยีที่ไม่ถนัด
  5. และอีกหลายๆ กลัว 🙂

ในฐานะที่แอดมินเคยผ่านประสบการณ์การเลือก Technology Stack มาหลายต่อหลายครั้ง ก็ได้ข้อสรุปวิธีการเลือก technology stack ง่ายๆ ออกมาเป็น “2 ควร 2 ไม่ควร” ดังนี้ครับ

Oracle-Stack-Technology-1

2 ควรประกอบด้วย

  1. ควรเลือก Technology ที่เราถนัดและเคยใช้มาก่อน
  2. ควรเลือก Technology ที่เหมาะกับงานที่กำลังจะทำ

2 ไม่ควรประกอบด้วย

  1. ไม่ควร เลือก Technology ที่ออกใหม่, กำลังเป็นเทรนด์ โดยเฉพาะที่ของที่ยังไม่มี stable version ออกมา
  2. ไม่ควร เลือก Technology ตามบริษัทใหญ่ๆ โดยไม่ได้เข้าใจถึงเหตุผลที่เค้าเลือก

โดยเวลาใช้ให้เน้น “2 ควร” ก่อน แล้วถ้าไม่แน่ใจว่า technology ที่ตัวเองถนัดเหมาะกับงานที่ทำหรือเปล่า เวลาไปเลือก technology อันอื่นให้ใช้ “2 ไม่ควร” ประกอบการตัดสินใจครับ

ยกตัวอย่างนะครับวิธีการใช้ “2 ควร 2 ไม่ควร” นะครับ

ตัวอย่างที่ 1

นายไก่ ต้องการที่จะทำระบบ Social Network คล้ายๆ Facebook แต่เน้นเฉพาะกลุ่ม นั่นคือกลุ่มคนรักการขับ Big Bike โดยในตอนแรกคาดว่าจะมีผู้ใช้ไม่เกิน 200 คน

นายไก่รู้จัก MEAN Stack (MongoDB, Express, Angular, node.js) แต่คิดว่า ถ้าจะทำคล้ายๆ Facebook ก็น่าจะไปเลือกใช้ technology คล้ายๆ Facebook เลย

สุดท้ายนายไก่ตัดสินใจเลือกใช้ PHP (HHVM), varnish, mysql, cassandra, memcache ตามที่ Facebook ใช้เผื่ออนาคตไปเลย ปรากฏว่า แทนที่จะใช้เวลาพัฒนา 2 เดือน นายไก่ใช้ไป 6 เดือน แถมมาด้วยปัญหาอีกมากมายเนื่องจากความซับซ้อนของระบบและการใช้ของที่ตัวเองไม่ถนัด

นายไก่ควรจะเลือก technology ที่ตัวเองถนัด เพื่อทดสอบไอเดียของตัวเองก่อนว่ามีผู้ใช้แน่ๆ แล้วพอคนใช้เริ่มเยอะขึ้น ระบบเริ่มไม่ไหว ค่อยมองหา technology ใหม่ๆ มารองรับ วิธีนี้ นายไก่จะสามารถทำสินค้าออกสู่ตลาดได้เร็วขึ้นมากๆ

LAMP-vs-MEAN

 

ตัวอย่างที่ 2

นายตู่ ต้องการที่จะทำระบบเก็บข้อมูลบัตรประชาชน โดยมี requirement คือต้องสามารถรองรับการเติบโตข้อมูลมากถึง 80 ล้าน records สามารถทำการเพิ่ม field ได้แบบ dynamic และดึงข้อมูลได้อย่างรวดเร็ว ช้าสุดห้ามเกิน 1 วินาที

นายตู่ รู้จัก LAMP stack (Linux, Apache, Mysql, PHP เป็น stack ที่ได้รับความนิยมที่สุด ระดับเบื้องต้นเหมือน นายตู่เลยเลือกใช้ LAMP เลย ผลปรากฏว่า ทำยังไงก็ไม่สามารถทำให้ระบบเร็วได้ นั่นเป็นเพราะ นายตู่ถนัด LAMP แต่เป็นแค่ระดับเบื้องต้น ดันไปเลือกใช้ technology ที่ถนัด แต่ไม่ใช่ของที่เหมาะกับงาน

นายตู่ ควรจะไปทำ research ทุกครั้งก่อนเริ่มงาน ว่าสิ่งที่เรารู้มันมากพอจะเอาไปตอบโจทย์ความต้องการของงานที่จะทำหรือไม่ ดังนั้นในกรณีนายตู่

  1. ควรเลือก Technology ที่เราถนัดและเคยใช้มาก่อน -> ถูกต้อง
  2. ควรเลือก Technology ที่เหมาะกับงานที่กำลังจะทำ -> ไม่ถูก ควรจะต้องลองทดสอบความรู้ที่มีด้วยการทำ Proof Of Concept ง่ายๆ ก่อน (เช่น เขียนโปรแกรมยัดข้อมูลใส่ database 80 ล้าน records แล้วลอง query) ถ้าไม่ผ่าน ก็ให้ไปหา technology ใหม่มาตอบโจทย์แทน โดยการเลือก technology ใหม่ ให้ใช้ “2 ไม่ควร” ในการเลือก

 

นี่คือเคล็ดลับที่แอดมินใช้เวลาที่ต้องเลือก technology ในการทำ Project ใหม่ๆ ครับ หวังว่าจะเป็นประโยชน์กับเหล่า Tech Startup ที่กำลังตัดสินใจเลือกเส้นทางในการสร้างความฝันของตัวเองนะครับ

Comments

comments

No comments

Leave a Reply