Fork me on GitHub

Viagens, opiniões e afins

by Andre Fonseca


Shu Ha Ri

Shu Ha RI

Published by Andre, on maio 31st, 2010 at 7:49 pm. Filled under: Sem categoria Tags: , No Comments

Buscar problemas

A alguns dias atrás, fiz um workshop sobre metodologias ágeis com o Juan Bernabó na Globo.com. Recomendo fortemente a todos fazerem mesmo que já tenham certo conhecimento sobre o assunto, apliquem nos seus times ou qualquer outro caso.

Durante todo o workshop feito por ele, cujo o objetivo é de apresentar as metodologias principalmente o Scrum, vários jogos, dinâmicas e outras tantas coisas são feita. Entretanto, para mim, o mais interessante  foram as discussões que ocorreram entre as atividades.

Houve um momento que o pessoal colocou os problema encontrados no dia a dia de cada um e suas expectativas quanto ao uso de metodologias ágeis.  A primeira coisa que ficou bastante evidente foi uma expectativa que ao colocar em prático algo ágil todos os problemas desaparecerão, como que por mágica, e que todos serão felizes num ambiente super ideal.

A questão que o curso colocou, e que realmente achei genial, é que Scrum não é uma ferramenta somente de soluções. Ela tem muito mais um aspecto de mostrar os problemas e forma simples e rápida procurar resolvê-los.

Sendo assim, quem não está preparada para ver os problemas, gargalos, etc de sua empresa, ao adotar qualquer coisa no sentido, vai achar que a ferramenta não serve. Isso porque tem a expectativa errada. Verá muito mais problemas do que solução.

Uma outra coisa que o Bernabo falou que me fez mudar a forma de pensar foi que ser ágil não significa não ter problema : a questão é exatamente contrária, evidenciam os problemas e procura-se soluções. Contra medidas nas palavras do Juan.

Enfim, ao vermos a questão ágil não como mais um processo e sim como uma forma de levantar os problemas e buscar contra-medidas, fica claro a razão do sucesso e que simplesmente seguir uma cartilha não é o perfil ideal a buscar.

Published by Andre, on maio 20th, 2010 at 8:11 pm. Filled under: agil,atualidades,gestão Tags: , , , No Comments

Clínicos Gerais ou Especialistas

Ultimamente em meu trabalho o pessoal tem conversado sobre qual seria um bom perfil de profissional para a empresa. Essa discussão, embora pessoalmente eu não goste desta coisa que rotular, acabou indo para um lado bem interessante.  O que seria interessante nos dias de hoje : um “clínico geral”ou um especialista.  Com toda certeza a maioria das pessoas diriam os dois. A segunda questão que coloco é : qual a proporção ? Mais clínicos ? Mais especialistas? Igual ?

Cada vez mais se fala que hoje é importante sermos poliglotas no que diz respeito a tecnologia/linguagens. É impossível você querer galgar posições no mercado sem ao menos conhecer mais de duas coisas (linguagens, SOs, Bancos, etc) . Com toda a certeza, muitos dos times que estão por aí, vão querer pessoas que sabem mexer com o sistema operacional (não precisa ser um gênio ou commiter do linux, mas saber usar bem vale) , pessoas que conheçam mais de uma coisa e assim tenham capacidade de sugerir soluções diversas, etc.  Isso se “agrava”quando falamos em profissionais SENIORs (experientes) .

Ninguém quer um cara que só saiba Java e por isso só quer fazer tudo em Java. Pode ser que o melhor caminho esteja no uso de Ruby, Python , Php, Erlang, etc.

É cada vez mais procurado, admirado … pessoas que sejam multidisciplinares. Mas isso tem um preço.

O preço que vejo na maioria dos casos que temos pessoas que tem um conhecimento raso sobre tudo. São capazes de fazer o trivial (aquele passo a passo dos tutoriais) porém se algum situação exigir um conhecimento extra elas patinam e parte desesperadas para o google ou listas.  Isso, ainda sim, pode parecer interessante, entretanto, ter especialistas é algo bom. Eles são aqueles caras que conhecem poucas tecnologias mas as conhecem bem e a fundo; são capazes de fazer desde o trivial ao mais avançado.

