ปัจจุบันการใช้งานด้านซอฟต์แวร์เข้ามาช่วยในระบบงานต่างๆของบริษัท องค์กรต่างๆ มีให้เห็นมากมาย จุดประสงค์หลักก็เพื่อนำมาช่วยลดความซับซ้อนยุ่งยากต่างๆในการดำเนินงาน การที่สามารถตรวจสอบการทำงาน หรือการวิเคราะห์ข้อมูลต่างๆ เพื่อนำไปใช้งานในอนาคตได้
เมื่อมีความต้องการซอฟต์แวร์เกิดขึ้น ก็ต้องมีการพัฒนาซอฟต์แวร์ขึ้นมาเพื่อตอบสนองความต้องการของบริษัท หรือองค์กรนั้นๆ เพื่อให้สามารถใช้งานซอฟแวร์ได้อย่างมีประสิทธิ์ภาพ และตรงตามความต้องการ สำหรับการพัฒนาซอฟต์แวร์อาจมีอยู่ด้วยกันหลักๆ 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)