ข้อบังคับของอุตสาหกรรมซอฟต์แวร์ [ปิด]


85

ทุก ๆ ปีมีคนเสนอระเบียบที่เข้มงวดมากขึ้นสำหรับอุตสาหกรรมซอฟต์แวร์

นี้บทความ IEEEได้รับความสนใจบางอย่างเมื่อเร็ว ๆ นี้เกี่ยวกับเรื่องนี้

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

ฉันสงสัยเกี่ยวกับคุณค่าและข้อดีของสิ่งนี้ ในความคิดของฉันดูเหมือนว่าจะมีการจับจองพื้นที่โดยผู้ที่เสนอให้

ข้อความที่อ้างว่าสำหรับฉันคือ:

การสอบจะทดสอบความรู้พื้นฐานไม่ใช่ความเชี่ยวชาญในสาระการเรียนรู้

เนื่องจากความล้มเหลวครั้งใหญ่ (เช่นTHERAC-25 ) ดูเหมือนจะซับซ้อนประเด็นที่ลึกซึ้งที่ "ความรู้พื้นฐาน" จะไม่เพียงพอที่จะป้องกัน

ไม่สนใจปัญหาท้องถิ่นใด ๆ (เช่นการป้องกันที่มีอยู่ของชื่อวิศวกรในบางเขตอำนาจศาล):

เป้าหมายมีความสูงส่ง - หลีกเลี่ยง quacks / charlatans 1และทำให้ความแตกต่างนั้นชัดเจนยิ่งขึ้นสำหรับผู้ที่ซื้อซอฟต์แวร์ การเข้มงวดมากขึ้นของอุตสาหกรรมซอฟต์แวร์สามารถบรรลุเป้าหมายเดิมได้หรือไม่?

1ตรงตามข้อกำหนดของวิชาชีพแพทย์ที่ตั้งใจจะทำ


3
ฉันหวังว่า Thomas Owens ตอบสนองต่อสิ่งนี้เพราะฉันรู้ว่าเขามีคำตอบที่สมบูรณ์แบบ
maple_shaft

3
เท่าที่ฉันต้องการที่จะได้ยินสิ่งที่ผู้คนพูดในหัวข้อนี้มันฟังดูคล้ายกับคำถามการอภิปรายที่ฉันจะเป็นแบบที่ดีสำหรับรูปแบบการแลกเปลี่ยนถาม & ตอบ
PersonalNexus

12
ตรงไปตรงมาฉันชอบการแก้ไขรัฐธรรมนูญที่สร้างการแยกของเทคโนโลยีและรัฐเนื่องจาก clueless รัฐบาลดูเหมือนว่าเมื่อควบคุมเทคโนโลยี (ดู SOPA)
JohnFx

3
อุตสาหกรรมสามารถควบคุมได้อย่างไรเมื่อมีการเปลี่ยนแปลงทุกวัน?
Jon Raynor

4
สถานการณ์ "ดีพอ" เหล่านี้มีไม่มากซึ่งต่อมาทำให้เกิดข้อบกพร่องมักเกิดจากความผิดพลาดของการจัดการ / การตลาดว่า: "SHIP SHIP SHIP!"
Aren

คำตอบ:


105

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

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

- Mitch Thornton รองประธานของการอนุญาตและการลงทะเบียน IEEE

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

ท้ายที่สุดคุณไม่ต้องการให้ใครเอาก้อนเนื้องอกนั้นออกจากตับอ่อนของคุณหรือทำงานกับเครื่องหมุนเหวี่ยงของโรงไฟฟ้านิวเคลียร์นั้นนอกเมือง เหตุใดจึงไม่ควรมีข้อ จำกัด คล้ายกันสำหรับวิศวกรซอฟต์แวร์

เฉพาะผู้ที่มีโปรแกรม "อาจเป็นอันตรายต่อสุขภาพของประชาชนหรือความปลอดภัยความปลอดภัยทรัพย์สินหรือเศรษฐกิจจะต้องมีการทดสอบ"

