พัฒนา POS น่าเบื่อจริงดิ

พูดคุยกับ Product Owner “Privage POS” ค่าว คมเกียรติ กันชัย

หากพูดถึงโปรแกรม POS (Point of Sale) นักพัฒนาหลายคนถึงกับต้องร้องยี๊!! ไม่ใช่เพราะมันยาก จนไม่อยากทำนะ แต่ใครๆก็ทำกัน ง่ายจะตาย ก๊อปปี้ก็ง่าย เห็นมาตั้งแต่สมัยรุ่นพ่อรุ่นแม่แล้ว กับไอแค่โปรแกรมคิดเงินเนี่ย

วันนี้เราจะมาสัมภาษณ์คุณ “ค่าว คมเกียรติ กันชัย” กันในฐานะที่เป็น Product Owner ผู้ที่ปลุกปั้น Privage POS สำหรับผับและร้านอาหารกลางคืนมาตั้งแต่ตั้งไข่ และถือว่าเป็นผลิตภัณฑ์ตัวที่ 2 ของบริษัทกันครับว่ามีมุมมองต่อตลาด และการพัฒนาโปรแกรม POS ที่ใครๆก็มองว่าน่าเบื่ออย่างไร

Q: แนะนำตัวสักนิดนึงครับ

สวัสดีครับ ผมคมเกียรติ กันชัย เป็น Developer ชาวเหนือแท้ ๆ มัธยมจบโรงเรียนยุพราชวิทยาลัย จังหวัดเชียงใหม่ ส่วนปริญญาจากภาควิชาวิศกรรมคอมพิวเตอร์ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรีหรือที่ใครๆเรียกว่าบางมด มีความฝันที่จะสร้าง Software ที่ perfect (สำหรับตัวเอง) ขึ้นมาสักตัวนึง

Q: เล่าสรุปให้ฟังหน่อยครับว่า Privage POS คือผลิตภัณฑ์อะไร แตกต่างจาก POS เจ้าอื่นๆในตลาดอย่างไร

Privage POS ก็ตามตัวเลยครับ เป็น POS ของ บริษัท Privage เป็นโปรแกรมสำหรับจัดการร้านค้าประเภท Pub & Restaurant ขนาดกลางขึ้นไป

Q: เข้ามาเป็น Product Owner ของ Privage POS ได้อย่างไร

แรกเริ่มเดิมทีผมกับ Smith Krengkrud ก็ทำ Privage Membership กันแหละครับและเราก็เห็นพ้องต้องกันหมดว่า ถ้าเราทำ Membership เราก็ต้องทำ POS มันถึงจะครบวงจร ประจวบเหมาะพอดีมีโอกาสเข้ามา เลยได้จับพลัดจับผลูได้ทำ Product นี้ครับ

Q: แรกเริ่มเดิมทีเคยคิดไหมว่าอยากพัฒนา POS

ตอบอย่างไม่คิดเลยครับว่า “ม่ายยยยย” เพราะเราคิดว่า POS มันจะท้าทายอะไรกัน ไม่ต้องเรียนมหาวิทยาลัย ก็ซื้อหนังสือสอนเรื่อง database ก็มีตัวอย่างเยอะแยะไป ใครๆ ก็ทำได้

Q: ความรู้สึกแรกที่รู้ว่าบริษัท Privage Co., Ltd. จะต่อยอดไปทำ POS

คิดว่า “ก็ดีนะ” เพราะจะได้ปิดจุดอ่อนในการขยาย Privage Membership สำหรับลูกค้าที่ต้องการใช้ POS หรือมี POS อยู่แล้ว

Q: ทำไมถึงตัดสินใจรับทำ

ต้องบอกว่าช่วงนั้นกำลังธาตุไฟเข้าแทรก หลังจากเข้ามาทำ Privage ได้ประมาณปีก็อยากปล่อยของเต็มแก่ เพราะโดยปกติแล้วเป็นคนชอบศึกษาพวก technology ใหม่ ๆ ทีนี้พออ่านมาก ๆ เข้า ไม่มีที่ให้ได้ใช้จริงเราก็รู้สึกว่า ถ้าอ่านไปแต่ไม่เคยใช้จริง ๆ จะบอกว่า “รู้” หรือ “ทำเป็น” มันก็ดูจะหลอกตัวเองหน่อยๆ เลยรับโปรเจ็คนี้มา ใส่ Technology ทุกอย่างที่ตัวเองอยากลอง หรือ technology ที่ชอบเข้าไปแบบจัดเต็ม

