แนวทางการใช้ Full Stack ภายในองค์กร

Sommai Krangpanich
pnpsolution
Published in
2 min readFeb 21, 2022
แนวทางการใช้ Full Stack ภายในองค์กร
แนวทางการใช้ Full Stack ภายในองค์กร

ในปัจจุบันความต้องการด้าน IT มีสูงขึ้นอย่างก้าวกระโดด เกือบทุกส่วนงานมีความต้องการใช้งาน Software Application ไม่ว่าจะเป็น Web, Mobile ซึ่งสวนทางกับจำนวน Programmer ซึ่งนับวันก็จะหายากขึ้นเรื่อย ๆ ปัญหานี้เกิดขึ้นมาต่อเนื่องเป็น 10 ปีและไม่มีทีท่าว่าจะลดลง มีแต่จะเพิ่มขึ้นเรื่อย ๆ

สาเหตุสำคัญของการเพิ่มของปริมาณการขาดแคลน Programmer นั้นส่วนหนึ่งมาจาก Technology ในการพัฒนา Software นั้นมีการเปลี่ยนแปลงตลอดเวลาและเพิ่มขึ้นอย่างต่อเนื่อง ของใหม่ ๆ เกิดขึ้นตลอดเวลา ทำให้ Programmer นั้นต้องเรียนรู้สิ่งใหม่ ๆ ตลอดเวลา ทำให้บางครั้งเด็กจบใหม่มาก็ยังไม่สามารถทำงานได้ต้องมาปรับพื้นฐานให้ตรงกับที่ทางทีมงานใช้อีกอย่างน้อย 1 ถึง 3 เดือน

องค์กรหลายที่ก็เริ่มใช้วิธีการจ้าง Outsource ซึ่งมีข้อดีตรงที่สะดวก พร้อมใช้งาน แต่ข้อเสียคือราคาที่ค่อนข้างสูง บางครั้งคุม Budget ไม่ได้ และเมื่อหมดเวลาจ้างงานก็ถือว่าจบกัน แต่โดยปกติแล้วงานด้าน Software นั้นมักจะต้องมีการดูแลอย่างต่อเนื่อง นั่นหมายความว่าก็ต้องมีการหาคนมาดูแลงานต่ออยู่ดี ซึ่งส่วนใหม่มักใช้คนภายในองค์กรเอง ซึ่งปัญหาที่ตามมาคือไม่ได้ทำ Project มาตั้งแต่แรกทำให้บางครั้งต้องใช้เวลานานในการไล่ปัญหา

บางองค์กรใช้วิธีจัดจ้างแบบ Turn Key คือให้ทำเป็น Solution ข้อดีของวิธีการนี้คือคุม Budget ได้ดีกว่าถ้า Requirement ชัดเจน เพราะในหลาย ๆ โครงการมันมี Requirement งอกเกินออกมาจากตอนเริ่มต้น ทำอาจจะเกิดอาการงบบานปลายได้ ข้อเสียของการ Turn Key คือ ยังคงต้องใช้คนภายในองค์กรมาช่วยดูแลในหลาย ๆ ส่วนของขั้นตอน เริ่มตั้งแต่การเก็บ Requirement จนถึง Support หลัง Go Live ไปแล้ว

Full Stack คืออะไร

การพัฒนา Software โดยทั่วไปมักจะแยกเป็น 2 ส่วนหลัก ๆ คือ

  1. Back End Developer รับหน้าที่ทำ API เพื่อเชื่อมต่อกับ Database
  2. Front End Developer รับหน้าที่ทำ UX / UI เพื่อเรียกมาที่ API
รูปแบบการพัฒนแบบ Back End และ Front End

Full Stack คือการที่นักพัฒนา (Programmer) คนเดียวสามารถพัฒนา Program ได้ทั้งสองส่วนคือทั้ง Back End และ Front End นั้นเอง

