Archive for the 'Dicas' Category

Faz sentido bloquear internet?


Alow Brasil…

Após um pequeno tempo sem postar nada por aqui estou retomando aos poucos o tempo para blogar \o/ Acabei dando um tempo para pensar em alguns assuntos e organiza-los em minha cabeça. Enquanto isso é claro: Muito trabalho :-)

Faz um tempo que penso em escrever algumas coisas sobre produtividade e ambiente de trabalho e vou começar com um assunto bem legal e controverso: Faz sentido bloquear internet em uma empresa ou área de desenvolvimento de software?

É claro que já vivenciei inúmeras situações ridículas envolvendo esse assunto, mas o que me levou a escrever sobre isso foi um fato que aconteceu hoje e me deixou refletindo por alguns bons minutos. Vou resumi-lo pra vocês:

Um desenvolvedor do meu time, que está no cliente para realizar algumas melhorias num sistema que foi desenvolvido pelo cliente me chamou no msn (ele estava no celular) com uma dúvida sobre Linq. Ele queria saber algo sobre uma clausula de filtro em particular. Eu dei uma dica de como ele poderia usar o Linq pra resolver, mas não me lembrava da sintaxe exata. Então, expliquei pra ele o conceito (eu quase nunca passo somente uma linha de código sem primeiro discutir o porque e o conceito envolvido) e disse o caminho pra resolver. Sobre a sintaxe eu falei pra ele procurar no google e aplicar… fácil certo?

