Il modello feticcio è un anti-modello comune nell'ingegneria del software e nella gestione dei progetti che risponde a molti problemi ricorrenti, spesso con conseguenze inefficaci e dannose. Questo concetto è stato proposto per la prima volta dal programmatore di computer Andrew Konik nel 1995. È stato ispirato dal libro "Design Patterns", che descrive alcuni modelli di progettazione per lo sviluppo di software considerati efficaci e affidabili. Successivamente, il libro "Anti-Patterns" del 1998 ha ampliato ulteriormente il concetto per includere le aree dell'architettura software e della gestione dei progetti. In questo articolo approfondiremo la definizione, l'applicazione e gli esempi specifici del "modello femminile" nell'ingegneria del software.
Secondo gli autori dei design pattern, gli antipattern hanno due elementi chiave che li distinguono dalle cattive abitudini o dai cattivi comportamenti:
Un anti-pattern è un modello comunemente utilizzato di processi, strutture o comportamenti che, sebbene inizialmente sembri una risposta appropriata e valida a un problema, ha più conseguenze negative che positive.
Esistono altre soluzioni documentate, ripetibili e comprovate efficaci ai problemi che l'antipattern cerca di risolvere.
Secondo le "Tre Regole", per qualificarsi come anti-pattern, il pattern deve essere osservato almeno tre volte.
La documentazione degli anti-pattern può essere utilizzata per analizzare in modo efficace lo spazio problematico e acquisire la conoscenza degli esperti. Una buona documentazione anti-modello non solo documenta le conseguenze negative del modello, ma fornisce anche soluzioni alternative o modi per migliorarlo.
Nell'ingegneria del software, gli anti-modelli comuni includono: grande palla di fango, oggetti divini, numeri magici e poltergeist.
Il caos senza design si riferisce a un sistema software privo di un'architettura percepibile. Sebbene indesiderabili dal punto di vista dell'ingegneria del software, tali sistemi sono comuni sotto la pressione del business, il turnover degli sviluppatori e il degrado del codice. Brian Fort e Joseph Yoder hanno definito questo concetto in modo approfondito in un articolo del 1997:
Un disordine non progettato è una "giungla degli spaghetti" strutturata in modo casuale, estesa e caotica. Questi sistemi mostrano una crescita incontrollata significativa e patch costanti ad hoc.
Gli anti-pattern nella gestione dei progetti includono: Blowhard Jamboree, paralisi dell'analisi, Viewgraph Engineering, Death by Planning e Fear of Success, ecc.
Questi anti-modelli sono spesso causati da una cattiva gestione o da metodi di comunicazione inadeguati, con conseguente rallentamento del progresso del progetto e basso morale del team.
Comprendere e identificare questi anti-modelli è fondamentale quando si affrontano le sfide della progettazione software e della gestione dei progetti. Evitando le trappole comuni del modello feticcio, i team possono progettare soluzioni più stabili ed efficaci, che a loro volta facilitano il completamento con successo del progetto. Quindi, è possibile che anche tu sia influenzato da questi anti-pattern senza nemmeno rendertene conto?