นี่เป็นคำแถลงที่คลุมเครือและเปิดให้มีการตีความและการประยุกต์ใช้อย่างเสรี ฉันสามารถโต้แย้งได้ว่า Apple Inc. หรือ Facebook เป็นส่วนหนึ่งของเศรษฐกิจอเมริกัน - ฉันต้องมีใบอนุญาตพิเศษจากรัฐบาลในการเขียนรหัสให้พวกเขาตอนนี้หรือไม่เพราะถ้าฉันทำให้ไซต์ขาดความสามารถฉันอาจทำให้คนอเมริกันเสียหายได้ เศรษฐกิจ? ในงานสุดท้ายของฉันฉันตั้งใจปิดลิฟต์เมล็ดด้วยงาน cron ผิดพลาด - อาจเป็นอันตรายต่อแหล่งอาหาร

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

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

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

การสอบจะทดสอบความรู้พื้นฐานไม่ใช่ผู้เชี่ยวชาญในสาขาวิชาตามที่กล่าวไว้โดย Mitch Thornton รองประธานคณะกรรมการการออกใบอนุญาตและการลงทะเบียน IEEE

นี่คือนักเตะ การขาดความรู้พื้นฐานไม่เคยเป็นปัญหา เบรกป้องกันล้อล็อกของฉันไม่หยุดทำงานเพราะ Chuck กำลังดิ้นรนกับแนวคิดของโครงสร้างการควบคุม พวกเขาล้มเหลวเนื่องจากมีความผิดพลาดที่ ABS ปิดเนื่องจากไฟฟ้าลัดวงจรและไฟไม่ได้เปลี่ยนเส้นทางอย่างเหมาะสม หรือบางสิ่งบางอย่าง.

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

นั่นคือสิ่งที่คุณสามารถบัญชีสำหรับในการพัฒนาแต่คุณไม่เคยสามารถทดสอบกับการรับรอง

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


33
+1 คำตอบที่ดี ฉันชอบโดยเฉพาะอย่างยิ่ง: "การขาดความรู้พื้นฐานไม่เคยเป็นปัญหา"
Jonathan Henson

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

3
ฉันจะเพิ่มว่าฉันคิดว่าความคิด IEEE ทั้งหมดเป็นขยะที่เริ่มต้น รัฐบาลทั้งหมดที่ต้องทำคือทำหน้าที่ในการแก้ไขปัญหา ถือทุกคนรับผิดชอบต่อความเสียหายใด ๆ ที่เกิดขึ้นกับทุกคน เพียงอย่างเดียวนี้จะดูแลปัญหา
Jonathan Henson

16
ไม่เห็นด้วยกับ "การขาดความรู้พื้นฐานไม่มีปัญหาเลย" ในความเป็นจริงมันมักจะเป็นปัญหา โปรแกรมเมอร์ใหม่ (หรืออันที่เก่ากว่า) ละเลยการฆ่าเชื้ออินพุตอย่างสม่ำเสมอหรือไม่? การตรวจสอบกรณีมุม? สำหรับระบบทางกายภาพฉันอาจอ่านเซ็นเซอร์ มันสามารถเปิดหรือปิด หักแล้วเหรอ? ซอฟต์แวร์ของฉันจะบอกได้อย่างไร ถ้าอย่างนั้นฉันควรทำยังไงดี? คิดว่ามันเป็นหรือปิด? สิ่งที่ "พื้นฐาน" เหล่านี้มักเป็นปัญหาอยู่
sdg

3
@ JonathanHenson จากนั้นอีกครั้งฉันพิจารณาอินสแตนซ์ส่วนใหญ่ของการฉีด SQL ให้ตรง - ขาดความรู้พื้นฐาน ... แต่โดยรวมแล้วโพสต์ที่ดี +1
Jeff Ferland

72

โชคดีที่ไม่มีใครตายเพราะกฎระเบียบทางการแพทย์ไม่มีใครได้รับบาดเจ็บจากการฉ้อโกงเนื่องจากการควบคุมทางการเงินไม่มีใครมีบ้านของพวกเขาที่ต้องขอบคุณบ้านตามระเบียบที่อยู่อาศัยไม่มีใครได้ตัดผมที่ไม่ดีต้องขอบคุณช่างตัดผมและไม่มีเครื่องบินตก ขอบคุณกฎระเบียบอากาศยาน

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


