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