ในวงการวิทยาศาสตร์มีคำกล่าวหนึ่งบอกไว้ว่า "ชีวิตทุกชีวิตล้วนมีวงจรของมัน" เหมือนผีเสื้อที่มีพัฒนาการตั้งแต่เป็นไข่ แปรสภาพเป็นหนอน ตามด้วยดักแด้ ก่อนเติบโตขึ้นเป็นผีเสื้อตัวเต็มวัยที่สมบูรณ์แบบ ซึ่งถ้าเปรียบเทียบผีเสื้อเหมือนกับโปรแกรมคอมพิวเตอร์ หรือ ซอฟต์แวร์ (Software) ที่ตัวซอฟต์แวร์นั้นก็ต้องมีวงจรการพัฒนา เปลี่ยนแปลง แก้ไขบัค เพื่อให้กลายเป็นผลิตภัณฑ์ซอฟต์แวร์ที่สมบูรณ์แบบ และไม่มีข้อบกพร่องใดๆ ก่อนจะนำมาเผยแพร่ให้ผู้ใช้ได้อย่างภาคภูมิใจ
ในทางเทคนิคมีคำศัพท์ที่ใช้เรียกการพัฒนาซอฟต์แวร์ในช่วงเวลาต่างๆ ว่า "Software Release Life Cycle" หรือ "วงจรชีวิตซอฟต์แวร์" เป็นขั้นตอนการพัฒนาซอฟต์แวร์ ที่รวบรวมไว้เป็นลำดับขั้น ตั้งแต่ก่อนเริ่มพัฒนา และเข้าสู่ช่วงทดสอบ ไปจนถึงการเผยแพร่ วางจำหน่าย และอัปเดตแก้ไข ปรับปรุงเวอร์ชัน จนสุดท้ายกลายเป็นซอฟต์แวร์ตัวเต็มที่สมบูรณ์แบบ
ซึ่งกว่าจะไปถึงวันนั้น ซอฟต์แวร์บางตัวอยู่ในช่วงการพัฒนาหลายปี กว่าจะนำออกมาวางขายได้ บางตัวหลุดพ้นช่วงพัฒนามาอย่างรวดเร็ว แต่ก็มีปัญหาเรื่องบัค ซึ่งบริษัทก็จะตามมาแก้ไขเอาทีหลัง แต่ถ้าซอฟต์แวร์ตัวไหนถูกประกาศยกเลิกการสนับสนุน หรือความหมายคือผู้พัฒนาจะไม่มีการอัปเดตเวอร์ชันหรือแก้ไขบัคให้อีกแล้ว ตามหลักคือซอฟต์แวร์ตัวนั้นจะเข้าสู่ช่วงที่เรียกว่า End-of-life หรือวงจรชีวิตช่วงระยะสุดท้ายของซอฟต์แวร์ ซึ่งส่วนใหญ่มักเกิดจากผู้พัฒนาเริ่มมีการปล่อยซอฟต์แวร์ใหม่เข้าสู่ตลาดแทนของเดิม
ต่อไปเรามาดูกันว่า กว่าจะเป็นซอฟต์แวร์หนึ่งตัวที่เราใช้กัน วงจรของมันได้ผ่านอะไรมาบ้าง และความหมายของแต่ละช่วงเวลานั้นมีใจความสำคัญอย่างไร ซึ่งวงจรชีวิตซอฟต์แวร์สามารถแบ่งได้เป็นไทม์ไลน์ 4 ช่วงหลักๆ ตามนี้
ในระยะ Pre-alpha ใช้อธิบายถึงซอฟต์แวร์ที่เพิ่งตั้งไข่ได้ใหม่ๆ โดยผู้พัฒนาจะเริ่มดำเนินการตั้งแต่ วิเคราะห์ข้อกำหนดต่างๆ เช่นการกำหนด สัญญาอนุญาตซอฟต์แวร์ (Software License) หรือ ประเภทของซอฟต์แวร์ และกำหนดแนวทางการพัฒนา
นอกจากนี้ยังมีเรื่องของ Unit Test หรือการเขียนโค้ดเพื่อทดสอบแยกการทำงานในส่วนเล็กๆ ของซอฟต์แวร์ว่าจะใช้ทำงานได้จริงหรือเปล่า ซึ่งเรามักเห็นซอฟต์แวร์ที่อยู่ในช่วง Pre-alpha มากในกลุ่ม ซอฟต์แวร์ประเภท Open-source ที่จะปล่อยลงเว็บไซต์ต่างๆ เพื่อที่ให้ผู้ที่สนใจทดลองใช้
ในระยะ Alpha เป็นช่วงที่ซอฟต์แวร์อยู่ในระยะเพิ่งฟักไข่ใหม่ๆ เรื่องข้อผิดพลาดของการทำงานหรือบัค จะมีอยู่เยอะพอสมควร และบางครั้งความร้ายแรงอาจสร้างปัญหาให้กับคอมพิวเตอร์จนถึงขั้นข้อมูลต่างๆ สูญหายไปเลยก็มี
ซึ่งผู้พัฒนาจะใช้เทคนิคการทดสอบที่เรียกว่า 'White Box' เป็นเทคนิคการทดสอบซอฟต์แวร์ แบบเปิดเผยซอสโค้ด (Open-Source Code) เพื่อมองรายละเอียดภายในโค้ดว่าทำงานอย่างไร และฟังก์ชันต่างๆ จะทำงานตามขั้นตอนจริงๆ หรือไม่
และจะตามด้วยการทดสอบแบบ 'Black box' คือคีย์คำสั่งและดูผลอย่างเดียว เพื่อมองภาพรวมของการทำงานว่ามีฟังก์ชันครบตามที่กำหนดไว้ในช่วง Pre-alpha หรือไม่ และเมื่อซอฟต์แวร์ Alpha ถูกลบข้อผิดพลาด และมีฟีเจอร์ต่างๆ ที่ครบแล้วก็จะเข้าสู่ช่วงทดสอบ Beta ต่อทันที
ในช่วงระยะ ฺBeta คือซอฟต์แวร์ที่มีโครงสร้างการทำงานเป็นรูปเป็นร่างแล้ว ผู้พัฒนาก็เริ่มจะปล่อยให้ทดสอบในวงกว้าง โดยคนที่ร่วมทดสอบจะเป็นผู้ใช้งานบางกลุ่มหรือเป็นแบบสาธารณะก็แล้วแต่ความต้องการของฝั่งผู้พัฒนา และผู้พัฒนามักใช้ช่วงนี้ในการโปรโมทซอฟต์แวร์ควบคู่กันไป ซึ่งแน่นอนว่าไม่ได้คาดหวังกระแสตอบรับที่ดีมากนัก แต่จุดประสงค์คือเพื่อต้องการให้เกิดการใช้งานจริงในหมู่ผู้ใช้ และรับคำติชมมาปรับปรุงแก้ไข
ซึ่งเมื่อซอฟต์แวร์ยังไม่สมบูรณ์ดี ก็อาจสร้างข้อผิดพลาดตามมาทีหลัง เช่นทำให้เครื่องคอมพิวเตอร์ผู้ทดสอบเสียหาย บางครั้งผู้พัฒนาจึงมักสร้างเงื่อนไขให้ผู้ทดสอบยินยอม "เป็นหนูทดลอง" โดยอาจมีการเสนอให้สิทธิประโยชน์ต่างๆ ในการใช้งานซอฟต์แวร์ตัวเต็ม หรือไม่ก็สร้างข้อตกลงว่าจะไม่รับผิดชอบหากเกิดความเสียหายต่ออุปกรณ์ แต่ข้อดีคือจะได้ใช้ของใหม่ก่อนใครนั่นเอง
โดยซอฟต์แวร์ที่อยู่ในช่วง ฺBeta ยังสามารถแบ่งได้อีกเป็น 2 ประเภท คือ
ตัวอย่างซอฟต์แวร์ Beta เช่น Insider Program ทั้ง Microsoft Edge Insider, Skype Insider หรือ Windows Insider ที่ทาง Microsoft สร้างไว้เป็นช่องทางให้ผู้ใช้งานซอฟต์แวร์เหล่านี้สมัครเป็นสมาชิก และจะได้ทดสอบฟีเจอร์ใหม่ๆ ก่อนใคร ซึ่งผู้ใช้งานเหล่านี้พอใช้แล้วมีปัญหาก็จะรายงานไปยัง Microsoft ให้แก้ไขก่อนเอาออกมาใช้จริง หรือถ้าไม่ดีเลย ก็ถึงขั้นถอดคุณสมบัติออกไปเลยก็มี
ในช่วง Release Candidate (RC) หรือบางศัพท์อาจเรียกว่า "Going Silver" เป็นรุ่นเบต้าที่ผ่านการแก้ไข และเพิ่มเติมประสิทธิภาพจนพร้อมจะปล่อยสู่การเป็นผลิตภัณฑ์ซอฟต์แวร์อย่างเป็นทางการ ในช่วงนี้มักเป็นช่วงที่ใช้ตรวจสอบความเรียบร้อย แก้ไขบัคเพิ่มเล็กน้อยก่อนวางขาย หรือเผยแพร่ออกสู่สาธารณะ
ซอฟต์แวร์ช่วงระยะ Stable Release คือช่วงที่ข้อบกพร่องต่างๆ มีน้อยมากหรืออาจไม่มีแล้ว กลายเป็นผลิตภัณฑ์ซอฟต์แวร์อย่างเต็มตัวเพื่อวางจำหน่าย ซึ่งในช่วงการเผยแพร่สามารถแบ่งได้เป็น 2 รูปแบบประกอบด้วย
Release to Manufacturing (RTM) หรือ "Going Gold" เป็นซอฟต์แวร์ที่อธิบายถึงช่วงการเปิดตัวครั้งแรกกับผู้ผลิตฮาร์ดแวร์ ในช่วงนี้ประโยชน์คือทั้ง 2 ฝ่ายจะได้ร่วมกันหาข้อบกพร่องจากการใช้งาน ก่อนวางแผนการตลาดและปล่อยสู่สาธารณะ เช่น Microsoft ขาย Windows 10 ให้ผู้ผลิตเครื่อง PC นำไปติดตั้งและวางขายพร้อมกันเป็นต้น
General Availability (GA) เป็นช่วงที่ซอฟต์แวร์เปิดตัวต่อสาธารณะเพื่อวางขายและจัดจำหน่ายให้องค์กร หรือคนทั่วไปแล้วนั่นเอง และแน่นอนว่าซอฟต์แวร์เดี๋ยวนี้มีการจำหน่ายบนเว็บไซต์เป็นส่วนใหญ่ ซึ่งก็คือ Release to the Web (RTW) หรือซอฟต์แวร์ที่วางจำหน่ายบนอินเทอร์เน็ต
ช่วงระยะ Support เป็นช่วงเวลาที่ซอฟต์แวร์เปิดตัวและวางจำหน่ายไปแล้ว เป็นซอฟต์แวร์ที่ได้รับการสนับสนุนจากผู้พัฒนาหลังการขายทุกช่องทางไม่ว่าจะเป็นการอัปเดตเวอร์ชัน ปรับฟีเจอร์ ตัดฟีเจอร์ หรือแก้ไขบัคต่างๆ ถ้าผู้พัฒนายังเห็นว่าซอฟต์แวร์เหล่านี้ยังสร้างกำไร หรือยังไม่มีผลิตภัณฑ์ใหม่ออกมา ก็จะมีการสนับสนุนต่อไปโดยมีกำหนดระยะเวลา 1 ปี หรือ 5 ปี เป็นต้นโดยในช่วงนี้จะเรียกว่า Mainstream Support
ซึ่งหลังจากหมดอายุไปแล้วบางซอฟต์แวร์อาจหยุดสนับสนุนไปเลย หรือผู้พัฒนาอาจเปลี่ยนเป็นช่วงที่เรียกว่า Extended Support แทนเช่น Windows 7 ที่ประกาศเข้าสู่ Extended support ในวันที่ 13 มกราคม ค.ศ.2015 (พ.ศ.2558) ซึ่งจะออกแพตซ์ด้านความปลอดภัยให้อย่างเดียวจน Windows 7 หมดอายุสนับสนุนไปในเดือนมกราคม ค.ศ. 2020 (พ.ศ. 2563) ที่ผ่านมา
ในระยะ End-of-life จะใช้อธิบายซอฟต์แวร์ที่ถูกผู้พัฒนาประกาศเลิกสนับสนุนไปแล้ว จะไม่มีการวางขายอีกต่อไป ผลิตภัณฑ์ถือว่าหมดอายุ แต่ผู้ใช้ที่มีอยู่ หรือเคยซื้อไปแล้วยังคงใช้ต่อได้ โดยที่ซอฟต์แวร์เหล่านี้จะไม่มีการอัปเดตเวอร์ชันและแก้ไขข้อผิดพลาดหรือบัคใดๆ อีก ถึงแม้จะเกิดปัญหาอะไรขึ้นก็ตาม
การเรียนรู้ และทำความเข้าใจวงจรชีวิตซอฟต์แวร์ ให้ประโยชน์เราได้หลายอย่าง เช่นถ้าซอฟต์แวร์เป็นเวอร์ชัน Beta ถ้าเรารู้ก่อนจะได้ลดความคาดหวังลง และไม่เสียเวลาเสี่ยงมาใช้งานให้หนักปัญหาเครื่อง
ทางฝั่งผู้พัฒนาเองก็มักใช้การกำหนดวงจรซอฟต์แวร์ มาเป็นตัวแทนของการสื่อสารกับลูกค้าในตลาด ช่วยให้เรารับรู้ความก้าวหน้าของซอฟต์แวร์ว่าไปถึงขั้นไหนแล้ว ซึ่งโดยส่วนมากผู้พัฒนาจะปล่อยซอฟต์แวร์เวอร์ชัน Beta ออกมาชิงตลาดจากคู่แข่งโดยไม่ต้องกลัวว่าจะเสียชื่อเสียงเลย เพราะยังไงชื่อก็บอกอยู่แล้วว่าเป็นซอฟต์แวร์ที่ยังไม่สมบูรณ์ และอยู่ในขั้นตอนทดสอบ
ในขณะที่ผู้ใช้งาน หรือลูกค้าเอง ถ้าดาวน์โหลดซอฟต์แวร์ ในช่วงหลังเผยแพร่ไปแล้ว (
หรือเช่นถ้าผู้พัฒนาประกาศ End-of-life ให้กับซอฟต์แวร์ และออกรุ่นใหม่มาทดแทนก็เป็นตัวช่วยในการตัดสินใจของผู้ใช้ได้ว่าควรเปลี่ยนไปหาของใหม่ได้แล้ว และอย่ายึดติดกับรุ่นเดิมๆ
|
งานเขียนคืออาหาร ปลายปากกา ก็คือปลายตะหลิว |