O entrevistado da vez é o Marcelo Toledo, atual CTO da Vex – também conhecido como meu chefe. Ele mantém um blog em http://marcelotoledo.org.
1.”The early years”.
O meu primeiro computador veio tarde, foi um 386, mas foi o suficiente para me introduzir no mundo dos computadores e me deixar completamente fascinado. Quando comprei meu primeiro modem foi que a coisa começou a tomar força, acessava as BBSs e quando finalmente a internet apareceu, tive certeza o que queria fazer da minha vida.
Desde cedo comecei nos esportes, durante vários anos fui atleta profissional, nadava duas vezes ao dia, de segunda a sábado. Começava de madrugada, das 5 às 6:30, a tarde, das 4 às 5 tinha preparação física, e das 5 às 7:30 era o treinamento principal na água. Eu nadava em média média 12 a 14km por dia.
Meu primeiro livro foi a história do Kevin Mitnick, não deu outra, ele foi minha maior referencia e inspiração na infância/adolescência, comei a estudar programação, Linux, BSD, montei um grupo hacker, comecei a andar com os melhores hackers do Brasil e além da natação, computador era uma das coisas que eu mais gostava no mundo.
Nunca fui bom aluno, sempre achei um saco a escola e a forma como ensinavam as coisas. Tomava broncas homéricas quando meu boletim chegava. Um dia, para deixar meu pai feliz, larguei a coisa mais importante da minha vida, para mostrar o quanto eu estava empenhado em estudar. Saí da natação e resultado, nada mudou. Só que mais tarde eu entendi que tudo aquilo foi importante para eu ingressar no mundo profissional. Deixei de ser hacker e comecei a entender como o mundo dos negócios funcionava. Mergulhei no software livre, que acabou me abrindo todas as primeiras portas.
2. Totalmente direto quando o assunto é Java. Por quê tamanho desdém por uma das linguagens mais utilizadas no meio corporativo ?
De jeito nenhum, deixei de ser radical ainda novo, acho o Java uma excelente linguagem e plataforma de desenvolvimento, foi responsável por uma expansão brutal do nosso mercado, mas infelizmente em todos os problemas que eu encontro na vida, existe uma solução mais interessante que o java. Você que trabalha comigo aqui na Vex, sabe que temos uma área web, outra de redes, outra de sistemas embarcados e agora teremos aplicativos desktop e mobile e mesmo assim o Java não entra como minha primeira opção em nenhuma delas.
3. Como um bom programador você deve possuir uma linguagem que tenha mais afinidade e como consequência, habilidade. Qual seria e por quê ?
Depois de tantos anos programando, percebo que não existe uma linguagem que te acompanha para o resto da vida como sua melhor linguagem, em cada momento ou fase da minha vida eu tive uma linguagem de programação mais presente, a que até hoje nunca foi superada na minha opinião, o C, mas tem suas aplicações limitadas, obviamente eu não usaria e não uso C para uma serie de aplicações, mas considero uma linguagem pura e eficiente, elegante quando bem utilizada. Em linguagens de script para servidor, gosto muito do Python. Para desenvolvimento web, confesso que o Rails tem roubado os meus holofotes. Programei muito em muitas outras linguagens, de Assembly a Visual Basic ou Delphi, acredite, programei nessas linguagens. Mas teve fase da minha vida que fui apaixonado por Lisp. Também fui apaixonado por C++ e PHP e também programei bastante no quase falecido Pascal.
4. De developer à manager. Você tinha como objetivo este “desvio” na carreira ou chegou como uma boa oportunidade ?
Nunca tive a pretensão de ser chefe, mais importante ainda, nunca tive interesse em ser chefe. Sempre fui extremamente técnico, minhas leituras sempre foram regadas a tópicos bem profundos da tecnologia. Por este motivo eu admirava empresas gringas que valorizavam bons engenheiros, eu imaginava que poderia continuar como engenheiro e ainda assim ter um nível salarial comparado a um gerente ou diretor. Mas ei, eu estava no Brasil, a cena de tecnologia era praticamente nula, eu tive que mudar minha mentalidade e subir a escadinha dos cargos, hoje eu sei que as coisas são bem diferentes e hoje já é possível ser um eterno engenheiro com um bom salário, ainda não é fácil, pois são raras as empresas que dão boas condições no Brasil. Mas desde então passei a estudar e aprender este outro mundo, marketing, finanças, vendas, gestão de pessoas, política, etc. Ainda bem que eu tive essa vontade de ser eterno engenheiro e não consegui, assim como várias outras vontades na minha vida que eu não realizei, hoje todas elas são minhas metas de vida, para tornar isso realidade para alguém. Pratico hoje o que eu busco amanhã, meu funcionário ideal é aquele que tem amor incondicional pelo que faz, assim como eu tive e tenho pela tecnologia.
5. Seguindo a nomeclatura do mercado, temos cargos baseados em níveis por, em teoria, conhecimento: Júnior, Pleno e Sênior. Assumindo que você está em busca de um profissional dito sênior, qual seria sua forma ou metodologia para tachar Foolano ou Ciclano adequado ao título ?
Vale lembrar que eu sou totalmente contra as formas tradicionais de organização de recursos humanos, muitas empresas acabam errando ao fazer isso. Falando especificamente de engenharia de sistemas, o conhecimento técnico é sempre um pré-requisito para um sênior, um candidato que se propõe a trabalhar com um determinado assunto e não domina completamente o assunto é eliminado imediatamente. Além disso, o cargo Senior pressupõe que o engenheiro tem muita experiência prática, escreveu centenas de milhares de códigos, passou por dificuldades em diversos tipos de sistemas diferentes. Mas eu ainda assim penso que cada pessoa é única, não pode ser tratada genericamente, já tive gênios na minha equipe que eram completamente loucos e anti-sociais, impossíveis de trabalhar em equipe, uma maçã podre que todos nós sabemos qual destino tem. A história de vida de cada um tem importância, outras aptidões, estilo de vida, equilíbrio e controle emocional também formam um profissional Sênior.
6. Mantendo a linha sob o foco de níveis em cargos, quais seriam as diferenças fundamentais entre um programador pleno e sênior ?
Este é tema para um artigo, mas resumidamente, eu gosto de definir as características para cada um dos cargos, aplicar uma pontuação a cada uma delas e definir os interva-los para os cargos propostos, como você mencionou poderia ser Junior, Pleno e Sênior.
Por exemplo:
- Formação acadêmica (x pontos)
- Linhas de código escrita (y pontos)
- Tempo de experiência (z pontos)
- … (n pontos)
- Junior – 10 pontos
- Pleno – 20 pontos
- Sênior – 30 pontos
Essa metodologia funciona muito bem se muito bem testada e validada, mas como mencionei acima, muitas empresas utilizam algo similar de forma completamente errada. Quantas empresas que conhecemos que definem para um engenheiro de sistema que a formação acadêmica é um pré-requisito? Um detalhe besta que faz com que perca-se pessoas brilhantes. Vale lembrar o que eu já mencionei várias vezes, os melhores programadores que eu conheci na vida não tinham formação acadêmica.
7. Com o “boom” das metodologias ágeis, começaram a preocupar-se mais com processos de desenvolvimento de software. O que temos atualmente, porém, são muitas empresas sem processos e metodologias mesmo que primárias para gerenciar a produção (de software). Como gestor, qual sua visão sobre esta falta de processos e qual a solução que você indicaria para uma possível adoção ?
Quando eu comecei a trabalhar não falava-se muito neste assunto, anos mais tarde eu me vi em meio a implantação de ISO 9001 e CMMI. O CMMI é uma das coisas mais radicais que eu vi na vida, impraticável, não se da um peido sem levantar os requisitos, prazo, riscos, conseqüências e pedir permissão e após autorizado registrar em log, relatórios, lições aprendidas, etc. Sou totalmente contra alguém fazer algo do tipo, pelo jeito muitas pessoas são, não foi a toa que surgiu as metodologias ágeis, que se preocupa somente com o que realmente funciona. Meu conselho para este de prática é, aprenda as melhores, utilize somente o que fizer sentido. Não seja radical, pois as vezes a melhor metodologia é não ter metodologia.
8. É comum ler pela rede a seguinte expressão: “Desenvolva para mudanças”. Para tal, é fundamental o foco na qualidade do software produzido/mantido. Apesar de óbvio, não é isto que realmente acontece. A qualidade, no mundo real, é sim um fator “negociável” e por isso falhas, insatisfação do cliente e o retrabalho aumentam drasticamente. Em seu ponto de vista, qual o problema em fazer da qualidade uma constante ao projetar software ?
O dia em que o chefe absoluto da sua empresa for um engenheiro que passou por tudo isso que você esta passando, pode ser que isso não mais aconteça.
8++. Como você tem mantido organizadas atividades profissionais na Vex e projetos pessoais ? Utiliza-se de ferramentas ou técnicas de organização pessoal ou tem mantido tudo nos renomados checklists (i.e. Remember The Milk) ? E como tem feito uso de tais ferramentas ? (dica de @chanelym)
Já inventei muito para me organizar, hoje eu posso dizer que eu alcancei uma forma prática e funcional de me organizar bem. Eu pratico muitos conceitos do GTD e tenho duas principais ferramentas, um gerenciador de tarefas, utilizo o Things (http://culturedcode.com/things/), que me acompanha em meus computadores, iPhone e futuramente no iPad, e um bom calendário (iCal), paralelamente utilizo muito o AddressBook, tudo sincronizado com Push.
Chegou a hora delas, as palavras finais…
Novamente, obrigado por aceitar o convite
Parabéns pela iniciativa do blog, continue sempre escrevendo, foi um prazer responder a sua entrevista. Boa sorte e continue firme e forte, pois enxergo em você um potencial muito grande.
Meu blog empoeira às vezes, mas para quem quiser visitá-lo: http://blog.marcelotoledo.org.
0sem comentários ainda