10
+1 สำหรับ "วิศวกรซอฟต์แวร์ได้รับการควบคุมอย่างสูงในฐานะสมาชิกของอุตสาหกรรมที่สำคัญต่อความปลอดภัยและนอกอุตสาหกรรมเหล่านั้นมีความต้องการเพียงเล็กน้อย"
Trevor Boyd Smith

3
ฉันไม่ชอบเสียงเหยียดหยามของคำตอบนี้ คุณกำลังพูดว่าไม่จำเป็นต้องมีกฎระเบียบเนื่องจากกฎระเบียบไม่เคยแก้ปัญหาใด ๆ ?
Fred Foo

8
ฉันกำลังพูดเกินจุดหนึ่งกฎระเบียบเพิ่มเติมไม่ค่อยแก้ปัญหามากขึ้น กำหนดแนวทางการทดสอบซอฟต์แวร์บนเครื่องที่สามารถฆ่าคนได้อย่างสมเหตุสมผล การสอบการรับรองทักษะขั้นพื้นฐานอีกหนึ่งข้อต่อเมื่อจบหลักสูตรการศึกษาระดับปริญญาจะเพิ่มระบบราชการเท่านั้น
Karl Bielefeldt

2
@ larsmans ฉันเห็นด้วยกับคาร์ลถ้ารัฐบาลกำลังจัดการกับขีปนาวุธหรืออะไรก็ตามที่เชื่อว่าจะต้องมีมาตรฐานสูงให้พวกเขาจ้างโปรแกรมเมอร์และวิศวกรของตัวเองตามมาตรฐานที่พวกเขาเลือก ภาคเอกชนไม่ควรสร้างรายได้จากความเสี่ยงของสาธารณชน - นั่นคือลัทธิฟาสซิสต์ อุตสาหกรรมส่วนตัวไม่ควรได้รับอนุญาตให้เป็นอันตรายต่อสาธารณะในการเริ่มต้น คนที่รู้ว่าสิ่งที่พวกเขาต้องการดีที่สุดคือคนที่รับความเสี่ยง ปล่อยให้พวกเขาจัดการเรื่องของตัวเอง และใช่ฉันรู้ว่าล็อคฮีดมาร์ตินและสิ่งที่ชอบทำเช่นนี้ พวกเขาไม่ควรได้รับอนุญาต
Jonathan Henson

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

32

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

นอกจากนี้การทดสอบเหล่านี้มักจะจบลงด้วยการเป็นคำพูดฉูดฉาดและขั้นตอนที่เป็นรูปธรรมและไม่สามารถวัดสิ่งที่สำคัญที่จะเริ่มต้นด้วย

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

นอกจากนี้ปัญหาที่มาตรการนี้พยายามป้องกันอาจไม่ถูกทดสอบ แต่อย่างใด อย่างไรก็ตามฉันชอบที่จะเห็น @ThomasOwens ตอบคำถามนี้

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

ปรับปรุง

ฉันคิดเกี่ยวกับเรื่องนี้เมื่อคืนนี้มากกว่าเบียร์หรือสิบ

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

มีผลกำไรบางส่วนที่เราได้รับจากกฎระเบียบทางการแพทย์ แต่ค่าใช้จ่ายสูงเกินไป

สิ่งนี้จะเกิดขึ้นกับวิศวกรซอฟต์แวร์หากมีการผ่านข้อบังคับดังกล่าว ฉันสามารถเห็นได้ในขณะนี้หน่วยงานที่ควบคุมจะปกครองว่าการเขียนโปรแกรมเชิงวัตถุเป็นมาตรฐานการออกแบบเพียงอย่างเดียวและโปรแกรมเมอร์และฟังก์ชันเชิงปฏิบัติจะไม่ได้รับอนุญาตให้ฝึก จากนั้นพวกเขาจะเริ่มบอกเราว่าเราไม่ได้รับอนุญาตให้จัดการความทรงจำของเราเองเพราะมันไม่ปลอดภัย จากนั้นพวกเขาจะอัด JAVA และ C # ลงในลำคอของเราทั้งหมดและบอกเราว่าเราต้องใช้มันในขณะที่ Oracle และ Microsoft ได้อ้วนขึ้นและมีความสุขมากขึ้น นวัตกรรมจะถูกยับยั้งและความคิดสร้างสรรค์จะผิดกฎหมาย Microsoft และ Google จะเขียนกฎหมายดังนั้นกฎของตลาดจะงอต่อผลกำไรของตนเองและต่อต้านความเป็นอยู่ที่ดีของสังคม

