Ho trovato questo articolo in diversi post su SO. Mi ritrovo a cadere nel sesto archetipo; il "teorico".
Definisce il "teorico" come:
Il teorico sa tutto quello che c'è da sapere sulla programmazione. Lui o lei può trascorrere quattro ore a tenere conferenze sulla storia di un oscuro linguaggio di programmazione o fornire una prova di come il codice che hai scritto sia meno che perfettamente ottimale e potrebbe richiedere altri tre nanosecondi per essere eseguito. Il problema è che il teorico non sa nulla dello sviluppo del software. Quando il Teorico scrive il codice, è così "elegante" che i semplici mortali non riescono a capirlo. La sua tecnica preferita è la ricorsione e ogni blocco di codice è ottimizzato al massimo, a spese della tempestività e della leggibilità.
Anche il teorico si distrae facilmente. Un semplice compito che dovrebbe richiedere un'ora richiede ai teorici tre mesi, poiché decidono che gli strumenti esistenti non sono sufficienti e devono costruire nuovi strumenti per costruire nuove librerie per costruire un sistema completamente nuovo che soddisfi i loro elevati standard. Il Teorico può essere trasformato in uno dei tuoi migliori giocatori, se riesci a farlo giocare entro i confini del progetto stesso e smettere di passare il tempo a lavorare su The Ultimate Sorting Algorithm.
Anche quando lavoro su quello che dovrebbe essere un semplice progetto, tendo a impantanarmi nel cercare di progettare tutto da zero (probabilmente questo spiega perché ho perso circa 2 anni a cercare di creare un sistema operativo da zero. Ma anche ho visto che era inutile alla fine).
Cosa può aiutarmi a evitare di farlo? E attenersi ai principi KISS?
Grazie