Không Silver Bullet: Essence và tai nạn của công nghệ phần mềm
của Frederick P. Brooks, Jr. Trong số tất cả những con quái vật mà điền vào những cơn ác mộng của văn hóa dân gian của chúng tôi, không khiếp sợ hơn người sói, bởi vì họ biến đổi bất ngờ từ quen thuộc thành nỗi kinh hoàng. Đối với những, ta tìm viên đạn bạc mà kỳ diệu có thể đặt chúng để nghỉ ngơi. Các dự án phần mềm quen thuộc, ít nhất là theo cách nhìn của các nhà quản lý không biết kỹ thuật, có một cái gì đó của nhân vật này; nó thường là ngây thơ và đơn giản, nhưng có khả năng trở thành một con quái vật của lịch trình bỏ qua, ngân sách thổi, và sản phẩm hoàn thiện. Vì vậy, chúng tôi nghe thấy tiếng kêu tuyệt vọng cho một viên đạn bạc - một cái gì đó để làm cho chi phí phần mềm thả nhanh như chi phí phần cứng máy tính làm. Tuy nhiên, như chúng ta nhìn vào chân trời của một thập kỷ do đó, chúng tôi thấy không có viên đạn bạc. Không có phát triển duy nhất, trong cả hai công nghệ hay kỹ thuật quản lý, mà bởi chính nó hứa hẹn thậm chí một trật tự-of-độ lớn cải thiện năng suất, độ tin cậy, trong sự đơn giản. Trong bài viết này, tôi sẽ cố gắng để cho thấy lý do tại sao, bằng cách kiểm tra cả hai bản chất của vấn đề phần mềm và các tính chất của những viên đạn được đề xuất. Những hoài nghi không phải là bi quan, tuy nhiên. Mặc dù chúng tôi thấy không có những đột phá đáng ngạc nhiên - và quả thực, tôi tin như vậy là không phù hợp với bản chất của phần mềm - nhiều đổi mới đáng khích lệ đang được tiến hành. Một xử lý kỷ luật, nỗ lực nhất quán để phát triển, tuyên truyền, và khai thác những đổi mới thực sự nên năng suất được cải thiện trật tự của độ richter. Không có con đường hoàng gia, nhưng có một con đường. Bước đầu tiên hướng tới việc quản lý của bệnh là sự thay thế của lý thuyết quỷ và humours lý thuyết của lý thuyết mầm bệnh. Đó là biện pháp rất, khởi đầu của hy vọng, tự nó tiêu tan mọi hy vọng của các giải pháp huyền diệu. Nó nói với nhân viên rằng tiến bộ sẽ được thực hiện từng bước, lúc nỗ lực tuyệt vời, và rằng một, chăm sóc không ngớt liên tục sẽ phải được trả cho một kỷ luật của sự sạch sẽ. Vì vậy, đó là với công nghệ phần mềm hiện nay. Điều đó có phải là khó - Khó khăn Essential Không chỉ có không có đạn bạc bây giờ trong quan điểm, chính bản chất của phần mềm làm cho nó không chắc rằng sẽ có bất kỳ - không có những phát minh đó sẽ làm cho sản xuất phần mềm, độ tin cậy và tính đơn giản những gì thiết bị điện tử, bóng bán dẫn, và tích hợp quy mô lớn đã làm cho phần cứng máy tính. Chúng tôi không bao giờ có thể mong đợi để xem tăng gấp đôi mỗi hai năm. Đầu tiên, người ta phải thấy rằng sự bất thường mà không phải là tiến trình phần mềm như vậy là chậm, nhưng những tiến bộ phần cứng máy tính là quá nhanh. Không có công nghệ khác kể từ khi nền văn minh đã bắt đầu đã thấy sáu bậc độ lớn tăng giá hiệu suất trong 30 năm. Trong không có công nghệ khác có thể chọn để có những lợi trong hoặc cải thiện hiệu suất hoặc giảm chi phí. Những lợi ích này chảy từ việc chuyển đổi sản xuất máy tính từ một ngành công nghiệp lắp ráp thành một ngành công nghiệp. Thứ hai, để xem những gì tiến độ người ta có thể mong đợi trong công nghệ phần mềm, chúng ta hãy xem xét những khó khăn của công nghệ đó. . Sau Aristotle, tôi chia chúng thành bản chất, những khó khăn vốn có trong bản chất của phần mềm, và các tai nạn, những khó khăn mà ngày nay tham dự sản xuất của nó, nhưng không phải là vốn có Bản chất của một thực thể phần mềm là một cấu trúc của khái niệm lồng vào nhau: bộ dữ liệu, các mối quan hệ giữa các hạng mục dữ liệu, thuật toán, và các viện dẫn các chức năng. Bản chất này là trừu tượng trong đó một cấu trúc khái niệm đó đều nằm cùng nhiều đại diện khác nhau. Đó là dù sao chính xác cao và đa dạng về chi tiết. Tôi tin rằng phần cứng của phần mềm xây dựng được các đặc điểm kỹ thuật, thiết kế, xây dựng và thử nghiệm các khái niệm này, không phải là lao động đại diện cho nó và kiểm tra độ trung thực của các đại diện. Chúng tôi vẫn còn làm cho các lỗi cú pháp, chắc chắn; nhưng họ là lông tơ so với các lỗi về khái niệm trong hầu hết các hệ thống. Nếu điều này là đúng, xây dựng phần mềm sẽ luôn luôn được khó khăn. Vốn không có đạn bạc. Chúng ta hãy xem xét các đặc tính vốn có của bản chất không thể rút gọn này của phần mềm hệ thống hiện đại: sự phức tạp, phù hợp, hay thay đổi, và tàng hình. Sự phức tạp. Thực thể phần mềm phức tạp hơn cho kích thước của chúng có lẽ hơn bất kỳ xây dựng con người khác vì không có hai phần là như nhau (ít nhất là trên cấp độ báo cáo). Nếu có, chúng tôi làm cho hai bộ phận tương tự vào một chương trình con - mở hoặc đóng cửa. Ở khía cạnh này, các hệ thống phần mềm khác nhau một cách sâu sắc từ các máy tính, các tòa nhà, hoặc xe ô tô, nơi mà yếu tố lặp đi lặp lại rất nhiều. Máy tính kỹ thuật số là tự phức tạp hơn so với hầu hết những người xây dựng: Họ có số lượng rất lớn của các quốc gia. Điều này làm cho việc thụ thai, mô tả, và thử nghiệm chúng cứng. Hệ thống phần mềm có đơn đặt hàng của độ richter bang hơn máy tính làm. Tương tự như vậy, một rộng-up của một thực thể phần mềm không chỉ đơn thuần là một sự lặp lại của các yếu tố tương tự ở kích thước lớn hơn, nó hẳn là một sự gia tăng về số lượng các yếu tố khác nhau. Trong hầu hết các trường hợp, các yếu tố tương tác với nhau trong một số thời trang phi tuyến, và sự phức tạp của toàn bộ tăng nhiều hơn so với tuyến tính. Sự phức tạp của phần mềm là một đặc tính cần thiết, không phải là một tai nạn. Do đó, mô tả của một phần mềm thực thể trừu tượng đi phức tạp của nó thường là trừu tượng đi bản chất của nó. Trong ba thế kỷ, toán học và khoa học vật lý có những bước tiến tuyệt vời bằng việc xây dựng mô hình đơn giản của hiện tượng phức tạp, xuất phát từ tính chất các mô hình, và xác minh những tài sản bằng thực nghiệm. Mô hình này đã làm việc vì sự phức tạp bỏ qua trong các mô hình không phải là những đặc tính thiết yếu của các hiện tượng. Nó không hoạt động khi sự phức tạp là bản chất. Nhiều người trong số những vấn đề cổ điển của các sản phẩm phần mềm phát triển xuất phát từ sự phức tạp này rất cần thiết và tăng phi tuyến của mình với kích thước. Từ sự phức tạp đến khó khăn trong việc giao tiếp giữa các thành viên trong nhóm, dẫn đến sai sót của sản phẩm, chi phí quá mức, chậm trễ tiến độ. Từ sự phức tạp đến khó khăn trong việc liệt kê, sự hiểu biết ít nhiều, tất cả các trạng thái có thể có của các chương trình, và từ đó đi kèm không đáng tin cậy. Từ phức tạp của chức năng đến các khó khăn của cách gọi chức năng, mà làm cho chương trình khó sử dụng. Từ phức tạp của cấu trúc đến khó khăn trong việc mở rộng chương trình đến các chức năng mới mà không tạo ra tác dụng phụ. Từ phức tạp của cấu trúc đến các bang unvisualized tạo thành trapdoors an ninh. Không chỉ là vấn đề kỹ thuật, nhưng vấn đề quản lý cũng đến từ sự phức tạp. Nó làm cho khó nhìn tổng quan, do đó cản trở vẹn khái niệm. Nó làm cho nó khó khăn để tìm thấy và kiểm soát tất cả các đầu lỏng lẻo. Nó tạo ra những học to lớn và gánh nặng sự hiểu biết mà làm cho kim ngạch nhân viên một thảm họa. Sự phù hợp. Phần mềm của người ta không đơn độc trong việc đối mặt phức tạp. Vật lý giao dịch với các đối tượng khủng khiếp phức tạp ngay cả ở cấp độ hạt "cơ bản". Nhà vật lý người lao động trên, tuy nhiên, trong một niềm tin vững chắc rằng có những nguyên tắc thống nhất được tìm thấy, cho dù trong quark hoặc trong các lý thuyết unifiedfield. Einstein lập luận rằng có phải đơn giản giải thích về bản chất, bởi vì Thiên Chúa không phải là thất thường hoặc tùy ý. Không có đức tin như vậy an ủi các kỹ sư phần mềm. Phần lớn sự phức tạp mà anh phải nắm vững là phức tạp tùy ý, ép buộc mà không vần điệu hay lý do của tổ chức nhiều nhân lực và hệ thống để mà giao diện của mình phải tuân thủ. Có khác với các giao diện để giao tiếp, và theo thời gian, không phải vì cần thiết nhưng chỉ vì chúng được thiết kế bởi những người khác nhau, chứ không phải bởi Thiên Chúa. Trong nhiều trường hợp, các phần mềm phải phù hợp bởi vì nó là sự xuất hiện gần đây nhất trên sân khấu . Trong những người khác, nó phải phù hợp vì nó được xem như là phù hợp nhất. Nhưng trong mọi trường hợp, nhiều phức tạp xuất phát từ cấu tạo các giao diện khác; phức tạp này không thể được đơn giản hóa ra bởi bất kỳ thiết kế lại phần mềm một mình. tánh hay thay đổi. Các thực thể phần mềm là liên tục chịu áp lực cho sự thay đổi. Tất nhiên, như vậy là các tòa nhà, xe hơi, máy vi tính. Nhưng mọi thứ được sản xuất thường xuyên được thay đổi sau khi sản xuất; chúng được thay thế bởi mô hình sau này, hoặc những thay đổi cần thiết được tích hợp vào bản sau-serial-số của thiết kế cơ bản giống nhau. Gọi-lưng của xe ô tô đang thực sự khá thường xuyên; thay đổi lĩnh vực máy tính có phần ít hơn. Cả hai đều là ít hơn nhiều hơn so với thường xuyên sửa đổi phần mềm ra sân. Điều này một phần là như vậy bởi vì các phần mềm của một hệ thống thể hiện chức năng của nó, và các chức năng là một phần mà cảm thấy hầu hết những áp lực của sự thay đổi. Trong phần đó là do phần mềm có thể được thay đổi dễ dàng hơn - đó là suy nghĩ tinh khiết-công cụ, vô cùng dễ uốn. Tòa nhà làm trong thực tế có được thay đổi, nhưng chi phí cao của sự thay đổi, tất cả cùng hiểu, phục vụ để làm giảm ý tưởng bất chợt của những kẻ đổi. Tất cả các phần mềm thành công được thay đổi. Hai quá trình đi làm. Đầu tiên, như một sản phẩm phần mềm được tìm thấy là hữu ích, mọi người thử nó trong trường hợp mới ở rìa hoặc vượt ra ngoài miền gốc. Những áp lực cho các chức năng mở rộng chủ yếu từ những người dùng thích các chức năng cơ bản và sáng tạo ra những ứng dụng mới cho nó. Thứ hai, phần mềm thành công sống sót vượt ra ngoài cuộc sống bình thường của chiếc xe máy mà nó lần đầu tiên được viết. Nếu máy tính không phải là mới, sau đó vào ổ đĩa mới nhất, màn hình mới, các máy in mới đến cùng; và các phần mềm phải được phù hợp cho xe mới của cơ hội. Trong ngắn hạn, các sản phẩm phần mềm được nhúng vào trong một ma trận văn hóa của phương tiện ứng dụng, người dùng, pháp luật, và máy. Những tất cả thay đổi liên tục, và những thay đổi của họ không thể lay buộc phải thay đổi theo sản phẩm phần mềm. Invisibility. Phần mềm là vô hình và unvisualizable. Trừu tượng hình học là công cụ mạnh mẽ. Các kế hoạch sàn của một tòa nhà sẽ giúp cho cả kiến trúc sư và khách hàng đánh giá không gian, lưu lượng giao thông, quan điểm. Những mâu thuẫn và thiếu sót trở nên rõ ràng. Bản vẽ quy mô của các bộ phận cơ khí và các mô hình thanh-hình ảnh của các phân tử, mặc dù khái niệm trừu tượng, phục vụ cùng một mục đích. Một thực tế hình học được bắt trong một trừu tượng hình học. Thực tế của phần mềm là không vốn nhúng trong không gian. Do đó, nó không có đại diện hình học sẵn sàng trong cách mà đất có các bản đồ, chip silicon có sơ đồ,
đang được dịch, vui lòng đợi..
