ประเภทซอฟต์แวร์ ข้อดีข้อเสียแบ่งตามการพัฒนา

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

เมื่อมีความต้องการซอฟต์แวร์เกิดขึ้น ก็ต้องมีการพัฒนาซอฟต์แวร์ขึ้นมาเพื่อตอบสนองความต้องการของบริษัท หรือองค์กรนั้นๆ เพื่อให้สามารถใช้งานซอฟแวร์ได้อย่างมีประสิทธิ์ภาพ และตรงตามความต้องการ สำหรับการพัฒนาซอฟต์แวร์อาจมีอยู่ด้วยกันหลักๆ 3 แบบ ด้วยกันคือ
1. ใช้ซอฟต์แวร์สำเร็จรูป

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

2. การพัฒนาซอฟต์แวร์แบบปิด คือการใช้เครื่องมือการพัฒนาซอฟต์แวร์แบบที่ต้องเสียค่าเครื่องมือสำหรับเขียนโปรแกรมและค่าลิขสิทธิ์

  • ข้อดี คือสามารถพัฒนาซอฟต์แวร์ได้ตามความต้องการได้
  • ข้อเสีย ต้นทุนการผลิตสูง เนื่องจากต้องเสียค่าลิขสิทธิ์  ข้อจำกัดของ License แต่ละโปรแกรม เสียค่าใช้จ่ายรายปี เรื่องการจำกัดสิทธิ์ผู้ใช้งาน

3. การพัฒนาซอฟต์แวร์แบบเปิด หรือที่เรียกว่า Open Source (โอเพนซอร์ส)

  • ข้อดี
    สำหรับผู้ใช้ทั่วไป
    – ได้ใช้ Software คุณภาพในต้นทุนต่ำ
    – ได้เรียนรู้การใช้งาน Software โดยไม่ยึดติดกับตัว Software นั้นๆ
    – สามารถแบ่งปัน Software ได้โดยง่าย โดยไม่ผิดกฎหมาย

    สำหรับผู้ใช้ขั้นสูง
    – สามารถแก้ไขปรับแต่งการตั้งค่าต่างๆได้อย่างแทบไม่จำกัด
    – ได้เปิดโลกทัศน์ทางด้าน Open Source Software

    สำหรับผู้พัฒนาทั่วไป
    – สามารถนำ Source Code ของโปรแกรมที่มีผู้พัฒนาอยู่แล้วมาใช้ได้ตามข้อจำกัดของ License แต่ละโปรแกรม
    – สามารถปรับแต่งการทำงานของโปรแกรมจาก Source Code ได้ ให้เข้ากับความต้องการของผู้พัฒนา
    – ความปลอดภัย ไม่ว่าจะเป็นเพราะเหตุผลใด ก็ปฏิเสธไม่ได้เลยว่าOpen Sourceนั้นมีปัญหาเรื่องความปลอดภัยน้อยกว่าพวก Proprietary Software

    สำหรับองค์กร
    – ลดต้นทุนด้าน Software ทำให้เพิ่มผลกำไรในการประกอบการ
    – สามารถกระจาย(Deploy) Software สู่คอมพิวเตอร์ในองค์กรโดยไม่ต้องกังวลเกี่ยวกับจำนวนเครื่อง จำนวน CPU ต่างๆที่ Software ลิขสิทธิ์อาจได้กำหนดไว้ รวมไปถึงการจำกัดสิทธิ์ผู้ใช้ (User)