มาทำ In-House Development กันเถอะ

Sommai Krangpanich
pnpsolution
Published in
2 min readJun 30, 2022
มาทำ In-House Development กันเถอะ
มาทำ In-House Development กันเถอะ

มีคนถามเข้ามามากมายว่าระหว่างจ้างพัฒนาโปรแกรม (Outsource), ซื้อโปรแกรมสำเร็จรูป(Package) และพัฒนาโปรแกรมใช้เองภายในองค์กร (In-House Development) อันไหนดีกว่ากัน ก่อนอื่นเราลองมาดูข้อดี/ข้อเสียของแต่ละอันกันก่อนนะครับ

จ้างพัฒนาโปรแกรม (Outsource)
จ้างพัฒนาโปรแกรม (Outsource)

จ้างพัฒนาโปรแกรม (Outsource)

รูปแบบคืออาจจะให้วิธีจ้างทั้งหมด (turn key) หรือจ้างบางส่วน หรือบางครั้งก็ใช้วิธีจ้างเป็น Manday มาทำงานให้ในบางช่วงเวลา

ข้อดี

  • สะดวกเพราะไม่ต้องมีทีม Dev เป็นของตนเองมีแค่ทีม Support พอ
  • คุมงบประมาณง่าย (ถ้า requirement ชัดเจน)
  • คุมเวลาโครงการได้ง่าย (ถ้าหาคนมาทำได้)

ข้อเสีย

  • โปรแกรมเมอร์หายาก
  • บางครั้งถ้า user ให้ reqirement คลุมเครือไม่ชัดเจนอาจจะส่งผลต่อแผนงานและงบประมาณได้ (ในกรณีจ้างแบบ Manday)
  • การต้องการเพิ่มเติม Feature หรือปรับแต่งบางอย่างเล็กน้อยจะเป็นเรื่องที่ยากลำบากมาก (ในกรณีจ้างแบบ Turnkey)
  • โดนทิ้งงาน (เป็นปัญหาที่เจอบ่อยมาก เห็นฟ้องร้องกันก็เยอะ)

สรุปการจ้างแบบ Outsource นั้นปัญหาส่วนใหญ่เกิดจาก Requirement เป็นตัวแปรสำคัญในการที่จะทำให้ Project สำเร็จหรือไม่ เพราะบางครั้งการให้ Requirement บาง ๆ คร่าว ๆ ไม่ลงรายละเอียดมากก็จะทำให้บริษัทที่มารับงานนั้นประเมิณราคาต่ำกว่าเนื้องานจริง ๆ ทำให้เกิดปัญหาบานปลายได้

อีกส่วนนึงเกิดจากบางครั้งผู้มารับงานอาจจะไม่มีประสพการณ์เพียงพอ พอรับงานไปแล้วเริ่มทำไม่ไหวก็ทิ้งกันดื้อ ๆ ก็ส่งปัญหาต่อผู้ว่าจ้างได้

สุดท้ายภาระก็ไปตกอยู่ที่ผู้ว่าจ้างที่จะต้องมาแบกปัญหาไว้คนเดียวเพราะว่าจ้างแล้วไม่ได้งานแต่เสียเงินไปแล้ว แต่ถ้าเจอบริษัทที่มีความสามารถคุย Requirement กันลงตัวก็จะได้งานที่เหมาะสมกับราคา จุดนี้เลยกลายเป็นความเสี่ยงหลักของการทำ Outsource

ซื้อโปรแกรมสำเร็จรูป (Package)
ซื้อโปรแกรมสำเร็จรูป (Package)

ซื้อโปรแกรมสำเร็จรูป (Package)

รูปแบบคือไปหาซื้อ Software ที่พัฒนาไว้เสร็จแล้ว นำมาปรับแต่งให้เข้ากับการทำงานขององค์กรของเรา บางครั้งอาจจะต้องมีการปรับเปลี่ยนการทำงานของเราเองเพื่อให้เข้ากับ Software ด้วย

ข้อดี

  • พร้อมใช้งาน
  • คุมเวลาโครงการได้ง่าย (ถ้าไม่ต้องปรับแต่งอะไรมากมาย)
  • คุมราคาโครงการได้ง่าย
  • ไม่ต้องมีโปรแกรมเมอร์ ใช้แต่ Support กับ Implementor

ข้อเสีย

  • มีบาง Feature ที่เราไม่ต้องการใช้งานติดมาด้วย
  • โปรแกรมจะไม่ค่อยตรงกับงานขององค์กรแบบ 100% ต้องปรับเข้าหากัน
  • ปรับแต่งโปรแกรมเป็นไปได้ยาก (บางโปรแกรมต้องให้ผู้พัฒนาเป็นคนปรับแต่งให้ได้)
  • เชื่อมต่อไปยังระบบอื่นทำได้ค่อนข้างลำบาก (บางโปรแกรมเป็นระบบปิด)

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

In-House Development
In-House Development

In-House Development

รูปแบบคือการมีโปรแกรมเมอร์ภายในองค์กรเองเป็นทีมที่มีทั้ง Programmer, SA, PM, Tester, Support เพื่อพัฒนาโปรแกรมใช้เองภายในองค์กร

ข้อดี

  • สามารถพัฒนาโปรแกรมได้ตรงตามความต้องการของผู้ใช้งาน
  • บริหารจัดการเวลาโครงการได้ง่าย
  • บริหารจัดการงบประมาณโครงการได้ง่าย

ข้อเสีย

  • โปรแกรมเมอร์หายาก ต้องมีการจัดฝึกอบรมกันภายในเองเพื่อบรรเทาปัญหา
  • Tech Stack มีเยอะแล้วปรับเปลี่ยนเร็วทำให้ทีมปรับตัวลำบาก
  • Requirement มาเรื่อย ๆ ต้องมีระบบจัดการที่ดี

สรุปการทำ In-House Development นั้นเป็นการอุดช่องโหว่ของการทำ Outsource และการใช้ Sofware Package ตรงที่ในบางครั้งการทำ Project ถ้ามันใหญ่มาก ๆ ก็ควรที่จะตัดงานบางส่วนออกไปให้ Outsource ทำ ในบางส่วนของ Project ก็ใช้ Software Package ที่มี Feature ครอบคลุมความต้องการในส่วนนั้น ที่เหลือก็พัฒนากันเอง

แนวทางการทำ In-House Development

  • Microservice แนะนำว่าให้ออกแบบทุกอย่างให้อยู่ในรูปแบบ Microservice
  • DevOps ควรนำ DevOps มาใช้เพื่อช่วยในเรื่องการทำ Automate ในทุก ๆ ส่วนของการพัฒนา Software

สำหรับท่านใดที่สนใจในเรื่องการทำ In-House Development สามารถเข้ามาพูดคุยแลกเปลี่ยนกันได้ที่ หน้า page facebook : pnpsolution หรือ web site : www.pnpsw.com หรือนัดหมายเพื่อรับคำปรึกษาได้ที่เบอร์ 0818473765 ได้ครับ

--

--