นอกจากนี้ฉันขอเตือนทุกคนว่าคอมพิวเตอร์เริ่มเป็นงานอดิเรกและความพยายามทางวิชาการ นอกเหนือจากสงคราม Unix ในยุค 80 และต้นยุค 90 เรามีระบบปฏิบัติการฟรีคอมไพเลอร์ฟรีโปรแกรมฟรีและอื่น ๆ ... สิ่งนี้จะสิ้นสุดลงอย่างรวดเร็ว โลกที่ Richard Stallman, Linus Torvalds และ Dennis Richtie พินัยกรรมให้เราจะค่อยๆเลือนหายไปจากการดำรงอยู่

สรุปแล้วฉันเบื่อที่ต้องแข่งขันกับ "ฉันจะออกแบบเว็บไซต์ wordpress CMS ให้คุณราคา $ 25 ต่อชั่วโมง" หรือ "แอป iPhone ใด ๆ ที่มีราคา $ 500" ไม่จริงทำไม เพราะฉันด่าดีในสิ่งที่ฉันทำและลูกค้าที่ฉันต้องการยินดีจ่ายเพื่อความเป็นเลิศ เมื่อฉันทำโครงการด้วยตนเองหรือในที่ทำงานฉันจะเสี่ยงต่อการ f * & ^ ของฉันต่อหัวหน้าและชื่อเสียงของตัวเอง ที่จะตามฉันทุกที่ที่ฉันไป นอกจากนี้คนส่วนใหญ่รู้ว่าพวกเขาได้รับสิ่งที่พวกเขาจ่ายไป ลูกค้าที่ยินดีจ่ายเงินให้ฉันในราคาที่พวกเขาจ่ายให้กับคนที่แต่งตัวประหลาดสนามหญ้าของพวกเขานั้นจะเป็นฝันร้ายที่จะจัดการกับเรื่องนี้ หากรัฐบาลแก้ไขโครงสร้างทางกฎหมายเพื่อบังคับให้ผู้ให้บริการชดเชยความเสียหายของพวกเขาก็จะมีโปรแกรมเมอร์ที่ไม่ดีเพียงไม่กี่คนที่ยังคงมีงานทำอยู่

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


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

4
@ Jonathan Henson: โดยทั่วไปแล้วพวกเขาไม่ทำเช่นนั้น ร้านค้าจำนวนมากให้คะแนนเป็นศูนย์ในการทดสอบ Joel ( joelonsoftware.com/articles/fog0000000043.html ) ว่าพวกเขาไม่ควรทำนั่นเป็นการตัดสินใจทางธุรกิจไม่ใช่การตัดสินใจเชิงจริยธรรม ทุกสิ่งมีค่าใช้จ่าย: เงินมากมาย หากคุณกำลังสร้างระบบควบคุมอากาศยานมันจะสร้างผลกำไรในระยะยาวเพื่อประหยัดค่าใช้จ่ายเหล่านั้น ถ้าคุณกำลังสร้างเกม Facebook อยู่อาจไม่ใช่
Eric Lippert

1
ไม่ตราประทับของสถาปนิกดีเท่ากับตรา PE แน่นอนฉันจะบอกว่าเราจำเป็นต้องรวมหลายสิ่งหลายอย่างที่เรียกว่าสาขาวิชาวิศวกรรมแม้ว่าเช่นเดียวกับสถาปนิกทำ สถาปัตยกรรมยังคงมีความคิดว่าเป็นงานฝีมือมากกว่า อย่างไรก็ตามวิศวกรรมก็อาจเป็นงานฝีมือด้วยเช่นกัน
Jonathan Henson

1
@Andy ผมคิดว่าเราควรจะถามแลกเปลี่ยนสแต็คที่จะเปลี่ยนชื่อของเว็บไซต์นี้เพื่อ softwareengineers.stackexchange.com :)
โจนาธานเฮนสัน

