Hội nghị NATO Garmisch 1968 là nơi hơn năm mươi chuyên gia máy tính từ mười một nước ngồi lại, công khai thừa nhận nghề làm phần mềm đang gặp rắc rối, và giương lên cái tên «kỹ nghệ phần mềm» cho nghề ấy. Chuyện xảy ra vào tháng 10/1968, khi máy tính đã lớn nhanh hơn khả năng viết phần mềm cho chúng. Nó đáng quan tâm vì những câu hỏi họ đặt ra, như chuyện trễ hạn, vượt ngân sách hay phần mềm gắn với mạng người, đến nay vẫn còn nguyên.
Tóm tắt nhanh
Năm 1968, phần mềm ngày càng phình to và ngày càng dính tới những việc sống còn, nhưng cách làm vẫn là thủ công. Một tuần họp ở Garmisch cho phép người trong nghề nói thật về điều đó, và họ chọn cái tên «kỹ nghệ phần mềm» như một lời khiêu khích, một yêu cầu đặt ra cho chính mình hơn là một thực tế đã có. Một năm sau ở Rome, sự hào hứng nguội đi, ý tưởng lập viện quốc tế bị một bài châm biếm giết chết, nhưng cái tên thì sống tiếp.
Diễn biến chính
Cuối thập niên 1960: phần mềm phình to
Theo báo cáo, châu Âu khi ấy có chừng mười nghìn máy tính và con số tăng đều mỗi năm. Phần mềm lúc đó được tặng kèm máy, chưa phải hàng hóa riêng. Đội ngũ lập trình ở mỗi hãng lớn từ dưới năm mươi người lên đến một hai nghìn người, và người ta nói đến chuyện ấy với nhiều lo ngại hơn là tự hào.
Hệ điều hành OS/360 của IBM bị nhắc đến nhiều nhất. Theo lời thuật lại trong phòng họp, nó ngốn hơn năm mươi triệu đô la mỗi năm và ít nhất năm nghìn người-năm công sức. Một diễn giả ví việc này với kỹ sư xây một cây cầu dài chưa từng có, bằng vật liệu mới, và không thử lấy một lần. Cũng có người nhắc rằng phần mềm đã bắt đầu điều khiển những thứ liên quan đến tính mạng, và Randell từng hỏi thẳng liệu có hệ thống nào đáng để người ta buộc mạng sống vào hay chưa.
1967: ý tưởng một viện và việc triệu tập hội nghị
Đầu năm 1967, Ủy ban Khoa học NATO bàn chuyện hợp tác quốc tế về khoa học máy tính, trong đó có ý tưởng lập một Viện Khoa học Máy tính Quốc tế. Mùa thu năm ấy một nhóm nghiên cứu được lập và đề xuất mời chừng năm mươi chuyên gia họp, chia ba ban: thiết kế, sản xuất và vận hành. Giáo sư Friedrich Bauer chủ tọa; Peter Naur và Brian Randell được giao ghi chép và biên tập báo cáo.
7–11/10/1968: một tuần ở Garmisch
Hội nghị họp ở Garmisch-Partenkirchen, dưới chân dãy Alps. Alan Perlis mở đầu bằng mong muốn biến thứ phần mềm nhão như thạch rau câu thành pha lê. Doug McIlroy tự nhận ngành phần mềm còn lạc hậu, rồi mơ về những linh kiện phần mềm chuẩn, lấy ví dụ một «danh mục» hàm sin với khoảng ba trăm phiên bản có sẵn trên kệ.
Cuộc tranh luận nóng nhất xoay quanh chữ «khủng hoảng». Có người không thích từ này, có người đáp rằng cơ thể khỏe mạnh vẫn có thể đang lên cơn đau tim. John Buxton nhắc rằng đa số máy tính vẫn chạy tạm ổn; điều đáng lo nằm ở phần rìa nhạy cảm, nơi một lỗi nhỏ gây hậu quả lớn. Edsger Dijkstra, người vừa viết thư «Go To bị coi là có hại» đầu năm đó, nói rằng việc công khai thừa nhận thất bại là trải nghiệm sảng khoái nhất của ông trong nhiều năm.
Tháng 1/1969: báo cáo ra đời
Naur và Randell đối chiếu ghi chép với băng ghi âm, cố ý để nguyên những điểm bất đồng thay vì ép ra một sự đồng thuận giả. Báo cáo viết cho cả công chức và chính khách chứ không chỉ cho người trong nghề, và được dệt phần lớn từ các lời trích dẫn. Chính điều đó làm nó còn được đọc nhiều thập niên sau.
Cuối tháng 10/1969: hội nghị Rome
Hội nghị thứ hai ở Rome có không khí khác hẳn. Theo Randell, người ta nói như thể ngành kỹ nghệ phần mềm đã có thật, giữa nhà nghiên cứu và người làm thực tế mở ra một vết nứt, còn các phiên họp thì cáu bẳn. Ban tổ chức mang theo kế hoạch ngầm là thuyết phục NATO lập một viện quốc tế. Rồi Tom Simpson của IBM đọc bài châm biếm «Kỹ nghệ Kiệt tác», kể về việc công nghiệp hóa việc vẽ tranh. Ý tưởng về viện chết ngay sau đó, và bài này không được phép in vào báo cáo.
Dijkstra rời Rome với cảm giác tệ hơn nhiều so với Garmisch. Còn Randell vỡ mộng, nhiều năm tránh dùng cụm từ «kỹ nghệ phần mềm». Cũng trong năm 1969, IBM bắt đầu bán phần mềm tách riêng khỏi máy.
1972, 1975 và 2018: những dư âm
Năm 1972, khi nhận giải Turing, Dijkstra gọi Garmisch là bước ngoặt, lần đầu cuộc khủng hoảng phần mềm được thừa nhận công khai. Năm 1975, Fred Brooks, người vắng mặt ở Garmisch, xuất bản «Tháng người huyền thoại» với nhận xét nổi tiếng rằng thêm người vào dự án đang trễ chỉ làm nó trễ thêm. Năm 2018, Randell nhìn lại và thấy những dự án đặt làm khổng lồ vẫn mắc những lỗi quen thuộc; ông dẫn ví dụ một dự án y tế của nước Anh tiêu hơn hai mươi tỷ bảng rồi bị giải thể.
Điều còn tranh cãi hoặc cần thận trọng
- Nguồn gốc cụm từ. «Kỹ nghệ phần mềm» không ra đời ở Garmisch: nó đã xuất hiện từ năm 1965–1966, và Margaret Hamilton kể bà dùng nó ở dự án Apollo. Garmisch là nơi nó được nâng thành tên của một ngành.
- Ai đặt tên. Việc Bauer đặt tên hội nghị và xin tiền NATO chỉ là điều người ta tin; Randell cũng chỉ nói «tôi nghĩ là».
- «Cả ngành thú nhận» là nói quá. Một sử gia chỉ ra người dự phần lớn là giới nghiên cứu, gần một nửa từng gắn với Algol, và hầu như không ai từng viết OS/360; Fred Brooks không có mặt.
- Con số và giai thoại. Khoản năm mươi triệu đô la mỗi năm là lời thuật lại trong phòng họp. Chuyện băng ghi âm được hứa sẽ bị hủy, hay câu «bước ngoặt, trời nắng rực rỡ» của Dijkstra, là lời kể về sau.
- Khẩu hiệu «khủng hoảng phần mềm». Nó phổ biến chủ yếu sau bài diễn văn của Dijkstra năm 1972, chứ không phải ngay sau Garmisch.
Vì sao câu chuyện này đáng nhớ?
Chữ «kỹ nghệ» năm 1968 là một lời khiêu khích và nó đã làm tròn vai: nó cho người lập trình một tiếng nói trước chính phủ và một cái cớ để có giáo trình, quy trình, chuẩn mực. Nhưng nó cũng gieo một lời hứa dễ gây hiểu lầm, rằng phần mềm có thể xây như cầu đường, cứ đủ quy trình và đủ người là xong. Bài học của Brooks cho thấy điều đó không đơn giản như vậy.
Câu chuyện còn là lời nhắc về các cái tên mới ngày nay. Mỗi khi xuất hiện một danh xưng như «kỹ nghệ trí tuệ nhân tạo», nên hỏi nó đang mô tả một thực tế hay chỉ là một lá cờ cắm trên đỉnh núi chưa ai leo tới.
Câu hỏi thường gặp
Hội nghị NATO về kỹ nghệ phần mềm diễn ra khi nào, ở đâu?
Hội nghị diễn ra ở Garmisch, Đức, từ 7 đến 11/10/1968, do Ủy ban Khoa học NATO tài trợ và Friedrich Bauer chủ tọa. Báo cáo do Peter Naur và Brian Randell biên tập, đề tháng 1/1969.
Vì sao gọi là «kỹ nghệ phần mềm»?
Theo báo cáo, cụm từ được chọn một cách có chủ ý để khiêu khích, hàm ý làm phần mềm cần nền tảng lý thuyết và kỷ luật như các ngành kỹ thuật lâu đời. Randell sau này nói nó mô tả một yêu cầu chứ chưa phải thực tế.
Ai đã đặt ra cụm từ «kỹ nghệ phần mềm»?
Người ta thường cho là Friedrich Bauer đặt tên hội nghị, nhưng chính Randell cũng chỉ nói «tôi nghĩ là». Cụm từ này còn xuất hiện trên báo chuyên ngành từ năm 1965–1966, và Margaret Hamilton kể bà đã dùng nó ở dự án Apollo.
Hội nghị Rome 1969 khác Garmisch thế nào?
Ở Rome, người ta nói như thể ngành kỹ nghệ phần mềm đã có thật, giữa nhà nghiên cứu và người làm thực tế xuất hiện một vết nứt, và các phiên thảo luận khá gay gắt. Ý tưởng lập một viện quốc tế cũng bị bài châm biếm của Tom Simpson làm chết.
Câu «thêm người vào dự án trễ chỉ làm nó trễ thêm» đến từ đâu?
Đó là ý chính trong cuốn «Tháng người huyền thoại» của Fred Brooks, xuất bản năm 1975 và rút từ kinh nghiệm chỉ huy hệ điều hành OS/360 những năm đầu.
Nguồn tham khảo
- Naur & Randell (biên tập), Software Engineering: Report on a Conference sponsored by the NATO Science Committee, Garmisch 1968 (NATO, 1/1969)
- Brian Randell, Fifty Years of Software Engineering — or The View from Garmisch (arXiv 1805.02742, 2018)
- Buxton & Randell (biên tập), Software Engineering Techniques, Rome 1969 (NATO, 1970)
- Thomas Haigh, Dijkstra's Crisis (bản thảo, 2010)
- Edsger Dijkstra, các bản ghi EWD (trong đó EWD340 và EWD1308)
- Bertrand Meyer, The origin of 'software engineering' (2013)
- Frederick P. Brooks, The Mythical Man-Month (1975)
- Wikipedia: NATO Software Engineering Conferences
Bài viết tóm tắt từ video của kênh; nội dung mang tính giới thiệu.


