17 ตุลาคม 2564

Low Code != Low Effort


หลังจากที่เห็น Clip พูดถึง Low Code ว่าช่วยทำให้เขียนโปรแกรมได้ง่ายขึ้น เร็วขึ้น ก็รู้สึกว่าทำไมมันช่างต่างจากที่ผมเคยสัมผัสและได้ยินจากปากคนที่เคยใช้มาเสียเหลือเกิน ผมก็เลยอยากจะเล่าให้ฟังแบบ "อาศัยความรู้สึก" เป็นหลัก ไม่ได้ให้ใครจะมาคล้อยตาม เพียงแต่กระตุกให้คิดสักนิดนึง

ในโลกของ Low Code มีวิธีตั้งต้นการพัฒนา App อยู่หลายวิธี แต่ส่วนใหญ่จะเริ่มด้วยสองวิธีนี้คือ เริ่มต้นด้วย User Interface ซึ่งตัวที่เริ่มต้นด้วยวิธีนี้ ได้แก่ Microsoft Power App เข้าใจว่าอีกหลายตัวก็เริ่มแบบนี้เหมือนกัน แต่เนื่องจากไม่ได้ผ่านมาในงานที่เคยทำจึงไม่ขอพูดถึง การพัฒนาในเริ่มต้นด้วย UI เป็นเรื่องที่ Front-End Developer ส่วนใหญ่เข้าใจได้ง่าย

อีกวิธีคือเริ่มต้นด้วย Data Model ซึ่งวิธีนี้เป็นวิธีที่ดีถ้ามีการออกแบบโครงการอย่างครบถ้วนก่อนลงมือ Implement ตัวอย่างผลิตภัณฑ์ที่ไปในแนวทางนี้ได้แก่ Mendix ซึ่ง Front-End Developer มักจะมีปัญหากับการพัฒนาในแนวทางนี้ แต่คนที่ทำงานกับข้อมูลมากๆ จะชอบ

คำถามก็คือความคาดหวังของคนส่วนใหญ่ที่อยากใช้ Low Code คืออะไร พัฒนาโปรแกรมได้เร็ว เขียนโปรแกรมน้อยลง ซึ่งความเห็นของผมคือ ขึ้นอยู่กับว่าคุณจะทำอะไร ซึ่งผมมีความเห็นตามนี้

Low Code Platform เหมาะกับ Application ประเภทไหน

ประเภทแรกคือ Stand Alone App ที่มีเพียง App กับ Database หรือ Data Object ไม่ได้มีการ Integrate กับภายนอก ทั้งหมดจบอยู่ใน App ซึ่ง Low Code Platform จะเหมาะกับ App แบบนี้มากที่สุด

ประเภทที่สองคือ App ที่มี Integration กับภายนอกผ่านตัว Low Code Platform เองที่เรียกว่า Connector ไม่ว่าจะเป็นของเจ้าของ Platform หรือ Third-Party Connectors ก็แล้วแต่ ซึ่งการเลือกใช้ Low Code กับงานประเภทนี้ ต้องคำนึงเสมอว่าในอนาคตนั้น App ของเราไม่ควรจะมีการ Integrate กับบริการที่ไม่มี Connector รองรับ

Low Code Platform ไม่เหมาะกับ Application ประเภทไหน

ผมเจองานสองแบบที่ไม่เหมาะกับ Low Code Platform เลย งานเหล่านี้ประเภทแรกได้แก่ งานที่อยากใช้ความสามารถของ Hardware เช่นอยากให้กล้องมือถือสแกน Bar-code ไม่ว่าจะเป็นมิติเดียวหรือสองมิติอย่าง QR Code ก็ตาม แบบนี้ต้องอาศัยการพลิกแพลงที่เยอะมากเพราะ Platform ส่วนใหญ่ไม่รองรับ

ประเภทที่สองคือมีการ Integration กับหลายระบบ แม้ว่าหลาย Platform จะรองรับ Integration กับ In-House Service ก็ตาม พอทำงานจริงๆ เจอท่าแปลกๆ อย่าง Asynchronous Callback หลาย Platform ก็ไปลำบาก เหมือนกัน (แต่ก็อีกงาน Development ทั่วไปคงเป็นแต่ Synchronous)

แล้วทำไม Low Code != Low Effort

ถ้าคุณทำงานในองค์กรขนาดเล็กที่ไม่ได้มี Integration เยอะแยะไปหมด ไม่มีความต้องการแปลกๆ ในการทำงาน Low Code อาจทำให้ Low Effort ในการได้สักแอปขึ้นมา แต่ถ้าคุณอยู่ในองค์กรใหญ่ Low Code Platform ทำให้ Effort ในการทำงานอาจจะไม่ได้ Low จริงเช่น

  1. ถ้าคุณต้องทำการเชื่อมต่อกับระบบอื่นๆ มากมาย แต่ไม่ได้มี Connector มากับ Platform นั้นๆ คุณคงต้องพลิกแพลงในการทำงานมาก บางกรณีอาจจะมากกว่าการเขียนแอปแบบปกติ
  2. บางทีคุณจะพบว่า Feature ที่คุณอยากได้ ไม่ได้อยู่ใน Low Code Platform ที่คุณเลือก แต่มีใน Platform อื่น คุณจะเลือกใช้อีก Platform หรือไม่ หรือทนใช้ของที่มีอยู่
  3. ตามที่ผมเข้าใจ Low Code Platform ไม่ได้ทำงานข้ามค่ายได้ ไม่เหมือนกับการเลือกใช้ Framework ต่างๆ ในการพัฒนา Software ตามปกติ

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

ต้องขอย้ำว่าบทความนี้เป็นความเห็นส่วนตัวล้วนๆ ถ้าใครมีประสบการณ์แบบอื่นลองมาเล่าสู่กันฟัง

ไม่มีความคิดเห็น:

แสดงความคิดเห็น