1
@ โจนาธานเฮนรี่ขุ่นเคือง? ไม่มีทางไม่ต้องกังวล! :) ฉันควรทำให้ชัดเจนยิ่งขึ้นว่าฉันโพสต์ลิงก์เพียงเพราะมันบังเอิญกับความคิดเห็นของคุณ
yannis

23

ข่าว Silicon Valley - 31 มิถุนายน 2558

สยองขวัญ: โปรแกรมเมอร์ที่ไม่ผ่านการรับรองทำให้โปรแกรมยกเลิก

"ฉันจะไม่สามารถทำงานได้อีก" ส่งผลให้เหยื่อ ตำรวจกำลังสืบสวน

ความผิดทางอาญา: ใบอนุญาตของ Dr H. Acker Jr. ถูกเพิกถอนเนื่องจากการใช้ตัวชี้ไม่ถูกต้องและพยายามอ่านจากไฟล์ระบบ

ผู้ให้การสนับสนุนกล่าวว่าจะมีการอุทธรณ์ต่อศาลฎีกา

ประกาศ: โปรแกรมเมอร์ Cobol ที่ได้รับการรับรองในปี 1975 ควรรับรองซ้ำไม่เกินปี 2025

IEEE ยืนยันว่าการรับรองไม่ได้เปลี่ยนแปลงตั้งแต่

โฆษณา: การรับรองที่รับประกันโดย Magic Knowledge Stuffers, Inc

สอนการเขียนโปรแกรมด้วยตัวเองใน 21 วัน


ฉันพยายามที่จะตัดสินใจว่านี่เป็นคำตอบที่เต็มไปด้วยอารมณ์หรือความคิดเห็นที่มีอารมณ์ขัน (อาจจะทั้งคู่?)
Lyndon White

@Oxinabox วันที่ 31 มิถุนายนเป็นเรื่องตลก
ริ้น

"สอนโปรแกรมด้วยตัวคุณเองใน 10 วัน!" hehe
BЈовић

20

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

ผมชอบที่จะคิดว่ามันเป็นที่เริ่มต้นด้วยวิศวกรรมซอฟแวร์ของร่างกายความรู้ (SWEBOK)และรหัสวิศวกรรมซอฟแวร์ของจริยธรรมและการปฏิบัติวิชาชีพ แม้ว่าการยอมรับโดยทั่วไปของสิ่งเหล่านี้ยังมีข้อ จำกัด แต่ฉันคิดว่าพวกเขาทำหน้าที่เป็นฐานที่ดีในการระบุประเภทของสิ่งที่บางคนระบุว่าตนเองเป็นวิศวกรซอฟต์แวร์ควรมีความรู้และคน ๆ นั้นควรปฏิบัติหน้าที่อย่างไรในฐานะมืออาชีพ นั่นไม่ได้หมายความว่าสิ่งเหล่านี้เป็นกฎที่ยาก แต่เอกสารเหล่านี้จะแนะนำวิศวกรซอฟต์แวร์มืออาชีพว่าอะไรคือสิ่งที่เกี่ยวข้องกับงานที่พวกเขาอาจถูกขอให้ทำ SWEBOK ได้รับการแก้ไขเป็นครั้งคราวเพื่อให้แน่ใจว่าเกี่ยวข้อง

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

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

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

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

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

การรับรองและการออกใบอนุญาตจะต้องมีองค์ความรู้ที่เป็นที่ยอมรับ SWEBOK เป็นเอกสารที่ดีที่ให้รากฐานที่แข็งแกร่ง แต่ไม่ได้รับการยอมรับอย่างกว้างขวาง หากคุณไม่สามารถยึดหลักสูตรการศึกษาและการสอบรับรอง / การออกใบอนุญาตของคุณเข้ากับสิ่งที่เป็นรูปธรรมที่ผู้ฝึกปฏิบัติจะยอมรับได้ หาก SWEBOK หรือเอกสารทางเลือกได้รับการยอมรับอย่างกว้างขวาง (อย่างน้อยในสาขาที่ต้องการความแม่นยำทางวิศวกรรม) การสอบรับรองหรือการออกใบอนุญาตสามารถใช้เพื่อวัดความเข้าใจในความรู้ที่จำเป็น

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

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