Nem tanto :( pois a empresa em que ele estava bloqueia totalmente o acesso à internet. Nem o google é aberto pra pesquisa. E ele estava dentro de uma área de desenvolvimento de software e TI de uma gigante na área de comunicação e telefonia.

O pior é que tenho visto cada vez mais empresas do segmento de TI e desenvolvimento de software partindo para ações como essa. Podemos ver alguns níveis de bloqueio nessas empresas:

  1. Redes sociais como Orkut e Facebook;
  2. Sites de vídeos como youtube e cia;
  3. Twitter;
  4. Instant messaging como msn, G-Talk, Skype, etc;
  5. Blogs e conteúdo de notícias;
  6. Internet banking e emails pessoais;
  7. Finalmente, bloqueio total de qualquer site inclusive google.

Pessoalmente, posso dizer que consigo “engolir” justificativas para os dois primeiros da lista. O primeiro porque eu não gosto e não vejo a mínima razão para utiliza-los no trabalho mesmo. O segundo porque em empresas onde a internet é compartilhada com muita gente (caso de onde trabalho), mesmo que a banda seja boa, streaming de video realmente quebra as pernas.

Agora, para todos os demais itens da lista eu só consigo visualizar uma coisa: Retrocesso Empresarial!!!

É interessante pensarmos em porque uma empresa chega ao extremo de bloquear todo acesso de internet de um time que desenvolve software ou trabalha com TI em geral. O que vemos pelo mercado é mais ou menos isso:

  1. Internet diminui a produtividade e o foco do trabalho;
  2. O profissional deve utilizar seu tempo livre para estudar e não o da empresa;
  3. Não é preciso pesquisar sobre desenvolvimento na internet. Profissional bom é o que “domina” a sintaxe da linguagem;
  4. Problemas de segurança, como por exemplo enviar um arquivo confidencial por email.

Vamos dar uma boa olhada em cada uma delas:

Internet diminui a produtividade e o foco do trabalho

Séra? Depende muito do ponto de vista do qual se está avaliando. Como você enxerga produtividade na sua empresa quando falamos em desenvolvimento de software? Ainda é baseada na quantidade de horas que um profissional “lança” numa atividade ou numa timesheet? Se for isso, então talvez você tenha razão e podemos parar por aqui.

A verdade é que produtividade em desenvolvimento de software não é medida pela quantidade de horas que um profissional passa sentado na frente do computador ou em quantas horas ele lança numa atividade no seu sistema de controle. Esse controle é baseado na idéia de que desenvolver software é a mesma coisa de desenvolver produtos industriais – ver post sobre o termo fábrica de software – e isso não procede. Sobre isso, vou dedicar um post para falarmos, certo?

Se eu partir da premissa de que temos que trabalhar com profissionais adultos e responsáveis que saibam gerenciar seu próprio tempo e atividades e que temos que confiar nesses profissionais, vamos ver que é ridículo bloquear internet pensando em produtividade.

É claro que existem aqueles “profissionais” que aproveitam da empresa mais liberal e passa o dia todo vendo notícias de esporte, viagens, batendo papo, etc. Acontece que não dá pra punir 95% que faz certo, por causa de 5% que faz errado. O cara que faz isso não produz, se ele não produz é fácil aparecer. Se isso acontecer o que fazemos? Manda o cara embora e contrata outro adulto no lugar.

O profissional deve utilizar seu tempo livre para estudar e não o da empresa;

Essa é outra idéia que faz com que o índice de turnover de uma empresa bata picos do tamanho do Everest. Ora, quem disse que a empresa não deve incentivar o profissional a estudar em seu tempo de trabalho? Poxa, vamos ser sinceros: Se o cara quer enrolar ele faz isso com ou sem internet. Basta dar um elástico e/ou um clips pra ele e pronto. Não é melhor que o cidadão invista seu tempo ocioso em estudo e aprendizado?

E se não for em estudo também, qual o problema de ficar um tempo sem fazer nada? Existem estudos hoje em dia que mostram que profissionais que trabalham com atividades intelectuais precisam de um “break” para voltar a focar numa atividade. Quantas vezes já não passamos horas parados feito estátuas olhando para um código sem encontrar solução, alguém insistiu para tomar um café e depois de 20 minutos você voltou dando risadas altas pelas piadas contadas no café, sentou-se na frente da máquina e resolveu o problema na mesma hora?

Não é preciso pesquisar sobre desenvolvimento na internet. Profissional bom é o que “domina” a sintaxe da linguagem;

Nem vou me alongar muito neste tópico. Se você ainda acredita nesse tipo de coisa acho que já pode parar de ler o artigo (e o blog). Mais um pensamento totalmente baseado na idéia de que desenvolver software não é uma atividade intelectual e sim repetitiva e automatizada. #FAIL

Problemas de segurança, como por exemplo enviar um arquivo confidencial por email.

Se você trabalha em uma mega empresa do setor financeiro ou coisa do gênero, talvez pode ser possível usar essa desculpa. No geral, justificar bloqueio de internet com desculpas de segurança de informações é uma grande falácia. Tem empresa que bloqueia tanto a internet, messaging, etc, mas dá senha de banco de dados de produção pra consultor fazer deploy de madrugada. Segurança ? I don’t think so…

Hoje, algumas empresas partem para a estratégia de bloquear tudo e fazer com que cada um que precise acessar um determinado endereço (blog por exemplo), entre em contato com a área de infra ou segurança de informação e defenda o porque precisa daquele acesso. Depois de “10″ dias, “30″ assinaturas  e um caminhão de tempo perdido, o acesso é liberado e o profissional já não precisa mais daquele acesso. Lembra do primeiro item da lista: Produtividade? O que será que é mais produtivo não é mesmo?

E quem disse que é alguém da infra ou da segurança que é a melhor pessoa para ter esse controle? Acabo pensando que isso é justamente uma questão de controle mesmo. Do tipo totalmente territorial e injustificado. Se acontece na sua empresa, não se assuste :)

Resumindo:

Somos trabalhadores do conhecimento. Trabalhamos com uma atividade intelectual e não industrial e repetitiva. Somos totalmente forjados com conhecimento e informação. Bloquear acesso à internet neste cenário é um completo absurdo.

A empresa que ainda possui esse tipo de postura é completamente atrasada e corre o risco de ser varrida do mapa.

E você, o que pensa a respeito?

Grande abraço.

André Nascimento


Archive for the 'Dicas' Category

Novo blog sobre arquitetura Java e SOA


Alow Brasil !!!

Post rápido para fazer uma propaganda básica, ok?

