Kultainen vasara
Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 4. huhtikuuta 2022 tarkistetusta
versiosta . tarkastukset vaativat
4 muokkausta .
Kultainen vasara ( eng. Golden hammer ) on suunnittelun vastainen malli , jossa käytetään kaikkialla samaa ratkaisua, mukaan lukien ongelman ehtoja, vaatimuksia ja rajoituksia sovittamalla keinotekoisesti tiettyyn ratkaisuun [1] .
Tunnetaan myös nimellä : Soittimen laki , Maslow'n vasara , Nuija . Se voi esiintyä sekä johtotasolla [2] että kehittäjätasolla [3] , tämän olemus ei muutu.
Antikuvion olemus
Kultainen vasara - luottamus minkä tahansa ratkaisun täydelliseen universaalisuuteen ja tämän ratkaisun soveltamiseen (esimerkiksi yksi ohjelmoinnin suunnittelumalleista ) mihin tahansa tehtävään. Taipumus käyttää "kultaista vasaraa" ei riipu asiantuntijan kokemuksesta.
Tekijät, jotka vaikuttavat "kultaisen vasaran" ilmestymiseen [4] :
- kehitystiimi käyttää tuttua tekniikkaa;
- kehitystiimi ei tunne muita kehitystekniikoita;
- toiseen tekniikkaan siirtymiseen liittyy tietty riski;
- tuttu tekniikka yksinkertaistaa kehittämisen suunnittelua ja arviointia;
- poliittiset syyt, erityisesti suuret investoinnit , jotka on jo suunnattu tuotteen tai teknologian edistämiseen [3] ;
- luottamus oman tuotteensa ominaisuuksiin, joita ei ole saatavilla alan muista tuotteista [3] .
Seuraukset ovat:
- epäoptimaalinen ratkaisu (vaikka se näyttää "mukavalta" ulkopuolelta);
- järjestelmän tarpeeton monimutkaisuus tai sietämätön yksinkertaistaminen.
Kultaisen vasaran ilmestymisen merkit ja seuraukset [3] :
- identtisiä työkaluja ja tekniikoita käytetään valtavassa määrässä käsitteellisesti erilaisia tuotteita;
- ratkaisuilla on huono suorituskyky, skaalautuvuus jne. verrattuna alan muihin ratkaisuihin;
- järjestelmän arkkitehtuuria kuvaa parhaiten tietty tuote, sovelluspaketti tai toimittajan työkalupakki;
- Kehittäjät keskustellessaan vaatimuksista analyytikoiden ja loppukäyttäjien kanssa puolustavat vaatimuksia, jotka voidaan räätälöidä tietyillä työkaluilla tai viedä pois alueilta, joilla niitä ei sovelleta.
- kehittäjät eristyvät toimialasta. He osoittavat, että heillä ei ole tietoa ja kokemusta vaihtoehtoisista lähestymistavoista;
- olemassa olevat tuotteet sanelevat järjestelmän suunnittelun ja arkkitehtuurin;
- kaikki uusi kehitys perustuu suurelta osin tietyn toimittajan tuotteeseen tai teknologiaan.
Esimerkki: Jotkut verkkoyritykset jatkavat itse kehitettyjen välimuistijärjestelmien käyttöä ja ylläpitämistä avoimen lähdekoodin vaihtoehtojen saatavuudesta huolimatta [4] .
Tapoja käsitellä kultaista vasaraa
Tapoja estää:
- Vaihtoehtoisten ratkaisujen saatavuuden analysointi, muiden ratkaisutapojen etsiminen ja vertailu. Esimerkiksi ohjelmistokehittäjien on pysyttävä nykyisten teknologiatrendeissä. Tämä koskee sekä suoraan ohjelmistokehittäjiä että hallintaa. Hyvä tapa ylläpitää teknisiä innovaatioita koskevan tiedon vaihtoa on järjestää keskustelutilaisuuksia, joissa keskustellaan uusista teknologioista (malleista, nousevista standardeista, uusista tuotteista) [3] .
- Prototyyppien luominen, jossa verrataan erilaisia tapoja ratkaista tietty ongelma luomalla prototyyppejä.
Tunnistusmenetelmät - esimiehellä ei ole kokoelman ratkaisuja erilaisiin tehtäviin ja vaikeuksien ilmaantuminen uusien ongelmatilanteiden ilmaantuessa osoittaa "kultaisen vasaran" syntymistä johtotasolla [5] . Hammerin tunnistamiseen kehittäjätasolla kannattaa käyttää koodin tarkistusta ( eng. Code review ) - koodin seurantaa tehtävän suorittamisen aikana ja epäoptimaalisten tai usein toistuvien ratkaisujen tunnistaminen, niiden vaihtoehtojen analysointi ja vertailu.
Korjauskeinot - Refaktoroinnin avulla voit optimoida koodia valitsemalla sopivampia ratkaisuja ja korjaamalla olemassa olevia.
Termin historia
Ensimmäinen maininta on vuodelta 1964 ja kuuluu Abraham Kaplanille[6] :
Kutsun sitä välineen laiksi): Anna pikkupojalle vasara, niin hän huomaa, että kaikkeen hänen ympärillään on vain lyötävä.
Alkuperäinen teksti (englanniksi)
[ näytäpiilottaa]
Kutsun sitä instrumentin laiksi, ja se voidaan muotoilla seuraavasti: Anna pienelle pojalle vasara, niin hän huomaa, että kaikki, mitä hän kohtaa, vaatii lyömistä.
— Abraham Kaplan
Samanlaista käsitettä kutsuttiin "Maslow's Hammeriksi" Abraham Harold Maslow'n mukaan, joka kirjoitti vuonna 1966:
Luulen, että jos ainoa työkalusi on vasara, haluat katsoa mitä tahansa naulaa [7] .
Alkuperäinen teksti (englanniksi)
[ näytäpiilottaa]
Luulen, että on houkuttelevaa käsitellä kaikkea kuin naulaa, jos ainoa työkalu sinulla on vasara.
Englanninkielinen ilmaus "a Birminghamin ruuvimeisseli" viittaa tapaan käyttää yhtä työkalua kaikkiin tarkoituksiin, ja se on peräisin Kaplania ja Maslowia edeltävältä ajalta [8] . Käsite johtuu myös Mark Twainista , vaikka Twainin julkaistussa työssä ei ole vahvistusta [9] .
Huomattavia poikkeuksia
Joskus kultaisen vasaran anti-kuvio toimii:
- jos tuote, joka määrittelee arkkitehtoniset rajoitteet, on suunniteltu strateginen päätös pitkällä aikavälillä;
- jos tuote on osa toimittajan pakettia, useimpiin ohjelmistotarpeisiin .
Suhde muihin kuvioihin ja anti-kuvioihin
- Silver Bullet ( englanniksi SilverBullet ) on hypoteettinen universaali menetelmä tekniikassa tai hallintatekniikassa, joka lisää ohjelmistoprojektin suorituskykyä, luotettavuutta ja yksinkertaisuutta suuruusluokkaa [10] . Frederick Brooks osoitti, ettei ole olemassa hopealuotia : mikään teknologinen tai organisatorinen innovaatio ei voi olennaisesti vähentää projektin luontaista monimutkaisuutta (eli itse tehtävän monimutkaisuudesta ja muista väistämättömistä tekijöistä johtuvaa monimutkaisuutta). "Hopealuoti" ja "kultainen vasara" aiheuttavat vahinkoa eri tavoin: jos "vasara" johtaa suoraan negatiivisiin seurauksiin, koska se syrjäyttää onnistuneemmat ratkaisut, niin "luoti" ei yleensä ohjaa, vaan epäsuoraa haittaa siitä, että se etsii ja yrittää soveltaa, jonka seurauksena resursseja kuluu enemmän kuin mahdollista säästää.
- Toimittajan lukitusriippuvuus . _ _ Kehittäjät etsivät aktiivisesti myyjän tukea kultaisen vasaran käyttöönotossa. Koko projekti perustuu yhden työkalun/teknologian tarjoajan lähestymistapaan tuotekehityksessä ja -toteutuksessa [11] .
Katso myös
Muistiinpanot
- ↑ Bulajic A., 2011 .
- ↑ Laplante, 2005 , s. 71-73.
- ↑ 1 2 3 4 5 Brown, 1998 , s. 62-63.
- ↑ 1 2 Freeman E., 2011 , s. 622-623.
- ↑ Laplante, 2005 , s. 73.
- ↑ Kaplan A., 1964 , s. 28.
- ↑ Maslow AH, 1966 , s. viisitoista.
- ↑ Green J., 1985 .
- ↑ McQuade, 2006 .
- ↑ Brooks F., 1986 .
- ↑ Brown, 1998 , s. 64-65.
Kirjallisuus
- Miroshnichenko E. A. Ohjelmointitekniikat . - Tomskin ammattikorkeakoulun kustantamo, 2008.
- Bulajic A. Design Patterns Past and Future // Proceedings of Informing Science & IT Education Conference ( InSITE). – 2011.
- Smith CU, Williams LG Software Performance AntiPatterns // 2nd International Workshop on Software and Performance. – 2000.
- Maslow A.H. Tieteen psykologia . - 1966. - ISBN 0-9760402-3-9 .
- Kaplan A. Tutkimuksen suorittaminen: käyttäytymistieteen metodologia . - San Francisco: Chandler Publishing Co, 1964. - ISBN 0-7658-0448-4 .
- Vihreä, Jonathon. Slangin sanakirja. - Cassell, 1998. - ISBN 978-0304344352 .
- McQuade TJ Kognition ja taloustiede. - Emerald Group Publishing, 2006. - 77 s.
- Allen E. Tyypillisiä suunnitteluvirheitä. - Kustantaja "Peter", 2003. - 224 s. — ISBN 5-887827-304-6 .
- Brooks F. No Silver Bullet - Ohjelmistotekniikan ydin ja onnettomuudet. . - TPU, 1986.
- Freeman E., Freeman Al. Suunnittelumalleja. - Pietari, 2011. - 646 s.
- Ruskea WH, Malveau RC AntiPatterns. Ohjelmistojen, arkkitehtuurien ja projektien uudelleenmuodostus kriisissä. . - Robert Ipsen, 1998. - 157 s. — ISBN 0-471-19713-0 .
- Laplante PA, Neill CJ Antipatterns: Identification, Refaktoring and Management. . - Auerbach-julkaisut, 2005. - 333 s. — ISBN 0-8493-2994-9 . (linkki ei saatavilla)