domingo, 1 de março de 2009

Sobre Arquitetos de Software, Life Planners, Consultoras Natura e Jequiti e Rebranding

Atenção! Este post deve ser lido com a tecla SAP ativada. Caso não seja muito dado a sarcasmo ou ironia, por favor, nem tente.

Rebranding é o processo pelo qual um produto ou serviço desenvolvido sob uma marca, empresa ou linha de produtos é comercializada ou distribuída com uma nova identidade. Geralmente isto decorre de um reposicionamento de uma marca na tentativa de se descolar de conotações negativas da marca anterior.

Corretagem de seguros é uma profissão cheia de inconvenientes para o próprio e para o cliente. Corretores te ligam, marcam encontros em horários de estudo ou trabalho, insistem e ainda por cima pedem indicações suas. O cliente se faz de louco, não atende ou simplesmente manda o corretor longe.

Certa feita, fui chamado para uma entrevista numa multinacional em expansão agressiva no país (corporativês é o máximo). Ao chegar lá o recrutador foi falando sobre a empresa, foi falando sobre o produto, seguros, sobre a abrangência e tudo mais. Eu já imaginando "nossa, imagina a TI desses caras".

Com andamento, fiquei sabendo que não me chamaram para arquitetar algum sistema deles, mas para ser um life planner a um soldo de milhares de reais mais benefícios e comissões. Bom ainda estava interessado, pelo soldo, aí me veio a prescrição da vaga, era um corretor de seguros. Declinei e agradeci, não tenho perfil para trabalhar com humanos estranhos 100% do tempo (apesar de viver em reuniões, workshops e entrevistas).



Isso foi o rebranding em ação.

Há tempos a indústria de cosméticos vaseada em distribuição direta contava com Vendedoras Avon, Natura e Jequiti. O tempo transformou estas vendedoras em Representantes Avon, Natura e Jequiti. Por fim estas representantes se tornaram Consultoras Avon, Natura e Jequiti.

Mais um exemplo de rebranding.

Bom, a maior parte da minha carreira fui um consultor trabalhando em algumas empresas de consultoria de TI em Porto Alegre. Talvez se minha carreira tivesse tomado outro rumo não teria tido a variedade de experiências que adquiri. Já trabalhei em áreas diversas como DBA e administrador de servidores Linux, programador e arquiteto de software e como analista de sistemas e engenheiro de processos. Sempre tive sucesso em todas as áreas. Claro, fracassos se somam ao resultado final, mas o balanço até o momento é bem positivo.

Isso ocorre devido ao rebranding nas empresas de consultoria. Não é conduzido pelo departamento de marketing, e sim pelo departamento comercial. Um consultor se torna um profissional alocado via rebranding logo após o comercial questioná-lo: "Tem idéia de como se faz?". Temos aí um rebranding à la carte no ramo de outsourcing.

Antes que se perguntem, respondo: Não, nunca fui consultor Avon, Natura ou Jequiti.

O Reverse Rebranding e o Arquiteto de Software

Como falei anteriormente aqui, o mercado local de TI passou por um tempo de dificuldades na assimilação das tendências de mercado externas. Um dos problemas de assimilação foi justamente a posição de Arquiteto de Software. Outro foi justamente a vinculação da complexidade da TI atual à plataforma java, que em si, é apenas um reflexo da própria complexidade da indústria de tecnologia atual. Isso mesmo, Java é muito mais que uma linguagem.

Ouso dizer que são poucos os verdadeiros arquitetos de software que conheço. Não vou tratar o meu entendimento sobre arquitetura de software neste post. Isto dá muito pano pra manga. Vou resumir o meu ponto: Arquitetura de Software diz respeito à mitigação de riscos em sistemas sócio-técnicos.

Isto demanda uma abordagem amplamente interdisciplinar para resolução de problemas. Dêem uma olhada na lista de livros ao lado, acredito que sejam parte integrante do corpo de conhecimento técnico do arquiteto de software.