É que o Gilberto Holms, arquiteto java/soa aqui da nossa equipe na Stefanini iniciou seu blog sobre arquitetura. O cara é um monstro, simplesmente não tem o que falar dele. Pessoal costuma dizer que ele é o ser mais “ignorante” da equipe. Não sabe mesmo brincar…

Altamente recomendado para quem quiser saber um pouco mais sobre arquitetura de software em java e SOA.

Para acessar o blog é só clicar AQUI !!! Também estará nos meus links …

Grande Abraço

André Nascimento


Archive for the 'Dicas' Category

Vagas para Desenvolvedor Java


Alow brasil !!!

Estamos com vagas em aberto aqui na Stefanini em São Paulo. Os profissionais trabalharão conosco na estrutura do Software Delivery Center.

A Stefanini IT Solutions é uma empresa de grande porte – acho que não preciso falar muito dela – atualmente é a maior empresa de serviços de TI do Brasil. Trabalhamos na estrutura técnica de fábrica de software na cidade de São Paulo.

Abaixo os dados de divulgação das vagas:

Desenvolvedor Sênior e Pleno – Java

Perfil do profissional

Procuramos por profissionais organizados, multidisciplinares, auto-gerenciáveis e especialistas em disciplinas técnicas de desenvolvimento de software. É necessário conhecer profundamente análise e desenvolvimento de sistemas na linguagem Java e orientação a objetos.

Nossos projetos atuais utilizam Java como ferramenta de desenvolvimento, mas daremos preferência para aqueles que conhecerem mais do que uma plataforma de desenvolvimento (.NET, Ruby, etc).

Mais do que especialistas numa única plataforma, estamos procurando especialistas e entusiastas em desenvolvimento de software que não se limitem a somente uma abordagem e/ou plataforma.

É importante que os candidatos sejam entusiastas do desenvolvimento de software e de preferência participem da comunidade de software. Conhecimento de abordagens como DDD e TDD e boas práticas de programação serão um grande diferencial (básico né?). Também olharemos com bons olhos profissionais que tiverem blogs técnicos e que possuam o hábito constante de leitura.

Para finalizar, trabalhamos com algumas práticas ágeis (Scrum) em nossos projetos, então é crucial que o profissional seja auto-gerenciável, comunicativo e multidisciplinar. O inglês deverá ser bom ao menos para leitura. Níveis avançados serão considerados um grande diferencial, pois temos várias oportunidades de interação com clientes e parceiros fora do Brasil.

O que diferenciará o perfil como Sr. ou Pl. será a profundidade de conhecimento do profissional e seu tempo de experiência com as tecnologias relacionadas.

Conhecimento técnico

Alguns dos conceitos e tecnologias que o profissional precisa conhecer:

  • UML e Orientação a Objetos
  • Servlets, JSP, JSTL
  • Servidor WEB (Tomcat)
  • Servidor de Aplicação (JBoss ou Glassfish ou Websphere ou Weblogic)
  • EJB
  • Framework ORM (JPA ou Hibernate)
  • Framework MVC (Struts ou JSF ou Spring MVC)
  • Ajax
  • Desejável JQuery ou Prototype
  • Design Patterns
  • Banco de Dados (Oracle ou SQL SERVER)

Interessados, favor mandar CV com as seguintes informações para o email vfreitas@stefanini.com.

  1. Nome dos blogs que frequenta ou listas de que participa;
  2. Ultimos 3 livros lidos;
  3. Qual o seu valor atual;
  4. Qual a sua pretensão salarial;
  5. Referências pessoais e/ou profissionais

É importante mencionar que está respondendo ao anúncio do meu blog.

Boa sorte !!!

André Nascimento


Archive for the 'Dicas' Category

Então você é certificado? Ok, vamos ver o quanto isso vale.


Alow brasil !!!

O título desse post já diz muita coisa, certo? Vamos falar um pouquinho sobre certificações.

Em primeiro lugar, quero que você leve em conta que eu nada tenho contra certificações. Mas, quero levantar algumas  questões que julgo importantes.

Então, vamos lá.

