ทำไมเราถึงต้องพัฒนาซอฟต์แวร์?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

สิ่งสำคัญที่ต้องเรียนรู้ภาษานี้อย่างรวดเร็วคือ

Source by Edeh Chijioke

Leave a Reply

Your email address will not be published. Required fields are marked *