sexta-feira, 31 de outubro de 2008

Arquiteto??? Você constrói casas, prédios?

Outro dia tive que tentar explicar pela milionésima vez porque fui contratado como arquiteto de soluções. A pergunta mais normal é:

- mas você não era programador?

Sim, eu sou e me orgulho muito disso.

Então:
  • Qual é a diferença?
  • O que faz de alguém um arquiteto?
  • Quais os papéis que ele desempenha?
Bom, vamos por partes, de traz para frente.

Quais os papéis que um arquiteto de software/soluções exerce?

O The Architecture Journal dedica sua edição de #15 inteiramente a este assunto, nem vou tentar resumir aqui, recomendo fortemente a leitura. Ou se preferir tem este ótimo post que resume bem o assunto.

O que faz de alguém um arquiteto?

Existem algumas abordagens para definir um arquiteto, algumas analisam o lado técnico, outras a capacidade de síntese, outras ainda defendem que é um cara que consegue entender as necessidades de negócio e ao mesmo tempo tem o conhecimento técnico necessário para desenhar a melhor solução possível. Este último para mim chamou-se um dia Analista de Sistemas e já faz um tempo que não ouço falar dele.
Eu prefiro uma abordagem, digamos, mais humanista. Para mim o que faz um programador se diferenciar dos outros (sair dos 80%???) e se tornar arquiteto é o espírito inquieto, a persistencia, o equilíbrio e principalmente o estudo.

O espírito inquieto

Sabe aquele moleque que desmonta as coisas pra depois passar dias tentando entender onde deveriam estar as peças que sobraram? Conhece aquela criança que de cada 10 palavras ditas 11 são "por que"? Sabe aquele nerd do colégio que não para de encher a paciência dos professores enquanto não entende a matéria? Sabe aquele curioso que mexe em tudo, que tenta saber um pouco de tudo?
Então, esses são alguns fatores (entre milhares de outros) que indicam uma pessoa com a predisposição a ir além, a sair da caixa e ver o quadro geral, a distrinchar um problema até chegar à sua causa raiz e só então propor uma solução. Este tipo de pessoa tem mais chances de se diferenciar como programador e se tornar arquiteto, não que alguém sem essas características não o possa, é só que para alguém assim o caminho é mais suave.

A Persistência
Muito já se falou sobre isso mas é sempre bom lembrar, não basta ser genial nas idéias é preciso persistir até conseguir provar com algo material que suas idéias são viáveis. Um ex-colega de trabalho (e bom amigo) costuma usar um termo para este assunto, ele diz que iniciativa é bom, mas é imprescindível ter "acabativa", ou seja, de nada adianta começar n coisas e terminar nenhuma delas.

O Equilíbrio
Se alguém é extremamente radical, esta pessoa pode ter problemas em se tornar arquiteto de software pelo simples motivo de que a radicalidade acaba tirando da pessoa a capacidade de ver o quadro geral, tira a imparcialidade necessária para enxergar corretamente o problema e limita o número de ferramentas disponíveis para solucioná-lo.
Um exemplo disso é a pessoa que é radicalmente a favor de uma linguagem de programação a ponto de não enxergar pontos positivos em qualquer outra. Isto ocorre com sistemas operacionais , IDEs, navegadores, plataformas de desenvolvimento, times de futebol, religião, poítica, marca de cerveja, música, etc.
O ponto aqui não é exatamente o equilíbrio em relação a questões tecnológicas, mas, num sentido mais amplo, avaliar a pessoa pelo modo como ela se posiciona em relação a questões polêmicas, se sua posição é geralmente ponderada, o caminho para esta também tende a ser suave.

O Estudo
Os arquitetos que conheço são absolutamente malucos por informação, os caras estudam o tempo todo, sobre várias coisas, ao mesmo tempo. Neste ponto tenho que concordar, a pessoa tem que ter uma capacidade de síntese muito boa para conseguir rapidamente ler (ou ver, ouvir, etc), entender, filtrar e classificar a informação.
Neste ponto as características citadas anteriormente agem juntas fazendo com que a pessoa estude a fundo um assunto (persistente) mas não a ponto de se viciar nele (equilibrado), faz com que ela mude o foco constantemente (inquieto, curioso) mas ao mesmo tempo mantenha o foco tempo o bastante para digerir e compreender o assunto (de novo persistente).
Mais que ser estudioso, a capacidade de aprender a aprender talvez seja a mais marcante caracteríscta do arquiteto. Numa área onde tudo muda a todo momento, não basta saber, tem que saber aprender e se munir disso para o bem de si próprio e da empresa. Aquele que consegue aprender a aprender também caminha mais tranquilamente no sentido de se diferenciar.

Então qual é a diferença?

De verdade? A diferença está nas escolhas que a pessoa faz ao longo da carreira, talvez antes mesmo de ingressar no mercado de trabalho.
Os que escolheram tentar, fuçar, mexer, quebrar, arrumar, perisistir, aprender coisas novas, ouvir músícas diferentes, conhecer pessoas, estudar filosofia, etc. criaram ao longo da vida uma " "poupança" que lhes permite ser diferente, ao invés de se tornar diferente. Aos que ainda não são, sempre é tempo, basta começar.

Finalizando, se eu sou um programador? De novo, sou sim. Adoro código, adoro falar de software e hardware, adoro SQL, índices, tabelas, EJBs e C#s. E sim, sou arquiteto, pelo menos é como me chamam aqui no trabalho, e também me orgulho disso.

por hoje é só.
T+

6 comentários:

  1. Saudações arquitetônicas! :)

    Para um novato no mundo dos blogs, a estréia está excelente!!! Parabéns pelo post!

    ResponderExcluir
  2. Muitos usam o termo Arquiteto sem se dar conta do que significa exatamente ser um.
    Muito boa sua explicação.

    ResponderExcluir
  3. Parabéns pelo blog, ótimo post Fontes!
    abraços!

    Fernando Cavalcante

    ResponderExcluir
  4. parabens, virou arquiteto
    largou de vez a programação entao

    ResponderExcluir
  5. Olá, amigo.
    Será que você poderia responder sobre uma dúvida minha?
    - Qual a diferença entre um Analista de Negócios e um Arquiteto de Soluções, em ambiente de TI?
    Grato.

    ResponderExcluir
  6. Achei muito bom o post, pois você contemplou uma parte menos técnica e mais psicológica do que é ser programador e arquiteto de software. Pra mim o diferencial é isso mesmo, ser menos radical, ter visão de um pouco de tudo e a habilidade de síntese. Parabéns pelo artigo!

    ResponderExcluir