การจัดการโปรเจกต์เขียนโปรแกรมขนาดใหญ่ในหลายๆ ด้าน ก็เหมือนกับการจัดการงานใหญ่ๆ ทั่วไป— มากกว่าที่โปรแกรมเมอร์ส่วนใหญ่คิดเสียอีก แต่ในอีกหลายๆ ด้านมันก็แตกต่าง— มากกว่าที่ผู้จัดการมืออาชีพส่วนใหญ่คาดการณ์ไว้
องค์ความรู้ในสาขานี้กำลังสั่งสมเพิ่มขึ้นเรื่อยๆ มีการจัดคอนเฟอเรนซ์หลายครั้ง มีเซสชันต่างๆ ในงานประชุม AFIPS มีหนังสือและบทความตีพิมพ์ออกมา แต่มันก็ยังไม่ถึงขั้นที่จะนำมาเขียนเป็นตำราเรียนอย่างเป็นระบบได้ อย่างไรก็ตาม การนำเสนอหนังสือเล่มเล็กๆ เล่มนี้ ซึ่งสะท้อนมุมมองส่วนตัวเป็นหลัก ก็ดูจะเหมาะสม
แม้ว่าผมจะเติบโตมาจากด้านการเขียนโปรแกรมในสาขาวิทยาการคอมพิวเตอร์ แต่ในช่วงปี 1956– 1963 ที่โปรแกรมควบคุมอัตโนมัติ (autonomous control program) และคอมไพเลอร์ภาษาระดับสูงถูกพัฒนาขึ้นนั้น ผมกลับไปมีส่วนร่วมหลักในด้านสถาปัตยกรรมฮาร์ดแวร์ เมื่อในปี 1964 ผมได้รับตำแหน่งผู้จัดการของ Operating System/360 ก็พบว่าโลกของการเขียนโปรแกรมเปลี่ยนแปลงไปอย่างมากจากความก้าวหน้าในช่วงสองสามปีที่ผ่านมา
การบริหารจัดการพัฒนา OS/360 เป็นประสบการณ์ที่ให้บทเรียนอย่างมาก ถึงแม้จะน่าหงุดหงิดไม่น้อย ทีมงาน รวมถึง F. M. Trapnell ผู้ที่เข้ามารับตำแหน่งผู้จัดการต่อจากผม มีหลายสิ่งที่น่าภูมิใจ ระบบนี้มีจุดเด่นมากมายทั้งในด้านการออกแบบและการนำไปใช้งาน และประสบความสำเร็จในการถูกนำไปใช้อย่างกว้างขวาง แนวคิดบางอย่าง โดยเฉพาะ input-output ที่ไม่ขึ้นกับอุปกรณ์ (device-independent input-output) และการจัดการไลบรารีภายนอก (external library management) เป็นนวัตกรรมทางเทคนิคที่ถูกนำไปก็อปปี้ใช้อย่างแพร่หลายในปัจจุบัน ตอนนี้มันค่อนข้างน่าเชื่อถือ มีประสิทธิภาพพอสมควร และมีความสามารถรอบด้านสูง
อย่างไรก็ตาม ความพยายามนี้ก็ไม่อาจเรียกได้ว่าประสบความสำเร็จอย่างสมบูรณ์ ผู้ใช้ OS/360 ทุกคนจะรับรู้ได้ทันทีว่ามันควรจะดีกว่านี้มาก ข้อบกพร่องในการออกแบบและการใช้งานกระจายอยู่ทั่วไป โดยเฉพาะใน control program ซึ่งต่างจากตัวคอมไพเลอร์ภาษา ข้อบกพร่องเหล่านี้ส่วนใหญ่มีที่มาจากช่วงการออกแบบปี 1964– 65 และจึงต้องตกเป็นความรับผิดชอบของผม ยิ่งไปกว่านั้น ผลิตภัณฑ์ออกมาช้า ใช้หน่วยความจำมากกว่าที่วางแผนไว้ ต้นทุนสูงกว่าประมาณการหลายเท่า และประสิทธิภาพก็ยังไม่ดีนักจนกระทั่งหลายรุ่นหลังจากรุ่นแรก
หลังจากออกจาก IBM ในปี 1965 เพื่อมาที่ Chapel Hill ตามข้อตกลงเดิมตอนที่ผมรับตำแหน่งดูแล OS/360 ผมก็เริ่มวิเคราะห์ประสบการณ์จาก OS/360 เพื่อดูว่ามีบทเรียนด้านการจัดการและเทคนิคอะไรบ้างที่ควรจะเรียนรู้ โดยเฉพาะอย่างยิ่ง ผมต้องการอธิบายประสบการณ์การจัดการที่แตกต่างกันอย่างมากระหว่างการพัฒนาฮาร์ดแวร์ System/360 และการพัฒนาซอฟต์แวร์ OS/360 หนังสือเล่มนี้เป็นคำตอบที่ล่าช้าต่อคำถามที่เฉียบคมของ Tom Watson' s ที่ว่าทำไมการเขียนโปรแกรมถึงบริหารจัดการได้ยาก
ในการค้นหาคำตอบนี้ ผมได้รับประโยชน์จากการพูดคุยยาวๆ กับ R. P. Case ผู้ช่วยผู้จัดการช่วงปี 1964– 65 และ F. M. Trapnell ผู้จัดการช่วงปี 1965– 68 ผมได้เปรียบเทียบข้อสรุปกับผู้จัดการโปรเจกต์ขนาดใหญ่อื่นๆ เช่น F. J. Corbato จาก M.I.T., John Harr และ V. Vyssotsky จาก Bell Telephone Laboratories, Charles Portman จาก International Computers Limited, A. P. Ershov จาก Computation Laboratory of the Siberian Division, U.S.S.R. Academy of Sciences และ A. M. Pietrasanta จาก IBM
ข้อสรุปของผมเองถูกบรรจุอยู่ในบทความต่างๆ ที่จะตามมา ซึ่งตั้งใจให้สำหรับโปรแกรมเมอร์มืออาชีพ ผู้จัดการมืออาชีพ และโดยเฉพาะอย่างยิ่งผู้จัดการมืออาชีพของโปรแกรมเมอร์
แม้จะเขียนเป็นบทความที่แยกกันได้ แต่ก็มีข้อโต้แย้งหลักอยู่ โดยเฉพาะใน บทที่ 2 – 7 โดยสรุปแล้ว ผมเชื่อว่าโปรเจกต์เขียนโปรแกรมขนาดใหญ่ประสบปัญหาการจัดการที่แตกต่างโดยสิ้นเชิงจากโปรเจกต์ขนาดเล็ก เนื่องมาจากการแบ่งงานกันทำ ผมเชื่อว่าสิ่งสำคัญที่สุดคือการรักษาความสมบูรณ์ทางแนวคิด (conceptual integrity) ของตัวผลิตภัณฑ์ บทเหล่านี้สำรวจทั้งความยากในการบรรลุความเป็นหนึ่งเดียวนี้และวิธีการที่จะทำให้สำเร็จ ส่วนบทต่อๆ ไปจะสำรวจแง่มุมอื่นๆ ของการจัดการวิศวกรรมซอฟต์แวร์
วรรณกรรมในสาขานี้มีไม่มากนัก แต่ก็กระจายตัวอยู่ทั่วไป ดังนั้นผมจึงพยายามให้ข้อมูลอ้างอิงที่จะช่วยให้ความกระจ่างในประเด็นต่างๆ และนำทางผู้อ่านที่สนใจไปยังผลงานที่มีประโยชน์อื่นๆ เพื่อนๆ หลายคนได้อ่านต้นฉบับ และบางคนก็ได้เตรียมความคิดเห็นที่เป็นประโยชน์อย่างละเอียด ในกรณีที่ความคิดเห็นเหล่านั้นมีคุณค่าแต่ไม่เข้ากับกระแสของเนื้อหา ผมก็ได้รวมไว้ในหมายเหตุท้ายเล่ม
เนื่องจากนี่คือหนังสือรวมบทความไม่ใช่ตำรา ข้อมูลอ้างอิงและหมายเหตุทั้งหมดจึงถูกเก็บไว้ที่ท้ายเล่ม และขอแนะนำให้ผู้อ่านข้ามไปก่อนในการอ่านครั้งแรก
ผมขอขอบคุณ Miss Sara Elizabeth Moore, Mr. David Wagner และ Mrs. Rebecca Burris อย่างยิ่งสำหรับความช่วยเหลือในการเตรียมต้นฉบับ และขอขอบคุณ Professor Joseph C. Sloane สำหรับคำแนะนำเกี่ยวกับภาพประกอบ
F. P. B., Jr
Chapel Hill, N.C.
October 1974