Q: ปัญหาที่เจอในตอนเริ่มต้น

ปัญหาแรกและเป็นปัญหาหลักเลยคือ “POS คืออะไร…” ตอบแบบกำปั้นทุบดินเลยก็ Point Of Sale ไงหละ… แล้ว Point Of Sale คืออะไร??? ปัญหาแรกคือการนิยามคำนี้เลยก็ว่าได้ว่าจริงๆ มันคืออะไร Scope แค่ไหนคือ POS สิ่งที่ POS ต้องมีคืออะไรบ้าง จากตรงนี้ต้องทำการบ้านหนักมาก ตั้งแต่หา Inspiration จาก POS อื่นๆ คุยกับเจ้าของร้านที่ใช้ POS ในมุมต่างๆ และสุดท้ายก็ค่อยๆ คลำทางมาเรื่อยๆ

Q: คิดว่าขั้นตอนไหนยากและท้าทายที่สุดในการพัฒนา

การทำความเข้าใจความต้องการของผู้ใช้งาน และการหา Best Practice ของ workflow สำหรับ POS ตั้งแต่ต้นจนจบการใช้งาน ด้วยความที่เราทำแต่ Software มาโดยตลอด เวลาที่เราไปทำการวิเคราะห์หรือศึกษาตัว “ระบบ” ที่เค้าทำงานกันจริง ๆ จะติดภาพในมุมของซอฟต์แวร์เป็นส่วนใหญ่ ซึ่งถือว่าเป็นอุปสรรคที่ทำให้เราเข้าใจระบบต่างๆ ได้ยากขึ้น เพราะในการทำงานจริงๆ บางอย่างที่ดูไม่ Make Sense กลับเป็นสิ่งจำเป็น และในทางกลับกัน สิ่งที่ดูไม่จำเป็นกลับเป็นสิ่งปกติที่ทำกัน

Q: มีอะไรบ้างที่ต้อง Concern ในการพัฒนา POS

สิ่งที่ต้องระวังในการพัฒนา POS (และรวมถึง Software อื่น ๆ)ด้วยคือ Business Logic และ Business Workflow พูดง่ายๆ ก็คือความเข้าใจในเรื่องของ requirement เพราะก่อนที่เราจะพัฒนา เราก็ต้องออกแบบก่อน และก่อนจะออกแบบเราก็ต้องมีความเข้าใจในสิ่งที่เราออกแบบเป็นอย่างดี อย่างเช่น POS เนี่ย จะเป็นอะไรที่มี workflow ยุบยับและสามารถย้อนกลับได้เกือบทุกขั้นตอน ทุกๆ จุดที่ออกแบบต้องคำนึงถึงเรื่องเหล่านี้ด้วย

Q: พอเล่าเทคโนโลยีคร่าวๆ ที่เลือกใช้และเหตุผลให้ฟังหน่อย

ใน Privage POS จะแบ่งการทำงานออกเป็น 5 ส่วนที่แยกจากกันได้แก่

  1. โปรแกรมจุดขาย ซึ่งได้แก่ Cashier ส่วนจัดการครัวและบาร์น้ำ ซึ่งทั้งหมดเป็น Desktop App โดยเราใช้ Vue.JS ในการทำ UI Interface และใช้ ElectronJS เป็น App Container เพื่อติดต่อกับ Hardware เช่น Thermal Printer
  2. Back Office หรือส่วนจัดการ ซึ่งเราใช้ Django เป็น พื้นฐาน
  3. Report & Analytic เป็น Web Application พัฒนาด้วย React.JS
  4. Mobile Application เป็นส่วนที่ใช้สั่งอาหารและจัดการโต๊ะในร้านค้าสำหรับพนักงานเสริฟ พัฒนาโดยใช้ React Native เพื่อให้รองรับการทำงานบน iOS และ Android
  5. Data Back Bone ส่วนนี้เรามีการใช้ technology หลายตัวเพื่อความลื่นไหลในการทำงาน เช่น CouchDB PouchDB ส่วน Database หลักนั้นเราใช้ Percona เป็นหลัก

Q: จริงๆแล้ว POS นั้นง่ายและน่าเบื่ออย่างที่เค้าว่ากันจริงไหม