Na área de arquitetura de software ocorreu justamente o reverse rebranding. Haviam demandas novas (gerenciamento complexidade de TI) que deveriam ser solucionadas, no entanto ao invés da adaptação estrutural necessária, foi feito um rebranding do desenvolvedor sênior em arquiteto de software sem que os skills adequados sejam desenvolvidos para o atendimento de novas demandas. Afinal faz todo sentido descolar os aspectos deficientes de uma marca antiga e esperar que todos estes sejam atendidos apenas pelo que se imagina das conotações positivas da nova marca.

Um arquiteto de software não trabalha apenas com a integração do Spring e do Hibernate. Não é um piloto de API. Deve sobretudo entender o mecanismo interno desses e o mais importante deve desdobrar o funcionamento destes mecanismos sob as condições demandadas pelo sponsor como, por exemplo, escala, tempo de vida, manutenibilidade, integração e atendimento ao negócio que em si demanda grande conhecimento do domínio.

O arquiteto deve ter conhecimento em profundidade e amplitude sobre vários aspectos da TI, do protocolo de rede, ao funcionamento de frameworks, processos de desenvolvimento até o alinhamento estratégico da organização. Isto subsidia talvez o principal skill, na minha humilde opinião, do arquiteto de software: Pensamento Sistêmico. Ver as árvores e a floresta de acordo com a necessidade.

Como resultado do reverse rebranding, já vi vários erros cometidos por "arquitetos de software". Não erros decorrentes de deficiências em conhecimentos organizacionais, conhecimentos em soft-skills, como engenharia de requisitos ou relacionamento interpessoal (por si a maior reclamação do pessoal das organizações em relação a "arquitetos" intratáveis), mas conhecimentos em tecnologia, o famoso "baixo-nível":

  • dizer que o impacto de mapear chaves primárias compostas é nulo: pois é afinal só porquê o framework suporta não significa que o custo de trocar de paradigma de modelagem é zero
  • paginar 50000 itens em arrays java script: paginação com "cache built-in no client". Depois de 5 minutos do primeiro download fica rápido. Imaginem 10 usuários acessando a mesma página
  • construir frameworks in-house: também acho que recursos como tempo e dinheiro são inesgotáveis e que uma equipe de 3 gatos pingados cheirando a cueiros (apesar da idade avançada) consegue fazer um produto de maior qualidade do que a Oracle ou alguém da Apache.org. Isso é um viveiro para idéias estúpidas.
  • transformar camadas de abstração em paredes de concreto: a maior delícia para rastreamento e resolução de problemas, fazer 50 desenvolvedores trabalhar com uma série de ótimos frameworks de mercado, por trás de abstrações estúpidas.
  • alterar código fonte servidores de aplicação PADRÃO Java EE para contornar falhas de design: Pois é
  • componetizar usando técnicas agropecuárias de enxerto: também acho que a manutenção da integração de dois grandes sistemas se dá melhor através da injeção viral de um em outro
  • alterar código fonte de produtos open-source à revelia da comunidade:

Concluindo

O contratante deve tomar muito cuidado quando alguém oferecer um "arquiteto de software" ou um "arquiteto corporativo". Não digo que esta situação seja generalizada, apenas que já presenciei mais de uma vez a ocorrência de fenômenos semelhantes. Volto ao assunto de definição dos skills de um arquiteto no futuro.

2 comentários :

  1. Diego Pacheco disse...

    Nilseu,

    Excelente post, acho que esses exemplos que acontecem em outros ramos de mercado como vendas são aplicáveis a TI e não só em relação a papeis/skills também quanto a metodologias/processos.

    O importante é que você não queimou a priori as práticas/papeis dos arquitetos mas sim o fato de existirem arquitetos fakes, isso fico muito bom também.

    Neste post eu tento definir parte desses skils e da postura do verdadeiro arquiteto

    http://diego-pacheco.blogspot.com/2009/01/o-papel-do-arquiteto-de-software.html

    Abraços.

  2. Mel disse...

    Boa noite Nilseu, suas colocações são sempre equilibradas e tendem a esclarescer o verdadeiro trabalho e skill de um bom arquiteto. Parabéns pelo blog é sempre um prazer ler seus pequenos ensaios

    Melissa