ฉันอยู่ภายใต้สภาพอากาศเล็กน้อยดังนั้นถ้าฉันพลาดอะไรหรืออะไรไม่เหมาะสมฉันก็จะสะกิดมัน ขอบคุณเพื่อน.
Thomas Owens

"สองในสามคนสมควรได้รับความสนใจจากวิศวกรที่มีทักษะ" คุณพูดถูกยานอวกาศไม่ใช่สิ่งที่ยากที่จะทำ
zzzzBov

+1 ขอบคุณสำหรับการเพิ่มอินพุตของคุณในเรื่องนี้ ฉันหวังว่าคุณจะรู้สึกดีขึ้น
Jonathan Henson

12

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

ความขาดแคลนและค่าใช้จ่ายที่เกี่ยวข้องกับการศึกษาระดับปริญญากฎหมายหรือแพทยศาสตร์จะปรากฏให้เห็นมากขึ้นหรือน้อยลงในอุตสาหกรรมของเรา ไม่ดีเมื่อทางเลือกคือ joe ทุกคนสามารถสร้าง Facebook ต่อไปได้

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

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


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

1
@maple_shaft, IMO การเปรียบเทียบแพทย์ / นักกฎหมายกับวิศวกรรมซอฟต์แวร์ไม่ถูกต้อง เขตข้อมูลนั้นแตกต่างจากการเปรียบเทียบมากเกินไป (ดูคำตอบของ Jarrod Nettles เพื่อดูว่าทำไมคุณไม่สามารถเปรียบเทียบวิศวกรรมซอฟต์แวร์กับแพทย์ / นักกฎหมาย)
Trevor Boyd Smith

1
@maple_shaft - คุณหมายถึงว่าการรับรองจะปรับปรุงคุณภาพของงานวิศวกรรม ฉันค่อนข้างสงสัยว่าจะเป็นผล ฉันคิดว่าเวลาที่ใช้ในการเรียนเพื่อการทดสอบส่วนใหญ่นั้นไม่ใช่เวลาที่จะเรียนรู้วิศวกรรมที่ดีกว่า
psr

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

1
@maple_shaft ที่ขึ้นอยู่กับลักษณะของความล้มเหลวโดยสิ้นเชิง - Facebook ไม่ตอบสนองไม่สำคัญ (นอกเหนือจากการส่งผลกระทบต่อนักลงทุนในกระเป๋า) - Facebook ทำให้รายละเอียดส่วนตัวของคุณและข้อความส่วนตัวที่ผู้ใช้อินเทอร์เน็ตทุกคนมีให้นั้นแตกต่างกัน เพิ่มเติม - แอพ / เกมที่รับรายละเอียดบัตรเครดิต (เช่นบน Facebook) การปล่อยรายละเอียดบัตรเครดิตโดยไม่ตั้งใจจะมีผลกระทบร้ายแรง
HorusKol

11

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

การอ่านบทความนี้ต้องใช้คนที่มีประสบการณ์ 4-6 ปีในการสอบซึ่งเป็นการทดสอบความรู้พื้นฐาน นั่นเกินไร้สาระและควรจะหัวเราะออกไปนอกประตู


10

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

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

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

มันไม่มีอะไรเกี่ยวข้องกับ "การเขียนโปรแกรม" และทุกอย่างเกี่ยวกับ "วิศวกรรม"

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


5
+1 IMHO สิ่งที่คุณบอกใบ้จริงๆคือกฎระเบียบนั้นต้องอยู่ในผลิตภัณฑ์ไม่ใช่วิศวกร ตัวอย่างเช่นข้อกำหนด (การอนุมัติ) ที่จำเป็นสำหรับระบบแจ้งเตือนอัคคีภัยและการบุกรุกทำให้มั่นใจได้ว่าซอฟต์แวร์ใช้งานได้ไม่ใช่ความสามารถของวิศวกรที่เขียนมัน (กฎระเบียบจำนวนมากมีลักษณะเหมือนกับเมื่อระบบทำจากวงจรอิเล็กทรอนิกส์ทั้งหมด)
jwernerny

8

ซอฟต์แวร์ได้รับการควบคุมอย่างเข้มงวดแล้วในอุตสาหกรรมอากาศยาน ดูDO-178B

