Brak srebrnego naboju - No Silver Bullet

No Silver Bullet – Essence and Accident in Software Engineering ” to szeroko dyskutowany artykuł na temat inżynierii oprogramowania, napisany przez zdobywcę nagrody Turing Award Freda Brooksa w 1987 roku. Brooks twierdzi, że „nie ma jednego rozwoju, zarówno w technologii, jak i technice zarządzania, która sama obiecuje nawet jeden rząd wielkości [dziesięciokrotny] wzrost wydajności, niezawodności i prostoty w ciągu dekady”. Twierdzi również, że „nie możemy oczekiwać, że kiedykolwiek będziemy widzieć dwukrotne korzyści co dwa lata” w rozwoju oprogramowania, tak jak w przypadku rozwoju sprzętu ( prawo Moore'a ).

Streszczenie

Brooks rozróżnia dwa różne typy złożoności: przypadkową złożoność i zasadniczą złożoność. Wiąże się to z klasyfikacją Arystotelesa . Przypadkowa złożoność dotyczy problemów, które inżynierowie tworzą i mogą rozwiązać; na przykład szczegóły pisania i optymalizacji kodu asemblera lub opóźnienia spowodowane przetwarzaniem wsadowym. Zasadnicza złożoność jest spowodowana problemem do rozwiązania i nic nie może go usunąć; jeśli użytkownicy chcą, aby program robił 30 różnych rzeczy, te 30 rzeczy jest niezbędnych, a program musi robić te 30 różnych rzeczy.

Brooks twierdzi, że przypadkowa złożoność znacznie się zmniejszyła, a dzisiejsi programiści spędzają większość czasu na zajmowaniu się podstawową złożonością. Brooks argumentuje, że oznacza to, że zmniejszenie wszystkich przypadkowych działań do zera nie da takiej samej poprawy rzędu wielkości, jak próba zmniejszenia podstawowej złożoności. Chociaż Brooks twierdzi, że nie ma jednej srebrnej kuli , wierzy, że szereg innowacji atakujących podstawową złożoność może doprowadzić do znaczących ulepszeń. Jedną z technologii, która znacznie ulepszyła obszar przypadkowej złożoności, było wynalezienie języków programowania wysokiego poziomu , takich jak Ada .

Brooks opowiada się za „rozwijaniem” oprogramowania organicznie poprzez rozwój przyrostowy. Sugeruje opracowanie i wdrożenie programu głównego i podprogramów już na początku, wypełniając później podrozdziały robocze. Uważa, że ​​programowanie w ten sposób ekscytuje inżynierów i zapewnia działający system na każdym etapie rozwoju.

Brooks dalej twierdzi, że istnieje różnica między „dobrymi” i „wielkimi” projektantami. Postuluje, że ponieważ programowanie jest procesem twórczym, niektórzy projektanci są z natury lepsi od innych. Sugeruje, że między zwykłym projektantem a wielkim projektantem jest aż dziesięciokrotna różnica. Następnie opowiada się za traktowaniem gwiazdorskich projektantów równie dobrze jak gwiazdorskich menedżerów, zapewniając im nie tylko równe wynagrodzenie , ale także wszelkie przywileje związane z wyższym statusem: duże biuro, personel, fundusze na podróże itp.

Artykuł i późniejsze refleksje Brooksa na jego temat, „ No Silver Bullet” Refired , można znaleźć w jubileuszowym wydaniu The Mythical Man-Month .

Pojęcia pokrewne

Artykuł Brooksa był czasami cytowany w związku z prawem Wirtha , aby argumentować, że „systemy oprogramowania rosną szybciej pod względem rozmiaru i złożoności niż wymyślono metody radzenia sobie ze złożonością”.

Zobacz też

Bibliografia

Dalsza lektura

Zewnętrzne linki