จริงครึ่งนึงไม่จริงครึ่งนึง เราต้องตอบคำถามทีละข้อ “POS นั้นง่าย” และ “POS น่าเบื่อ”

สำหรับผู้ใช้งานแล้ว การที่มันง่ายและน่าเบื่อ ในมุมของผมถือว่ามันใช้ได้และตอบโจทย์นะ ส่วนสำหรับ developer นั้นมีอะไรให้ทำอีกมากเพื่อทำให้มันดีขึ้นและทำให้ผู้ใช้งาน ไม่เบื่อ และสำหรับคน analyze & design (ไม่ใช่ UI Design นะครับ) ถือว่าเป็นโจทย์ที่ไม่ง่ายเลย เพราะ POS นั้นเมื่อนำไปใช้กับหลายๆ Business มันจะมีความต้องการหลักสำหรับแต่ละ Business ไม่เหมือนกัน กลายเป็นโจทย์ใหญ่คือ
จะออกแบบให้ “รองรับส่วนใหญ่” หรือออกแบบให้ฉลาดสำหรับ Business เฉพาะด้าน

Q: ขลุกอยู่กับ Privage POS มาปีกว่าแล้ว มุมมองต่อ Software POS เปลี่ยนไปบ้างไหมจากตอนแรก อย่างไร

แรกเริ่มนั้นเคยคิดว่าการแข่งขันในตลาดสำหรับ POS เป็น Red Ocean ใครๆ ก็ทำ ทำกันมานาน มีทั้ง Offline/Online, Desktop App/Web App, Android app/ iPad app ซึ่งที่กล่าวมาทั้งหมดก็คือโอกาสที่เพิ่มขึ้นมา แต่มันไม่ได้เปิดตลาดใหม่ขึ้นมาเลย เพราะ Business ก็คงเดิม ความต้องการของ POS ก็คงเดิม แต่เมื่อทำไปทำมาเราก็ค้นพบว่า ยิ่งเราทำไปเรื่อยๆ เราสามารถที่จะสร้างตลาดใหม่ขึ้นมาเองได้ POS สำหรับร้านอาหาร, Retail Shop, ร้านขายยา, และอื่นๆ ที่มีเรื่องการจัดการหน้าร้านและมีการรับทอนเงิน

Q: อนาคตของ Privage POS จะเป็นอย่างไรต่อไป

ตอนนี้เรามุ่งตลาด Pub & Restaurant ขนาดกลางถึงใหญ่ เราจะเข้าไปแก้ปัญหาเรื่อง Operation ของร้านที่มีลูกค้าจำนวนมากให้เป็นระบบระเบียบ และลดการทุจริตภายในร้านลง

Q: โปรเจคนี้ให้อะไรกับเรา

ให้มากกว่าที่คิดไว้มากเลยครับ เพราะเป็นงานที่เราต้องเริ่มต้นทำทุกอย่างเลยตั้งแต่ Analyse, Design, Develop, Deploy, Support ซึ่งบางจุดก็กดดันมากๆ ยิ่งตอนต้องเปลี่ยนระบบในร้านของลูกค้าใหม่นั้นต้องอยู่ที่ร้านลูกค้าทุกวันเป็นเดือนเลยทีเดียว บางทีก็ลองเดินเสิร์ฟอาหารเอง นั่งทอนตังเอง เพื่อเรียนรู้และเข้าใจหน้าที่ต่างๆ และนำสิ่งที่ได้กลับมาปรับปรุง บางทีเดินๆ ดูระบบอยู่เจอคนตีกันก็มีครับ 555+ จนตอนนี้ชินชาซะแล้ว

Q: สุดท้ายอยากให้ฝากถึงน้องๆที่อยากเติบโตขึ้นมาเป็น Product Owner ของบริษัทหน่อยครับว่าควรเตรียมตัวอย่างไร

ไม่ยากครับ แค่เปิดใจรับฟัง หมั่นสังเกต หมั่นตั้งคำถาม ทดลองเป็นผู้ใช้และผู้ออกแบบใน product แนวนั้นๆ เพื่อเก็บไอเดีย วิเคราะห์จุดดีเสียของ Product ต่างๆ ติดตาม technology หรือ solution ใหม่ๆ เพื่อเป็น idea ในการสร้าง solution สำหรับปัญหาต่างๆ เมื่อโอกาสมาถึง เราจะได้พร้อมสำหรับโอกาสนั้นครับ