ฉันแน่ใจว่าส่วนย่อยอื่น ๆ ของอุตสาหกรรมมีบรรทัดฐานของพวกเขา

"ซอฟต์แวร์" ครอบคลุมทุกวันนี้ ฉันคิดว่ามันคงเป็นเรื่องไร้สาระที่จะมีข้อบังคับที่ครอบคลุมทุกอย่าง


4

การควบคุมอุตสาหกรรมซอฟต์แวร์ทำได้ดีที่สุดโดยผ่านการควบคุมกระบวนการประกันคุณภาพ

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

ภายใน บริษัท วิศวกรซอฟต์แวร์รับผิดชอบคุณภาพงานของพวกเขา อย่างไรก็ตามการตรวจสอบและถ่วงดุลของพวกเขาอยู่ในกระบวนการคุณภาพของ บริษัท


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

จุดที่ดี - ซอฟต์แวร์ที่ใช้งานอุปกรณ์นั้นเป็นความรับผิดชอบของ บริษัท ในด้านวิศวกรรมที่ดีและปลอดภัยเหมือนกับที่ใช้กับวิศวกรรมอุตสาหการ
Jarrod Nettles

3

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

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

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

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


1
+1 - สำหรับ: "ข้อผิดพลาดที่สำคัญที่สุดด้านความปลอดภัยคือข้อผิดพลาดในการรวม" ในความเป็นจริงด้วยกระบวนการทั้งหมดที่เราดำเนินการผ่านมีเกือบไม่มีข้อผิดพลาดการเข้ารหัส 99.98% ของเวลาทั้งหมดเป็นปัญหาความเข้าใจระหว่างโมดูลและอุปกรณ์ต่าง ๆ เกี่ยวกับวิธีการทำงานของโมดูล
Dunk

@Dunk ขอบคุณจริง ๆ แล้วมันเป็น qoute จาก Levison ความจริงฉันหมายถึงการรวมไว้ในข้อความ แต่ดูเหมือนว่าฉันจะลืม :)
Rune FS

2

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

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

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

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


4
กฎระเบียบดังกล่าวมักจะจบลงด้วยข้อกำหนดทางกฎหมายเช่นกัน เช่นวิศวกรรมโยธาที่ต้องใช้ PE
Paul Nathan

@ พอลนาธานจุดที่ดีซึ่งเป็นเหตุผลว่าทำไมความก้าวหน้าทางธรรมชาติของวินัยที่ยอมรับกันโดยทั่วไปเริ่มต้นที่การควบคุมตนเอง (เช่น MPAA) และในที่สุดก็นำไปสู่การควบคุมตามกฎหมาย (บอร์ดรัฐ FCC ฯลฯ ... )
maple_shaft

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

1
การเปรียบเทียบวิศวกรรมเครื่องกลกับวิศวกรรมซอฟต์แวร์ทำให้ฉันสงสัยว่าอะนาล็อกวิศวกรรมในโลกแห่งความจริงจะเป็นอย่างไรกับระบบปฏิบัติการสมัยใหม่
FrustratedWithFormsDesigner

1
@maple_shaft - ปัญหาหลักจะเป็นไปได้ว่าคุณไม่สามารถใช้ Linux / BSD / grep / vi / Firefox เป็นต้นเพราะพวกเขาไม่ได้เขียนโดย SE อย่างเป็นทางการ ในขณะที่บางคนที่มีใบรับรอง MSCE ใน VB จะเป็นที่ยอมรับ
Martin Beckett

1

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

ปัจจุบัน John / Jane Doe คนใดก็สามารถเขียนโปรแกรมได้ ไม่มีสิ่งกีดขวางสำหรับการเข้า เลือกหนังสือสองสามเล่มเกี่ยวกับการเขียนสคริปต์และเทคโนโลยีเว็บและเริ่มแฮ็คข้อมูลหรือแย่กว่านั้นเพียงแค่เริ่ม Googling สำหรับวิธีการ "ทำ"

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

มีการเขียนโปรแกรมบุคคลที่ไม่มีเงื่อนไขมากเกินไปวันนี้ หรือไม่พวกเขาทำงานในระบบที่สำคัญพวกเขาจะยังคงผลิตรหัสยังคงผลิตลูกบิ๊กของโคลน

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

