Gylden hammer
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 4. april 2022; checks kræver
4 redigeringer .
Guldhammer ( eng. Golden hammer ) er et anti -mønster af design, som består i at bruge den samme løsning overalt, herunder ved kunstigt at justere problemets betingelser, krav, begrænsninger til en given løsning [1] .
Også kendt som : Instrumentets lov , Maslows hammer , Gavel . Det kan optræde både på ledelsesniveau [2] og på udviklerniveau [3] , essensen af dette ændres ikke.
Essensen af antimønsteret
Guldhammer - tillid til den fuldstændige universalitet af enhver løsning og anvendelsen af denne løsning (for eksempel et af designmønstrene i programmering) til enhver opgave. Tilbøjeligheden til at bruge den "gyldne hammer" afhænger ikke af specialistens erfaring.
Faktorer, der bidrager til udseendet af den "gyldne hammer" [4] :
- udviklingsteamet har en tendens til at bruge velkendt teknologi;
- udviklingsteamet er ikke bekendt med andre udviklingsteknologier;
- at skifte til en anden teknologi er forbundet med en vis risiko;
- velkendt teknologi forenkler udviklingsplanlægning og evaluering;
- politiske årsager, især store investeringer , der allerede har til formål at fremme et produkt eller en teknologi [3] ;
- tillid til egenskaberne ved deres eget produkt, som ikke er tilgængelige fra andre produkter i branchen [3] .
Konsekvenserne er:
- suboptimal løsning (selvom det ser "pænt" ud udefra);
- unødvendig komplikation eller uacceptabel forenkling af systemet.
Tegn og konsekvenser af udseendet af den gyldne hammer [3] :
- identiske værktøjer og teknologier bruges til et stort antal konceptuelt forskellige produkter;
- løsninger har dårlig ydeevne, skalerbarhed osv. sammenlignet med andre løsninger i branchen;
- systemarkitekturen er bedst beskrevet af et specifikt produkt, applikationspakke eller leverandørværktøjssæt;
- Udviklere, når de diskuterer krav med analytikere og slutbrugere, går ind for krav, der kan skræddersyes med bestemte værktøjer eller tages væk fra områder, hvor de ikke gælder.
- udviklere bliver isoleret fra industrien. De demonstrerer mangel på viden og erfaring med alternative tilgange;
- eksisterende produkter dikterer systemets design og arkitektur;
- alle nye udviklinger er i høj grad baseret på en bestemt leverandørs produkt eller teknologi.
Eksempel: Nogle webvirksomheder fortsætter med at bruge og vedligeholde selvudviklede cachingsystemer på trods af tilgængeligheden af open source-alternativer [4] .
Måder at håndtere den gyldne hammer
Måder at forebygge:
- Analyse af tilgængeligheden af alternative løsninger, søgning og sammenligning af andre måder at løse problemet på. For eksempel skal softwareudviklere holde trit med aktuelle teknologitrends. Det gælder både direkte for softwareudviklere og ledelse. En god måde at opretholde udvekslingen af viden om tekniske innovationer på er praksis med at organisere diskussionsmøder, hvor nye teknologier (mønstre, nye standarder, nye produkter) vil blive diskuteret [3] .
- Prototyping , sammenligne forskellige måder at løse et givent problem på, ved at skabe prototyper.
Identifikationsmetoder - lederens manglende samling af løsninger til forskellige opgaver og fremkomsten af vanskeligheder, når nye problemsituationer opstår, indikerer fremkomsten af en "gylden hammer" på ledelsesniveau [5] . For at identificere en hammer på udviklerniveau bør du bruge kodegennemgang ( eng. Code review ) - overvågning af koden i løbet af opgavens udførelse og identificering af ikke-optimale eller hyppigt gentagne løsninger, analyser og sammenligning af deres alternativer.
Remedier - refactoring giver dig mulighed for at optimere koden ved at vælge mere passende løsninger og rette eksisterende.
Historien om udtrykket
Den første omtale er dateret 1964 og tilhører Abraham Kaplan[6] :
Jeg kalder det instrumentets lov): Giv en lille dreng en hammer, og han vil opdage, at alt omkring ham bare skal slås.
Originaltekst (engelsk)
[ Visskjule]
Jeg kalder det instrumentets lov, og det kan formuleres således: Giv en lille dreng en hammer, og han vil opdage, at alt, hvad han møder, trænger til at banke.
— Abraham Kaplan
Et lignende koncept blev kaldt "Maslow's Hammer" efter Abraham Harold Maslow , som skrev i 1966:
Jeg tror, at hvis dit eneste værktøj er en hammer, så vil du se på noget, der ligner et søm [7] .
Originaltekst (engelsk)
[ Visskjule]
Jeg formoder, at det er fristende, hvis det eneste værktøj, du har, er en hammer, at behandle alt, som om det var et søm.
Det engelske udtryk "en Birmingham-skruetrækker" refererer til vanen med at bruge ét værktøj til alle formål og går forud for Kaplan og Maslow [8] . Konceptet tilskrives også Mark Twain , selvom der ikke er nogen bekræftelse i Twains publicerede værk [9] .
Bemærkelsesværdige undtagelser
Nogle gange virker guldhammerens anti-mønster:
- hvis produktet, der definerer de arkitektoniske begrænsninger, er en tilsigtet strategisk beslutning på lang sigt;
- hvis produktet er en del af en leverandørs pakke, til de fleste softwarebehov .
Forholdet til andre mønstre og anti-mønstre
- Silver Bullet ( engelsk SilverBullet ) er en hypotetisk universel metode inden for teknologi eller ledelsesteknik, der øger ydeevnen, pålideligheden og enkeltheden af et softwareprojekt med en størrelsesorden [10] . Frederick Brooks viste, at der ikke er nogen sølvkugle : ingen teknologisk eller organisatorisk innovation kan fundamentalt reducere den iboende kompleksitet af et projekt (det vil sige kompleksiteten på grund af kompleksiteten af selve opgaven og andre uundgåelige faktorer). "Sølvkuglen" og "gyldne hammer" forårsager skade på forskellige måder: hvis "hammeren" fører til negative konsekvenser direkte på grund af forskydningen af mere vellykkede løsninger af den, så leder "kuglen" normalt ikke, men indirekte skade ved, at det søger og forsøger at anvende som følge heraf, bliver der brugt flere ressourcer, end det gør det muligt at spare.
- Leverandørlåst afhængighed . _ _ Udviklere søger aktivt leverandørstøtte til at anvende den gyldne hammer. Hele projektet er afhængig af en enkelt værktøjs-/teknologileverandørtilgang i produktudvikling og implementering [11] .
Se også
Noter
- ↑ 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. femten.
- ↑ Green J., 1985 .
- ↑ McQuade, 2006 .
- ↑ Brooks F., 1986 .
- ↑ Brown, 1998 , s. 64-65.
Litteratur
- Miroshnichenko E. A. Programmeringsteknologier . - Publishing House of Tomsk Polytechnic University, 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. Videnskabens psykologi . - 1966. - ISBN 0-9760402-3-9 .
- Kaplan A. The Conduct of Inquiry: Methodology for Behavioural Science . - San Francisco: Chandler Publishing Co, 1964. - ISBN 0-7658-0448-4 .
- Grøn, Jonathan. Ordbog over Slang. - Cassell, 1998. - ISBN 978-0304344352 .
- McQuade TJ Kognition og økonomi. - Emerald Group Publishing, 2006. - 77 s.
- Allen E. Typiske designfejl. - Forlaget "Peter", 2003. - 224 s. — ISBN 5-887827-304-6 .
- Brooks F. No Silver Bullet - Essence and Accidents of Software Engineering. . - TPU, 1986.
- Freeman E., Freeman Al. Design mønstre. - Peter, 2011. - 646 s.
- Brun WH, Malveau RC AntiPatterns. Refaktorering af software, arkitekturer og projekter i krise. . - Robert Ipsen, 1998. - 157 s. — ISBN 0-471-19713-0 .
- Laplante PA, Neill CJ Antimønstre: Identifikation, Refactoring og Management. . - Auerbach Publications, 2005. - 333 s. — ISBN 0-8493-2994-9 . (utilgængeligt link)