วิศวกรรมการพัฒนาซอฟต์แวร์เป็นอย่างไร หากไม่มีสิ่งใดที่ขาดไปเพื่อให้มีคุณสมบัติเช่นนี้
ใช่วิศวกรรมซอฟต์แวร์เป็นสาขาวิศวกรรม
วิกิพีเดียนิยามวิศวกรรมว่า "การประยุกต์ใช้คณิตศาสตร์ตลอดจนความรู้ทางวิทยาศาสตร์เศรษฐกิจสังคมและการปฏิบัติเพื่อคิดค้นคิดค้นออกแบบสร้างบำรุงรักษาวิจัยและปรับปรุงโครงสร้างเครื่องจักรเครื่องมือระบบส่วนประกอบวัสดุ กระบวนการกระบวนการและองค์กร " ผลลัพธ์ของวิศวกรรมซอฟต์แวร์เป็นระบบซอฟต์แวร์ที่สามารถปรับปรุงชีวิตของผู้คนและสามารถเกี่ยวข้องกับความรู้ทางวิทยาศาสตร์คณิตศาสตร์เศรษฐกิจสังคมหรือการปฏิบัติบางอย่าง
ในแง่ของวิธีการดูทางวิชาการและวิชาชีพมันแตกต่างกันไป โปรแกรมวิศวกรรมซอฟต์แวร์สามารถรับรองโดยABETเป็นโปรแกรมวิศวกรรม วิศวกรซอฟต์แวร์สามารถเป็นสมาชิกของ IEEE บริษัท บางแห่งพิจารณาว่าวิศวกรรมซอฟต์แวร์เป็นสาขาวิชาวิศวกรรมในขณะที่ บริษัท อื่นไม่ทำเช่นนั้นมันเป็นการพลิกคว่ำจริงๆ
หนังสือที่ดีที่สุดในเรื่องนี้คือสตีฟ McConnell ของการพัฒนาซอฟต์แวร์มืออาชีพ: ตารางเวลาสั้นอุดมศึกษาผลิตภัณฑ์คุณภาพโครงการที่ประสบความสำเร็จมากขึ้นร่วมงานที่เพิ่มขึ้น มันมีลักษณะที่วิศวกรรมซอฟต์แวร์เป็นอาชีพวิวัฒนาการจากฝีมือในการประกอบอาชีพเป็นวิทยาศาสตร์ของการพัฒนาซอฟต์แวร์, ความแตกต่างระหว่างซอฟต์แวร์วิศวกรรมและซอฟต์แวร์วิศวกรรม (ประยุกต์ใช้วิธีการทางวิศวกรรมซอฟแวร์เมื่อเทียบกับวิศวกรที่เกิดขึ้นกับการสร้างซอฟแวร์ที่มีกรณีศึกษาที่ รวมถึงโรงเรียนเก่าของฉัน ) การรับรองและการออกใบอนุญาตและจริยธรรม
Glenn Vanderburg มีชุดของการเจรจาที่เรียกว่า "วิศวกรรมซอฟต์แวร์จริง" ที่ได้รับระหว่าง 2010 และ 2015 ที่จำนวนของการประชุมพร้อมกับการเจรจาที่เกี่ยวข้องสอง "หัตถกรรมวิศวกรรมและสาระสำคัญของการเขียนโปรแกรม" (ให้ในปี 2011 เป็น คำปราศรัยที่ RailsConf) และ "Craft and Software Engineering" (มอบให้ในปี 2011 ที่ QCon London) ฉันคิดว่าการพูดคุยเหล่านี้เป็นเหตุผลที่ครอบคลุมอย่างมากว่าทำไมวิศวกรรมซอฟต์แวร์ถึงมีวินัยทางวิศวกรรม
เหตุผลหนึ่งซึ่ง Vanderburg นำขึ้นในเวลาสั้น ๆ ในการเจรจาของเขาเป็นหนึ่งที่ทำโดยแจ็คดับบลิวรีฟส์ในปี 1992 (และกลับมาเยือนอีกครั้งในปี 2005) ในสิ่งที่ออกแบบซอฟต์แวร์และวิธีรหัสการส่งออกของกิจกรรมการออกแบบทางวิศวกรรมซอฟต์แวร์ ( นี้ยังเป็น กล่าวถึงเรื่อง C2 วิกิ) เมื่อคุณอยู่ห่างจากโรงเรียนเก่า ๆ แห่งความคิดที่ซึ่งข้อมูลจำเพาะและแบบจำลองคือการออกแบบซอฟต์แวร์และการใช้รหัสเป็นการออกแบบซอฟต์แวร์ความสัมพันธ์ระหว่างวิศวกรรมซอฟต์แวร์และสาขาวิชาวิศวกรรมอื่น ๆ นั้นชัดเจนยิ่งขึ้น ความแตกต่างบางประการและสาเหตุของความแตกต่างนั้นชัดเจนยิ่งขึ้นหลังจากที่คุณเห็นว่าเศรษฐศาสตร์ของการพัฒนาซอฟต์แวร์แตกต่างจากสาขาอื่น ๆ มากมาย - การก่อสร้างมีราคาถูก (ฟรีเกือบในหลาย ๆ กรณี) ในขณะที่การออกแบบเป็นส่วนที่มีราคาแพง
นั่นคือ [CMMI] ที่จะเปลี่ยนการพัฒนาเป็นวิศวกรรมหรือไม่?
ไม่ CMMI เป็นกรอบการปรับปรุงกระบวนการที่ให้คำแนะนำแก่องค์กรว่ากิจกรรมประเภทใดมีประโยชน์เมื่อสร้างซอฟต์แวร์ สาขาวิชาวิศวกรรมมักจะมีกระบวนการทางวิศวกรรม การมีกระบวนการดังกล่าวมีความสำคัญต่อความสำเร็จของโครงการคุณภาพสูง ที่กล่าวว่า CMMI (หรือกรอบงานกระบวนการหรือวิธีการอื่น ๆ ) เป็นเพียงเครื่องมือเดียว - การใช้มันจะไม่ทำให้คุณก้าวหน้าอย่างน่าอัศจรรย์จากนักพัฒนาถึงวิศวกร อย่างไรก็ตามการไม่ทำตามกระบวนการบางอย่างในความคิดของฉันสัญญาณของโครงการที่ไม่ใช่โครงการวิศวกรรม
คุณมีความคิดเห็นอย่างไรกับหลักสูตร / ใบรับรองด้านวิศวกรรมซอฟต์แวร์?
มันคุ้มค่ามากเท่ากับที่คนอื่นใส่เข้าไป มีหลักสูตรที่มีประโยชน์และมีหลักสูตรที่ไร้ประโยชน์ มีใบรับรองที่มีค่าและใบรับรองที่ไม่คุ้มกับกระดาษที่พิมพ์ มีหลายปัจจัยจากผู้ที่รับรองหรือรับรองหลักสูตรหรือผู้ที่ออกใบรับรองให้กับอุตสาหกรรมการจ้างงานปัจจุบันของคุณไปยังงานปัจจุบันของคุณและที่คุณต้องการไป