Fork me on GitHub

Viagens, opiniões e afins

by Andre Fonseca


Os antigos construtores romanos eram como bons programadores.

Outro dia estava vendo televisão e assisti a um programa que contava a história da construção do Coliseu. Pode parecer uma certa loucura mas na mesma hora acabei trançando um paralelo com a forma que estamos concebendo sistemas atualmente.  Mal comparando, nos dias de hoje, a construção de prédios é um processo mecânico e repetitivo onde, para ser feito, não exige um pedreiro que seja um verdadeiro artista: basta que ele faça seu trabalho e sigas as regras definidas pelos arquitetos e engenheiros.  Essa forma podemos dizer que se assemelha muito a diversos processos de produção de softwares que temos por aí onde, um grupo selecto de pensadores definem “TUDO”  e como serão todos os aspectos antes; já os programadores tem a única missão de criar código que faça exatamente que essa elite definiu sem grande rompantes de criatividade e  dentro das regras pré estabelecidas pelos engenheiros responsáveis pelo cálculo estrutural do aplicativo.

Na época dos romanos, os pedreiros eram artistas e  mestres em seu ofício.  Construir algo fugia de formulas e tarefas repetitivas. Era um trabalho que exigia inspiração e muito talento. Não era qualquer um que era capaz de pegar um bloco de mármore e transformá-lo numa linda coluna jônica adornada. Existiam aprendizes e quase mestres, todos menos preparados,  que faziam um trabalho bruto inicial, mas a medida que se aproximava do produto final, eram somente os grandes mestres que punham as mãos na massa.  Como que numa inversão da linha do tempo, essa forma de fazer as coisa se assemelha ao jeito que temos buscado implementar as coisas em TI.

Voltando a questão do Coliseu, o narrador explicava alguns detalhes da construção e seus porque. Uma coisa que me chamou a atenção foi quando ele explicou a questão dos arcos externo: são todos iguais.  Isso aconteceu pois na época não tinham tantos mestres pedreiros disponíveis e este eram muito caros. Logo se optou por padronizar diversas formas no momento como uma forma de permitir que alguém se grandes preparos fosse capaz de fazer aquilo.  Se pegarmos a ideia e extrapolarmos que isso acontece muito no nosso meio. Existem diversas empresas por aí que não querem pagar pelos melhores que optam por padrões e formulas de enquadramento para permitir que um profissional menos qualificado seja capaz de realizar o trabalho. Claro que isso, assim como no Coliseu, se mostra em muito dos caso um OVERDESIGN.

Embora isso até funcione dentro de algum contexto, o a exigência dos clientes e usuários está aumentando.  Hoje todos buscam por coisas que sejam fáceis de usar,  bem feitas e robustas do ponto de vista das falhas.  Ninguém mais aceita sistemas que falhem; ninguém mais aceita sistemas que seja mal feitos; nenhum cliente tolera ver seu produto – no qual pagaram bastante caro – cheio de bugs e gambiarras em produção; etc.  Conceber um sistemas não é o mesmo que fazer uma parede: é necessário uma certa inspiração para que seja feita  uma boa implementação, numa forma clara, testável, entre outros aspectos. Quem nunca ficou apavorada ao abrir classes de 10 mil linhas? Quem nunca ficou horrorizado ao ver métodos com um amontoado de if aninhados? Quantas vezes você não xingou a mãe de alguém que deixou aquele código porco que não dá para entender onde ele começa e termina?

A frase frequente do mercado é que este tipo de profissional, altamente qualificado  (vulgo ninja) é caro. Que nem sempre os orçamentos podem comportar muito desses caras. Embora isso, de certa forma, seja verdade, diversos estudos (vide o livro Mítico Homem mês) mostram que este profissionais também são mais produtivos, com diferenças de até 10 vezes.  Outra pergunta que deve ser feita é quanto a qualidade daquilo que está sendo entregue vale para o contratante ou para o usuário final.  Outra coisa, em minha humilde opinião, não é preciso que todos do time sejam grandes conhecedores e senior . Podemos ter diversos ali que estão aprendendo e nessa caminhada podem se ocupar de realizar trabalhos menos vitais e tudo sobre a tutela dos mais experientes.  Além disso, acredito que o processo de realizar um sistemas esteja mais para uma produção artística do que para a construção de uma casa.  Não para ter um monte de gente trabalhando numa escultura da mesma forma que temos um amontoado de gente fazendo a casa.

Muitos poderiam dizer que existem projetos e projetos, outros mesmos diriam: “Esse regra que afirmam por aí de usar times pequenos (entre 2 a 6 pessoas) não se aplica quando se fala de grandes sistemas como um sistema operacional. ” Só lembro que o Linux, sistema que está na grande maioria dos servidores atuais, foi inicialmente concebido por uma única pessoa.  Sei que isso pode soar como uma exceção, entretanto, a cada dia que passa vejo o quanto isso está certo.  Mas esse assunto de times pequenos quero trazer em outro momento. Fiquem atentos aos próximos posts.