Todos sabemos que nosso mercado chegou a um estágio de incrível prostituição e um dos grandes responsáveis por isso são as grandes consultorias de serviços. Elas incentivaram as piores práticas de gestão de pessoas, que hoje infelizmente são seguidas também pelas médias e pequenas empresas de serviços. Todo mundo é recurso, não é?

Já convivemos com o termo “certificação” há algum tempo em nossa área. Não vou resgatar a história lá atrás, tudo bem? Mas, se levarmos em conta, de uns anos pra cá tivemos o que podemos chamar de um “boom” nos modelos de certificação e no número de profissionais certificados.

Você já deve ter visto muitas vezes anúncios de emprego exigindo um profissional certificado, ou mesmo quando foi pedir uma promoção que precisava de mais certificações para demonstrar seu domínio sobre o assunto.

O fato é que o mercado de consultorias valoriza e muito um profissional que possui certificações e cada vez mais exigem isso.

No entanto, existem dois tipos de profissionais que se certificam. Vamos olhar cada um deles:

O cara que domina um assunto, tem experiência e se certifica para homologar este conhecimento – Este é o cara que faz justiça as suas certificações. Ele possui experiência prática em todos os níveis abordados pela sua certificação e não é somente um vendedor de tecnologia ou produto. Se chamado para resolver um problema demonstrará que realmente é um especialista no assunto e mesmo que não domine todas as técnicas possíveis para resolver um problema, usará seu perfil investigativo para aprender novas formas e no fim vai dar um jeito.

O cara que estudou o assunto a fundo, leu muito material e foi fazer a prova – Este profissional participa de fóruns de discussão, faz diversas apresentações nos mais importantes eventos da comunidade e adora exibir seus títulos a qualquer momento (quem não adora assinar Fulano de Tal, PMP por exemplo?), e quando chamado para resolver um problema, já carrega seu fantástico notebook com kilos de material com propagandas. O problema é que esse cara geralmente não tem experiência prática com o assunto. Ele gosta muito de ler, mas não consegue resolver um problema simples. Além do que, passa tanto tempo se dedicando as apresentações que faz que acaba não tendo tempo para participar da entrega de um projeto de verdade.

Infelizmente, o segundo tipo de profissional está dominando o mercado atual. Não são raros os casos em que conhecemos profissionais com “baldes” de certificações que não justificam nada. A qualidade de seus trabalhos é completamente medíocre.

Mais uma vez vemos que o próprio mercado é um dos grandes culpados disso. Ora, como avaliamos os profissionais hoje? Isso é assunto para mais um post, mas para resumir: Não temos gente qualificada para selecionar os profissionais hoje em dia e a certificação ajuda muito neste trabalho.

Vamos pegar como exemplo uma das certificações que está na moda: A tal de ScrumMaster. Este é um exemplo perfeito de certificação que não serve pra nada. Desculpe-me os CSTs, ok?

Outro dia, realizando uma apresentação numa empresa ouvi o seguinte comentário:

“Ah, conheço um cara muito especialista em Scrum, ele é um Scrum Master certificado”.

Para se tornar ScrumMaster até há pouco tempo era só participar de um treinamento de 16 horas com um CST e receber o certificado. Que especialidade há nisso? Pelo amor do bom Deus!  Este tipo de certificação é uma das coisas que autorizam pessoas totalmente desqualificadas a falar de um assunto para o mercado e se mostrarem como especialistas de algo que pouco entendem, fora aquilo que leram num livro.

Outro exemplo que podemos ver na comunidade de desenvolvimento de software: Quantas vezes já precisamos aqui na empresa de ajuda de especialistas e corremos atrás de profissionais certificados, com títulos, etc. Nenhuma vez consegui trazer aqui um “especialista” que conhecesse muito mais do que a minha própria equipe.

Com tudo isso, gostaria que você pensasse um pouco sobre a importância de ser realmente certificado em algo. É um titulo importante. De fato, os grandes profissionais com quem trabalhei e que eram realmente especialistas, não tinham nenhuma certificação.

Para finalizar, gostaria de compartilhar algo sobre o processo de seleção que fazemos aqui na empresa. Nós não nos importamos nem um pouco se o profissional tem ou não certificações. Peço ao RH da empresa que não coloque nada relacionado a certificações ou mesmo a formação acadêmica quando mandamos uma vaga para o mercado.

