Eu encontrei este artigo em várias postagens no SO. Eu me vejo caindo no sexto arquétipo; o "teórico".
Ele define o "teórico" como:
O teórico sabe tudo o que há para saber sobre programação. Ele ou ela pode passar quatro horas lecionando sobre o histórico de uma linguagem de programação obscura ou fornecendo uma prova de como o código que você escreveu não é perfeitamente ideal e pode levar mais três nanossegundos para ser executado. O problema é que o Theoretician não sabe nada sobre desenvolvimento de software. Quando o Theoretician escreve o código, é tão "elegante" que meros mortais não conseguem entendê-lo. Sua técnica favorita é a recursão, e todo bloco de código é ajustado ao máximo, em detrimento da pontualidade e legibilidade.
O teórico também é facilmente distraído. Uma tarefa simples que leva uma hora leva três meses para os teóricos, pois eles decidem que as ferramentas existentes não são suficientes e precisam criar novas ferramentas para criar novas bibliotecas e construir um sistema totalmente novo que atenda aos seus altos padrões. O teórico pode ser transformado em um dos seus melhores jogadores, se você conseguir que ele jogue dentro dos limites do projeto em si e pare de gastar tempo trabalhando no The Ultimate Sorting Algorithm.
Mesmo ao trabalhar no que deveria ser um projeto simples, tenho a tendência de me incomodar ao tentar projetar tudo do zero (isso provavelmente explica por que perdi cerca de 2 anos tentando criar um sistema operacional a partir do zero. Mas até vi que ele foi inútil eventualmente).
O que pode me ajudar a evitar fazer isso? E siga os princípios do KISS?
obrigado