ข้อดี

  1. ใช้นักพัฒนาน้อยลง จากเดิมที่ 1 Application ต้องใช้นักพัฒนาอย่างน้อย 2 คนก็จะทำให้สามารถลดเหลือ 1 คนได้ซึ่งตอบโจทย์ต่อความต้องการด้านกำลังพลเป็นอย่างมาก
  2. เพิ่มประสิทธิภาพในการแก้ปัญหาให้ดียิ่งขึ้น โดยปกติผู้ใช้งานพบเจอปัญหาอะไรมักจะแจ้งไปที่ส่วนทีม Front End ก่อนเสมอเพราะเป็นสิ่งที่ผู้ใช้งานพบเจอ แต่บางครั้งพอไล่ปัญหาเสร็จอาจจะพบว่าปัญหานี้เกิดจาก Back End ก็ต้องส่งปัญหาต่อไปยังทีม Back End พอ Back End แก้เสร็จก็ส่งกลับมาให้ทดลอง วนไปวนมาหลายรอบ จนกว่าปัญหานั้นจะแก้เสร็จ ทำให้ต้องใช้ทั้งคนและเวลาในการแก้ปัญหานึง ๆ เยอะเกินความจำเป็น แต่สำหรับ Full Stack แล้วในทีมทุกคนสามารถไล่และแก้ปัญหาได้เลยทำให้ลดเวลางานได้เป็นอย่างดี
  3. เพิ่ม Productivity ในการทำ Software ถ้าแยกเป็น 2 ทีม คือ Front End และ Back End นั้น มักจะพบเจอปัญหา Wait State เช่น Back End รอ Front End เทส หรือ Front End รอ Back End เขียน API ให้ก่อนถึงทำต่อได้ ซึ่งเรื่องพวกนี้จะหมดไปเพราะ Full Stack นั้นสามารถแบ่งงานกันทำได้ทั้งส่วน Back End และ Front End นั่นเอง ทำให้เมื่อช่วงเวลาไหนส่วนงาน UI งานเยอะก็สามารถไปช่วยกันทำได้ เป็นต้น

ข้อเสีย

  1. นักพัฒนาต้องเรียนรู้มากกว่าเดิม จากเดิมที่เป็น Back End ก็อาจจะรู้ถึงวิธีการทำงานของ API ด้วยภาษาใดภาษาหนึ่งก็ได้ เช่น Java, C#, Node.JS, Go เป็นต้น แต่พอมาเป็น Full Stack นอกจาก API แล้วต้องทำ UI ด้วยเลยจำเป็นต้องศึกษาพวก HTML, CSS, Javascript เพิ่มเติมด้วย

Full Stack มี Stack อะไรบ้าง

คำว่า Stack ใน Full Stack หมายถึงชุดของ Software ที่ใช้ในการพัฒนาเพื่อประกอบเป็นชิ้นงานซึ่งใน ปัจจุบันนั้นมี Stack ที่ได้รับความนิยมอยู่ 3 Stack คือ

  1. MEAN Stack
  2. MERN Stack
  3. MEVN Stack

ทั้ง 3 Stack นั้นจะมีส่วนที่เหมือนกันอยู่ 3 ตัวและแตกต่างกันอยู่ 1 ตัว เรามาดูตัวที่เหมือนกันก่อน

  • M คือ MongoDB (สำหรับ NoSQL) หรือ MySQL (สำหรับ RDBMS) ทั้งนี้สามารถปรับเปลี่ยนไปตามการใช้งานการเก็บข้อมูลขององค์กรเราได้ ให้มองว่า Stack นี้คือรูปแบบการเก็บฐานข้อมูลเรา
  • E คือ Express เป็น framework สำหรับทำ REST API ซึ่งสามารถนำ Framework อื่นมาแทนได้ เช่น NestJS เป็นต้น
  • A คือ Angular, R คือ React และ V คือ Vue ทั้งสามตัวนี้รับหน้าที่ในการทำ UI สามารถเลือกตัวอื่นมาแทนได้เช่น Svelte เป็นต้น
  • N คือ Node.JS เป็น Javascript runtime ซึ่งเป็น Core หลักของทั้ง 3 Stack นี้

สำหรับท่านใดมีข้อสอบภามสามารถเข้ามาพูดคุยแลกเปลี่ยนกันได้ที่ facebook : pnpsolution หรือ web site : www.pnpsw.com ได้ครับ

--

--