ทักษะการทำลายล้างเป็นมากกว่าการทำแบบทดสอบหรือได้รับ "ตราเกียรติยศ" การทดสอบเป็นเพียงการตรวจสอบ การตรวจสอบที่แท้จริงคือโรงเรียนการฝึกงานการฝึกงานการให้คำปรึกษาภายใต้ผู้อาวุโสการฝึกเป็นส่วนหนึ่งของมัน

ฉันเห็นว่า IEEE พยายามทำอะไร แต่ ณ จุดนี้มันเป็นการออกกำลังกายที่ไร้ผล อุตสาหกรรมเปลี่ยนแปลงอย่างรวดเร็วความต้องการมากเกินไปสำหรับการผลักดันผลิตภัณฑ์ออกไปนอกประตูความคิดของ "แฮ็กเกอร์" ฯลฯ กฎระเบียบดังกล่าวต้องมาจากภายในหากทั้งหมด


ฉันให้ +1 เพราะควรมีวิธีที่จะป้องกัน riff-raff จากระบบบางประเภท อย่างไรก็ตามฉันให้ -1 เนื่องจากซอฟต์แวร์ส่วนใหญ่ในปัจจุบันสามารถพัฒนาได้อย่างเพียงพอโดยแฮกเกอร์และเพื่อหยุดยั้งพวกเขาจากการให้บริการดังกล่าวเพื่อให้ต้นทุนลดลงเป็นสิ่งที่ขัดต่อผลประโยชน์สาธารณะ เช่นเดียวกันสำหรับนักกฎหมายและแพทย์ 90% ของสิ่งที่พวกเขาทำสามารถจัดการได้อย่างคุ้มค่าและมีประสิทธิภาพโดยผู้ที่มีคุณสมบัติน้อยกว่า อย่างไรก็ตามด้วยกฎของทุกวันนี้พวกเขามีอิสระที่จะขุดเซาะประชาชน
Dunk

ไม่ควรประเมินทักษะในระหว่างกระบวนการจ้างงาน โอ้รอ HR ได้รับการว่าจ้างคนตามข้อมูลประจำตัวของกระดาษ (ซึ่งไม่ได้แสดงให้เห็นถึงความรู้ที่ใช้ในการพัฒนาซอฟต์แวร์) และคน HR ไม่รู้อะไรเลยเกี่ยวกับความต้องการ / ข้อกำหนดในการพัฒนาซอฟต์แวร์ ล้มเหลวสองเท่า ...
Evan Plaice

0

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

  1. อุตสาหกรรมโดยรวมครอบคลุมโดเมนที่หลากหลายซึ่งบางส่วนเป็นสิ่งสำคัญต่อชีวิต (เช่นการควบคุมปริมาณรังสีในอุปกรณ์การแพทย์) และบางส่วนไม่ได้เป็นเช่นนั้น (แอป Facebook "Muppet Are You?") ฉันไม่เห็นข้อโต้แย้งใด ๆ สำหรับกฎระเบียบสำหรับแอปพลิเคชันที่เงินเดิมพันต่ำ

  2. หนึ่งไม่ควรเริ่มต้นด้วยกฎระเบียบทางกฎหมาย แต่ควรเริ่มต้นด้วยโปรแกรมการรับรองสำหรับนักพัฒนา เฉพาะในกรณีที่โปรแกรมการรับรองก่อให้เกิดประโยชน์ที่วัดได้บางอย่างควรมีคำถามเกี่ยวกับกฎระเบียบทางกฎหมาย

  3. แม้ว่าโปรแกรมการรับรองจะให้ผลลัพธ์ที่วัดได้ แต่ก็เป็นไปได้ว่าอุตสาหกรรมจะต้องได้มาตรฐานในการรับรองนี้ด้วยเหตุผลทางธุรกิจอย่างเคร่งครัดและเราไม่จำเป็นต้องมีกฎระเบียบทางกฎหมาย (นี่คือสาเหตุที่มีผู้แทนเช่นMCSEอยู่ - บริษัท ต้องการจ้างMCSEสำหรับโดเมนที่MCSEได้รับการฝึกฝน)

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

IMHO


0

ฉันต้องตอบคำถามนี้ ...

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

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

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

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.