A questão é que ao desejar um poliglota com fluência em tudo, as empresas optam pelos dois extremos da mesma reta. Não vou dizer que isso seja impossível de encontrar pois, eu mesmo conheço pessoas que são, para mim, ponto fora da curva.  A questão é que levar essa cobrança a todos vai gerar decepção e por consequencia desconforto.

Querer que um cara seja tão bom em programar client side (css, html, javascript – jquery e jquery ui,etc- , e outras coisas) e ao mesmo tempo seja ninja na parte server é querer que o cara seja goleiro e atacante do mesmo time  ao mesmo tempo. Ter noção e conseguir safar a onça é uma coisa, agora saber a fundo destalhes de tudo é algo que deixo para as mentes mais avançadas.

Insisto que isso não é impossível porém exige muita dedicação e tempo. Coisa que uma pessoa que trabalhe pode não ter muito. Tempo para aprender, tempo para se aprimorar  e tempo para se manter atualizado em tudo.

Em contexto como pesquisas e universidades, onde os prazos são mais elasticos, isso pode ser possivel mas em empresas a coisa é menos provável.

Enfim, deixo a pergunta que fiz lá no início: Clinicos ou Especialistas? Qual proporção?

Published by Andre, on maio 19th, 2010 at 8:59 pm. Filled under: atualidades Tags: , , 1 Comment

Fazendo upload de arquivo com WebDriver

A um tempo atrás alguém postou um comentário aqui no blog perguntando como ele poderia testar a questão do upload de arquivo usando o Selenium.

Bem, pedindo ajuda para o grande sábio Google, encontrei a página (clique aqui) com um trecho de código que reproduzo parte abaixo mostrando como fazer.

Pelo jeito ele somente irá funcionar para o IE pois os demais browser não aceitam que você digite no campo de file. (Me corrijam se eu estiver errado).

Espero que ajude:

package org.openqa.selenium;

import static org.openqa.selenium.Ignore.Driver.CHROME;
import static org.openqa.selenium.Ignore.Driver.IPHONE;
import static org.openqa.selenium.Ignore.Driver.SELENESE;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;

/**
 * Demonstrates how to use WebDriver with a file input element.
 *
 * @author jmleyba@gmail.com (Jason Leyba)
 */

@Ignore(value = IPHONE, reason = "File uploads not allowed on the iPhone")
public class UploadTest extends AbstractDriverTestCase {

  private static final String LOREM_IPSUM_TEXT = "lorem ipsum dolor sit amet";
  private static final String FILE_HTML = "<div>" + LOREM_IPSUM_TEXT + "</div>";

  private File testFile;

  @Override
  protected void setUp() throws Exception {
    super.setUp();
    testFile = createTmpFile(FILE_HTML);
  }

  @JavascriptEnabled
  @Ignore(value = {CHROME, SELENESE},
          reason = "Chrome: File input elements are not supported yet")
  public void testFileUploading() throws Exception {
    driver.get(uploadPage);
    driver.findElement(By.id("upload")).sendKeys(testFile.getAbsolutePath());
    driver.findElement(By.id("go")).submit();

    driver.switchTo().frame("upload_target");

    WebElement body = driver.findElement(By.xpath("//body"));
    assertEquals("Page source is: " + driver.getPageSource(),
        LOREM_IPSUM_TEXT, body.getText());
  }

  private File createTmpFile(String content) throws IOException {
    File f = File.createTempFile("webdriver", "tmp");
    f.deleteOnExit();

    OutputStream out = new FileOutputStream(f);
    PrintWriter pw = new PrintWriter(out);
    pw.write(content);
    pw.flush();
    pw.close();
    out.close();

    return f;
  }
}
Published by Andre, on maio 6th, 2010 at 11:22 pm. Filled under: atualidades,codigo,Java Tags: , , No Comments