No Silver Bullet – Essence and Accident in Software Engineering
Fred Brooks cikke, a No Silver Bullet – Essence and Accident in Software Engineering 1986-ban jelent meg.[1][2] Amellett érvelt, hogy nincs legjobb általános megoldás. Nincs fejlesztés, technológiai vagy vezetési módszer, ami egy évtizeden belül nagyságrendi (tízszeres) javulást eredményezne termelékenységben, megbízhatóságban, egyszerűségben. Szerinte Moore törvényének teljesülése nem várható el a szoftverfejlesztésben, a nyereség nem duplázódhat meg évenként.
A cikket gyakran Wirth törvényével kapcsolatban is idézik, ami azt mondja ki, hogy a szoftverrendszerek gyorsabban növekednek és válnak bonyolultabbá, mint ahogy a bonyolultságot kezelő módszerek fejlődnek.[3]
A cikk és folytatása, a 'No Silver Bullet' Refired olvasható a The Mythical Man-Month évfordulós kiadásában.[4]
Leírása
Brooks a bonyolultság két fajtáját különbözteti meg: az eseti és a lényeges bonyolultságot. Az eseti bonyolultság abból adódik, ahogyan a problémát a programozók megoldják, a lényeges bonyolultság a felhasználó igényeiből származik. Például, ha az assembly kód írásának és optimalizálásának részletei vagy a batch feldolgozás miatt adódó késedelem kezelése eseti. Ha a felhasználó 30 funkciót határoz meg, akkor ezek a funkciók lényegesek, és ezeket a programnak tudnia kell.
A cikk megállapítja, hogy az eseti bonyolultság a megjelenés idejére jelentősen csökkent, és a kortárs programozók inkább a lényegi problémákkal foglalkoznak. Amellett érvel, hogy ha az eseti bonyolultság nullára csökkenne, akkor az nem eredményezne akkora változást, mint a lényegi bonyolultság csökkentése. Brooks azt állítja, hogy ugyan nincs mindenre általános megoldás, hisz abban, hogy a lényegi bonyolultságot célzó újítások sorozata jelentős javulást fog eredményezni. Példaként a magasabb programozási nyelvek feltalálását hozza fel, például a Fortrant.[5] Az újabb nyelvek, mint C, C++, C# és Java nem hoztak ilyen javulást.
Brooks a szerves, inkrementális fejlesztést szorgalmazza. A fő és a szubrutinokat első közelítésben is meg kell írni, és a részleteket később finomítani. Így már viszonylag korán van egy rendszer, ami nyújt néhány funkciót, és ez motiválja is a programozókat.
A cikk különbséget tesz a jó és a kiváló tervezők között. Mivel a programozás kreatív tevékenység, egyesek jobbak benne, mint mások. A kiválók tízszer olyan jók, mint a közepesek, ezért megérdemlik mindazt, amit a menedzserek, nemcsak fizetésben, hanem más státusszimbólumokban is.
Jegyzetek
- ↑ (1987) „No Silver Bullet – Essence and Accident in Software Engineering”. Computer 20 (4), 10. o. DOI:10.1109/MC.1987.1663532.
- ↑ Brooks, Proc. IFIP
- ↑ Tim A. Majchrzak. Improving Software Testing: Technical and Organizational Developments. Springer Science & Business Media, 4. o. (2012). ISBN 978-3-642-27464-0
- ↑ Mythical Man-Month, Silver Bullet Refired
- ↑ No Silver Bullet: Essence and Accidents of Software Engineering. Frederick P. Brooks, Jr.. [2014. július 26-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. augusztus 8.)
Források
![Fájl:Wikiquote-logo.svg](http://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikiquote-logo.svg/50px-Wikiquote-logo.svg.png)
- No Silver Bullet: Essence and Accidents of Software Engineering, by Frederick P. Brooks, Jr.
- Software Engineering Principles—Steve McConnell's comments on the dichotomy, originally published in IEEE Software, Vol. 16, No. 2, March/April 1999
Fordítás
Ez a szócikk részben vagy egészben a No Silver Bullet című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.