เล่มที่ 25 สารานุกรมไทยสำหรับเยาวชนฯ
การพัฒนาซอฟต์แวร์
เล่นเสียงเล่มที่ 25 สารานุกรมไทยสำหรับเยาวชนฯ การพัฒนาซอฟต์แวร์
สามารถแชร์ได้ผ่าน :

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

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


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

            ถ้าเราเปรียบเทียบการบอกวิธีพับจรวดกระดาษที่มีเพียง ๓-๔ ขั้นตอน กับการบอกวิธีสร้างจรวดของจริงที่มีหลายแสนขั้นตอน เราก็จะทราบว่า การสร้างจรวดของจริงมีกระบวนการที่ยุ่งยากกว่ามาก และเช่นเดียวกัน ถ้าเราจะสั่งให้คอมพิวเตอร์ทำงานบ่อยๆ อย่างบวก ๑ ถึง ๑๐ เราอาจจะเขียนคำสั่ง หรือ "เขียนโปรแกรม" สั้นๆ ขึ้นมาได้เลย แต่ถ้าเราจะให้คอมพิวเตอร์ทำงานที่ยาก เช่น จำลองสภาพให้เสมือนเราขับเครื่องบินรบได้ เราจะต้องมีกระบวนการอีกมากมาย การเขียนโปรแกรมจะเป็นเพียงส่วนปลีกย่อยเท่านั้น เราเรียกกระบวนการนี้ว่า "การพัฒนาซอฟต์แวร์"

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

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