ถ้าจะทำ Mobile App ควรทำเป็น Native หรือ Hybrid ดี?
คำถามยอดฮิตที่ผมเจอบ่อยที่สุด ไม่ว่าจะเป็นลูกค้าหรือนักพัฒนา
ถึงแม้ว่าผมจะเขียน Native Android App มาตลอด 8 ปี ผมก็ไม่สามารถพูดได้อย่างเต็มปากกว่า Native ดีที่สุด ต่อให้ Native จะมีความยืดหยุ่นในการพัฒนาและทำอะไรได้อิสระกว่า Hybrid ก็เถอะ แต่การตัดสินใจเลือกระหว่าง Native กับ Hybrid ก็ไม่ควรจะตัดสินกันด้วยข้อมูลเชิง Technical เท่านั้น เพราะจริงๆแล้วยังมีปัจจัยอื่นๆที่ใช้ในการตัดสินใจด้วยนะ
Product Characteristics
Product ของคุณเป็น Product ที่แข็งแรงอยู่แล้วหรือป่าว? มี Business ที่ซับซ้อนมากน้อยแค่ไหน? มีกลุ่มลูกค้าอยู่แล้วใช่มั้ย? หรือว่าคุณเพิ่งจะเริ่มทำ Product และต้องทำเป็นแอพเพื่อเข้าถึงกลุ่มลูกค้า? มี Value สูงมากหรือน้อยแค่ไหน?
User Target
กลุ่มลูกค้าเป็นแบบไหน? เป็นผู้ใช้ทั่วไปหรือว่าเฉพาะกลุ่ม? ครอบคลุมช่วงอายุไหนบ้าง? ทุกเพศทุกวัยหรือป่าว?
ส่วน Development Time หรือ Budget ให้เป็นปัจจัยรองลงมา เนื่องจากมันไม่ได้เกี่ยวกับตัว Product โดยตรง ถ้าเอา 2 ปัจจัยนี้มาใช้ในการตัดสินใจตั้งแต่แรก คำตอบของคุณจะกลายเป็น Hybrid เสมอ (ก็เพราะว่ามันเร็วและถูกไงล่ะ)
2 ปัจจัยนี้คือตัวบ่งชี้ถึงความเสี่ยงที่แอพจะต้องรับมือ
ไม่ว่าจะเป็น Product ที่มีขนาดใหญ่มากหรือ User ที่หลากหลายและมีจำนวนก็ย่อมมีความเสี่ยงมากขึ้นตามเช่นกัน
ความเสี่ยงแบบไหนล่ะ?
Product ที่มีขนาดใหญ่และอยู่ในตลาดอยู่แล้วจะบ่งบอกถึง Business ที่ซับซ้อน มีระบบการทำงานที่เยอะมาก และอาจจะมีการเพิ่ม Feature อะไรใหม่ๆจาก Product Owner หรือ Marketing เพื่อสร้างความแตกต่างจากคู่แข่งหรือเพิ่มกลุ่มลูกค้าให้เยอะมากขึ้น (ในขณะที่ Product เกิดใหม่จะทยอยเพิ่ม Feature พื้นฐานให้ครบถ้วนก่อน) ซึ่งเราไม่สามารถคาดเดาได้เลย
นอกจากนี้ Product ยิ่งมีขนาดใหญ่มากแค่ไหน ก็จะมี Value สูงขึ้นไปด้วย ดังนั้นการเปลี่ยนแปลงที่ไม่ทันเวลาหรือเกิดปัญหาบางอย่างขึ้นก็จะทำให้เกิดการสูญเสียมากเท่านั้นด้วยเช่นกัน
และ User ยิ่งเยอะ ยิ่งหลากหลาย ก็ยิ่งมีโอกาสที่จะเจอกับปัญหาจาก Device Fragmentation มากขึ้นเท่านั้น ทำให้เราต้องรับมือกับ Device ที่หลากหลายอยู่ตลอดเวลา ปัญหาที่เกิดขึ้นจาก Device เหล่านั้นก็จะหลากหลายตามด้วย
ดังนั้นความเสี่ยงที่ว่าไม่ได้จำกัดความอยู่แค่ว่าปัญหาเชิง Technical เท่านั้น แต่รวมไปถึงการเปลี่ยนแปลงของ Product ด้วย
หรือก็คือ
ทุกอย่างที่นักพัฒนาจะต้องทำในอนาคต = ความเสี่ยงที่จะต้องรับมือ
ควรเลือกตามความเสี่ยงที่จะต้องรับมือ
ถ้า Product มีความเสี่ยงสูงมาก การเลือก Native ก็จะช่วยให้รับมือกับปัญหาที่จะตามมาได้ดีกว่า เพราะว่าเราไม่รู้เลยว่าจะมีปัญหาแบบไหนเข้ามา จึงต้องเลือกสิ่งที่ยืดหยุ่นมากที่สุดเพื่อให้สามารถรับมือกับมันได้
ในขณะที่ Hybrid นั้นสามารถรับมือกับความเสี่ยงได้น้อยกว่า Native จึงทำให้เหมาะกับ Product ที่ประเมินแล้วว่ามีความเสี่ยงที่อยู่ในขอบเขตที่รับมือได้
ปัจจัยเสริมที่ไม่ควรมองข้าม นั่นก็คือ Development Knowledge
ถึงแม้ว่าคุณจะพิจารณาจาก Product และ User แล้วพบว่า Native ตอบโจทย์ที่สุด แต่ทีมพัฒนาของคุณมีความรู้ความเข้าใจและถนัด Hybrid อยู่แล้ว การจะเปลี่ยนให้ทีมพัฒนาไปใช้ Native ก็เท่ากับการเพิ่มความเสี่ยงให้มากขึ้นเข้าไปอีก เพราะว่าทุกคนในทีมต้องเริ่มต้นใหม่ เรียนรู้ใหม่ ทำความเข้าใจใหม่ (ถึงแม้ว่าจะไม่ได้เริ่มจาก 0 ก็เถอะ)
ดังนั้นการเลือกจาก Development Knowledge ที่มีอยู่ก็อาจจะทำให้ Product ไปได้ไวกว่าและราบลื่นกว่า
แต่ถ้ายังไม่มีทีมพัฒนา ก็ข้ามเรื่องนี้ไปได้เลย
จากนั้นค่อยมาดูเรื่อง Development Time กับ Budget
จริงๆแล้วเราสามารถตัดเรื่อง Development Time ทิ้งไปได้เลย เพราะไม่ว่าจะเลือกเป็น Native หรือ Hybrid ก็ไม่ได้ส่งผลในเรื่อง Development Time มากนัก มันขึ้นอยู่กับความชำนาญและความพร้อมของทีมพัฒนามากกว่า
แต่การเลือก Native หรือ Hybrid จะส่งผลกับ Budget โดยตรง เพราะ Native จะใช้ Resource เป็น 2 เท่าของ Hybrid จึงส่งผลทำให้มี Budget สูงเท่าตัวด้วยเช่นกัน
หรือจะเลือกทั้งคู่ก็ได้นะ
อย่างที่บอกไปในตอนแรกว่าการเลือกใช้อันไหนควรจะเลือกตามความเหมาะสมของ Product และ User แต่ไม่ได้หมายความว่าต้องเลือกอย่างใดอย่างนึงเท่านั้นนะ เพราะว่าจริงๆแล้วเราสามารถแบ่ง Product ออกเป็น Product ย่อยๆก็ได้ หรือแบ่งเป็น Phase ย่อยๆก็ดี
สมมติว่า ร้านอาหารยอดฮิตที่มีสาขาอยู่ทั่วไทยที่อยากจะทำแอพมือถือเป็นของตัวเอง จึงเลือกใช้ Native เพื่อทำเป็นแอพให้กับฝั่งลูกค้า และเลือกใช้ Hybrid เพื่อทำเป็นแอพให้กับพนักงานในร้าน (แยกเป็น 2 แอพ)
เพราะการเลือกอย่างใดอย่างหนึ่งมันยากเกินไป การเลือก Native เพื่อรับมือความเสี่ยงจากฝั่งลูกค้า แล้วเลือก Hybrid กับฝั่งพนักงานเพราะว่าสามารถควบคุมความเสี่ยงได้ จึงเป็นทางเลือกที่ดีกว่า
สมมติว่า Startup ที่ต้องการสร้าง Product เป็นแอพตัวหนึ่งขึ้นมา จึงเลือกใช้ Hybrid ในตอนแรก จนกว่าจะมั่นใจได้ว่า Product นั้นสามารถไปรอดได้ จึงเปลี่ยนมาใช้ Native เพื่อให้ Product สามารถเปลี่ยนแปลงได้ในระยะยาว
เพราะการเลือก Hybrid ในตอนแรกจะใช้ต้นทุนน้อยกว่า ซึ่งเหมาะกับ Product ที่อยู่ในช่วงตั้งต้น ซึ่งเป็นช่วง Product จะอยู่รอดได้หรือไม่ขึ้นอยู่กับ Business มากกว่า
แต่การจะทำทั้ง Native และ Hybrid ควบคู่กัน บอกเลยว่าทีมต้องพร้อมอ่ะ หรือไม่ก็จ้าง Vendor เอาเถอะ (จ้างแค่บางส่วนก็ได้)
สรุป
การจะเลือกใช้ Native หรือ Hybrid ในการทำแอพ อยากให้ประเมินจากความเสี่ยงก่อนครับ แล้วค่อยประเมินจากความสามารถของคนในทีมพัฒนา แล้วจึงประเมินจากปัจจัยอื่นๆตามหลัง
เพราะไม่ว่าจะเลือกเป็น Native หรือ Hybrid ก็ต้อง Trade-off เสมอ อยู่ที่ว่าอันไหนจะคุ้มค่ามากที่สุดกับ Product ของคุณต่างหากล่ะ
สุดท้ายนี้ ถ้าคุณมี Product ที่ใหญ่มาก และอยากจะทำแอพที่เป็น Native แต่ยังไม่มีทีมพัฒนา Native ฝีมือดีๆ มาจ้างพวกเราที่ Nextzy สิครับบบบบบ 😆❤️ เพราะที่ Nextzy เรามีทีมพัฒนาฝีมือดีที่รักและชำนาญการพัฒนาแอพด้วย Native เป็นชีวิตจิตใจ ที่รับมือกับความเสี่ยงมามากมายจนนับไม่ถ้วนแล้วนะ