Published by Andre Fonseca, on setembro 11th, 2010 at 11:11 pm. Filled under: agil,atualidades Tags: , , No Comments

Medo de Mudar

O ser humano por mais desbravador e aventureiro que seja seu espírito ( estamos tentando ir para todo lado, entender tudo, etc)  sempre vive um desconforto frente a possibilidade de experimentar o novo.  Que criança nunca “torceu o nariz” quando a mãe mandava provar uma comida que não tinha visto antes; que pessoa num recuou frente a um possibilidade de ir em direção a uma oportunidade nova; quem nunca sentiu insegurança quando se formou e agora terá de enfrentar um mundo novo…  O problema é quando esse desconforto virá medo paralisante e inconscientemente nos tornamos agressivos com relação aos agentes da mudança.

Temos vivido um momento muito interessante dentro do mercado de TI : todo o processo, o “como fazer”, qualidade, e muitas outras coisas, tem sido questionado, paradigmas quebrados, novos processos, novas metodologias, novas linguagens, e muitas outras que se continuasse poderia facilmente escrever páginas e mais páginas só com a lista.  Isso acaba gerando um estado de CAOS (caos não é desordem, é ausencia de ordem) , num sentido que não existe uma forma única de fazer mais nada. Isso é algo ímpar e altamente interessantes pois as possibilidades são quase que infinitas.  Por outro lado, para o pessoal menos aberto a mudanças, ou até menos preparado para oque está acontecendo, isso representa uma “escuridão” plena, na qual não é possível enxergar o terreno por onde se caminha. O medo, ou melhor, o receio não é algo ruim, nem deve ser evitado, ele é um recurso importante de nossa inteligência pois nos impede de colocar a “mão na aranha e ser picado”, mas ele não pode ser nunca paralisante.

O receio frente a mudanças deve ser tratado com serenidade e inteligência, onde um bom primeiro passo seria procurar entender melhor essa novidade. Além de entendê-la verificar se ela trará algum valor para seu trabalho ou empresa. E por fim, dar um chance, verdadeira (famoso coração aberto, mente aberta, entrega total) a proposta e vivenciando num universo controlado julgá-la. Em diversos casos relatados por colegas que tentaram trazer novidades, ou fizeram consultorias contratadas para promover algum tipo de mudança, e outras possibilidades,  sempre ouvi exemplos de reativos: pessoas que se recusavam a ouvir, entender e até mesmo tentar aquilo. Alguns partiam para atitudes agressivas, criticando de forma cega e tendo atitudes de sabotagem.

Quando o medo (receio) frente a mudança se torna agressividade – agressividade aqui diz respeito ao bloqueio e criticas mordazes -  isso acaba virando um jogo perigoso e, em minha opinião, NUNCA é (ou será) bom para nenhuma empresa.  Em muitos casos,  as coisa ficam num clima de guerra onde existe o pessoal que defende a mudança “com unhas e dentes” e outros que contrariam as mudanças “com unhas e dentes” .  Sei que existem milhares de técnicas, dinâmicas, e outras coisas, que podem miticar esse clima, mas um vez esse ambiente criado sempre existirá um desgaste que poderia ser evitado se as pessoas agissem como humanos e fossem mais desbravadoras.

Antes que confundam e passem a pensar que estou incentivando a aceitar toda e qualquer mudança, quero dizer que não sou a favor de sairmos agora experimentando tudo de novo que for divulgado ou criado.  Ainda acredito na questão da sustentabilidade – empresas que são muito vanguardistas  acabam pagando um preço de falta de profissionais e manutenabilidade no longo prazo, por exemplo – embora também penso que, profissionais principalmente de TI, devem sempre estar estudando e lendo sobre as novidades que estão surgindo até mesmo para ter uma opinião concreta sobre o assunto e um dia decidir se vale ou não a pena usar aquilo.

Como sempre digo, o caminho sempre estará no meio.   Ser fechado e averso a tudo novo e agir de forma agressiva ( criticando, trabalhando para falhar a iniciativa, defamando as pessoas, etc) é estupidez e uma tremenda burrice. Agora ser um viciado em novidades e sair usando versões noturna (nightbuilds) de tudoé loucura e inconsequência juvenil demais para um profissional.  Ponderar entre o já conhecido e sob controle e a novidade é algo que só traz benefícios e exemplos disso não faltam no mercado.

Published by Andre, on dezembro 10th, 2009 at 6:28 pm. Filled under: atualidades,gestão,Informática Tags: , , No Comments