Agora, se o candidato coloca em seu CV aquela lista gigante de certificações, com certeza ele terá um trabalho bem grande para justificar seu conhecimento para o pessoal que vai entrevistá-lo. Exemplos:

  • Se o cara diz que tem meia dúzia de certificações em desenvolvimento da microsoft ele tem que saber descrever como é que o framework .NET funciona;
  • Se o cara diz que tem certificação Oracle, ele tem que saber dizer quais são os 5 passos que a engine do banco faz quando vai processar uma procedure;
  • Se o cara diz dominar todos os design patterns do GoF e etc, ele terá que citar quais deles já utilizou num projeto e que problema foi resolvido com eles. Geralmente não aceitamos nada de MVC ou DTO, ok?

E então: Qual será a sua próxima certificação?

Links interessantes:

Cuidado com os especialistas

Abs

André Nascimento


Archive for the 'Dicas' Category

ANTS Profiler: Dica de ferramenta para Performance Test em .NET


Dica rápida pessoal :)

Se você é um desenvolvedor/analista/arquiteto em plataforma microsoft .net então compensa gastar um minutinho na leitura.

Faz um tempo que conheci essa ferramenta e queria postar algo aqui para quem estiver interessado. Trata-se do ANTS Performance Profiler, uma ferramenta da Red Gate para ajudar na análise e medição do seu código com relação a performance da aplicação.

O próprio Visual Studio nos dá excelentes ferramentas para analisar e refatorar nosso código em busca de performance, mas, o que eu gostei particularmente no ANTS é na facilidade de utilização e na coerência dos resultados.

O ANTS possui várias ferramentas muito simples de usar e oferece ganhos significativos para você que é desenvolvedor e está num projeto solo ou para você que é arquiteto pensando em como provar uma arquitetura ou modelo para o próximo projeto.

Você pode baixar uma versão trial no site da Red Gate e experimentar por 14 dias todas as funcionalidades da ferramenta.

A idéia é muito simples: Você aponta para um site que está publicado em sua rede local, ou mesmo para a pasta onde seu projeto web está “deploiado”. No caso da pasta, o próprio ANTS vai iniciar um application server (cassini) e carregar sua aplicação. Enquanto você navega pela sua página, o ANTS vai registrando um gráfico de recursos da aplicação. Este gráfico contém contadores que são totalmente configuráveis (processador, memória, IO, etc).

Ao encontrar picos de utilização, você pode selecionar a área na time-line com o mouse. Automaticamente, o ANTS mostrará o código implementado com todos os métodos e quais são os candidatos a estarem causando o problema. Podemos ver na imagem abaixo, um exemplo da análise:

Tela Principal do ANTS Profiler for .NET

Além de aplicações web, você também pode utilizar o profiler para desktops, fazendo a análise diretamente dos arquivos executáveis.

Eu já utilizei o ANTS em um projeto crítico de performance e ele me ajudou muito. Só na primeira utilização, conseguimos melhorar a performance de uma página home em quase 60%. Então recomendo fortemente que vocêteste e comece a utilizar por uns dias. Se gostar, vale a pena o preço.

A idéia é você utilize uma ferramenta de profiler e se preocupe com a performance do seu código no dia-a-dia, a cada linha de código escrita. Muitos desenvolvedores só pensam na performance de sua aplicação quando terminam de desenvolver todo o código e passam o sistema para a “fase de validação”. Quando o sistema é colocado no ambiente do cliente ou num ambiente de testes preparado com infraestrutura e dados reais. Só que aí, descobre-se que aquele design de arquitetura lindo que você leu num livro e colocou no projeto está fazendo com que um tela do sistema leve 5 minutos para carregar.

Podemos classificar isso como um AntiPattern (desenvolve, testa, “tuna”), mas vamos falar sobre isso em outro artigo :)

Enquanto isso, espero que o ANTS ajude a todos vocês como me ajudou.

Grande abraço.

André Nascimento